Google Maps PHP Polyline Encoder
This PHP class allows you to create encoded polylines for Google Maps. It's based on the code from Jim Hribar found on Mark McClure's polyline encoder page.
The class wraps the existing PHP code into a neat PHP 5 class with one function to encode the line. See the example below for usage details.
The point data als comes from here. It takes a while to load because there is 1MB of data to load and encode. For general use it's better to save the encoded line instead of the raw points.
Examples
example.phpsource code of example.php
<?php
require_once('class.polylineEncoder.php');
// read points from file (bristish shoreline from http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/BritishCoastline.html
$points = file('BritishShoreline.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($points as $key => $point)
{
$points[$key] = explode(',', $point);
}
$encoder = new PolylineEncoder();
$polyline = $encoder->encode($points);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAANE0WF4ORtlpNk94qhyLbixTU4XYMib-DjEpB6gWbEqPTdmn-qhTJDTeEJNLFrmU7IWoTLQxpGVxRqg"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.setCenter(new GLatLng(54.3, -2.23), 4);
var encodedPolyline = new GPolyline.fromEncoded({
color: "#FF0000",
weight: 5,
points: "<?= $polyline->points ?>",
levels: "<?= $polyline->levels ?>",
zoomFactor: <?= $polyline->zoomFactor ?>,
numLevels: <?= $polyline->numLevels ?>
});
map.addOverlay(encodedPolyline);
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width:500px;height:280px"></div>
</body>
</html>
Download source files
- polyline_encoder_0.1.zip ( download )