@pirxpilot/google-polyline
v3.0.2
Published
Encode / decode Google's polyline format
Downloads
461
Maintainers
Readme
google-polyline
Encodes and decodes Google's polyline format It's a forked version of google-polyline module with minor performance improvements and reversed order of coordinates: longitude, latitude (think x, y or easting, northing), which corresponds to position definition in GeoJSON spec.
Install
$ npm install --save @pirxpilot/google-polyline
# or
$ yarn add @pirxpilot/google-polyline
Usage
const { encode, decode } = require('@pirxpilot/google-polyline')
encode([
[ -120.2, 38.5 ],
[ -120.95, 40.7 ],
[ -126.453, 43.252 ]
])
> '_p~iF~ps|U_ulLnnqC_mqNvxq`@'
decode( '_p~iF~ps|U_ulLnnqC_mqNvxq`@' )
> [
[ -120.2, 38.5 ],
[ -120.95, 40.7 ],
[ -126.453, 43.252 ]
]
API
polyline.encode(points[, options])
returns a string representing encoded polyline
points
is an array of points, each point is a 2 element array [longitude, latitude]options.factor
- optional (defaults to1e5
), factor by which coordinates are multiplied during encodingoptions.mapFn
- can be optionally passed to convert array of elements to [lon. lat] pairs mapFunction is called for each item inpoints
array and has the same signature asArray.map
callbackoptions.prefix
- optional prefix for encoded String
polyline.decode(string[, options ])
returns an array of points representing decoded polyline
string
is an encoded polyline representationoptions.factor
- optional (defaults to1e5
), factor by which coordinates are divided after decoding; use factor1e6
when decoding polylines from OSM data (OSRM, mapzen etc.)options.mapFn
- optional - if provided it'll be called for each [lon. lat] pair to convert thepoint
before it is added to resultingpoints
arraystart
,end
- (defaults to0
,points.length
) - allows to decode a substring