Skip to content

Plugin to support Google's polyline encoding in Leaflet.

Notifications You must be signed in to change notification settings

hicom150/Leaflet.encoded

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Support encoded polylines in Leaflet


This Leaflet plugin extends the Leaflet API with functions to encode en decode Google maps polyline encoding. It is just a convenient way to use the algorithm from http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/ in Leaflet.

Provided methods

Utility methods
L.PolylineUtil.encode(latlngs [, precision]) Encode an array of L.LatLng objects, or an array of arrays.
L.PolylineUtil.decode(encoded [, precision]) Decode the string encoded to an array of [lat, lng]-arrays.
Extensions for L.Polyline
L.Polyline.fromEncoded(encoded [, options]) Construct a L.Polyline from a string, with optional options object.
L.Polyline.encodePath()Return an encoded string for the current Polyline.
Extensions for L.Polygon
L.Polygon.fromEncoded(encoded [, options]) Construct a L.Polygon from a string, with optional options object.
L.Polygon.encodePath()Return an encoded string for the current Polygon.

Code examples

After loading leaflet.js, src/Polyline.encoded.js should be included.

Encoding

var latlngs = [
	[38.5, -120.5],
	[40.7, -120.95],
	[43.252, -126.453]
];
var polyline = L.polyline(latlngs);

//prints "_p~iF~cn~U_ulLn{vA_mqNvxq`@" to the console
console.log(polyline.encodePath());

Decoding

var encoded = "_p~iF~cn~U_ulLn{vA_mqNvxq`@";
var polyline = L.Polyline.fromEncoded(encoded);

// prints an array of 3 LatLng objects.
console.log(polyline.getLatLngs());

Use a decoding precision of 6 to decode OSRM Routing Engine geometries

var encoded = "_izlhA~pvydF_{geC~{mZ_kwzCn`{nI";
var polyline = new L.Polyline(PolylineUtil.decode(encoded, 6));

// prints an array of 3 LatLng objects.
console.log(polyline.getLatLngs());

Node package

You can use encode() and decode() in your Nodejs scripts:

npm install polyline-encoded

var polylineEncoded = require('polyline-encoded');

var encoded = "_p~iF~cn~U_ulLn{vA_mqNvxq`@";
var latlngs = polylineEncoded.decode(encoded);

About

Plugin to support Google's polyline encoding in Leaflet.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%