Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mapbox/polyline
polyline encoding and decoding in javascript
https://github.com/mapbox/polyline
Last synced: 9 days ago
JSON representation
polyline encoding and decoding in javascript
- Host: GitHub
- URL: https://github.com/mapbox/polyline
- Owner: mapbox
- License: bsd-3-clause
- Created: 2012-07-19T16:41:21.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-04-10T11:01:09.000Z (7 months ago)
- Last Synced: 2024-10-08T11:06:01.180Z (28 days ago)
- Language: JavaScript
- Size: 484 KB
- Stars: 638
- Watchers: 132
- Forks: 104
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://app.travis-ci.com/mapbox/polyline.svg?branch=master)](https://app.travis-ci.com/mapbox/polyline) [![codecov](https://codecov.io/gh/mapbox/polyline/branch/master/graph/badge.svg)](https://codecov.io/gh/mapbox/polyline)
polyline
---A simple [google-esque polyline](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)
implementation in Javascript. Compatible with nodejs (`npm install @mapbox/polyline` and the browser (copy `src/polyline.js`)).Encodes from / decodes into `[lat, lng]` coordinate pairs. Use `fromGeoJSON()` to encode from GeoJSON objects, or `toGeoJSON` to
decode to a GeoJSON LineString.## Installation
npm install @mapbox/polyline
Note that the old package `polyline` has been deprecated in favor of `@mapbox/polyline` (the old package remain but won't receive updates).## Example
```js
var polyline = require('@mapbox/polyline');// returns an array of lat, lon pairs
polyline.decode('_p~iF~ps|U_ulLnnqC_mqNvxq`@');// returns an array of lat, lon pairs from polyline6 by passing a precision parameter
polyline.decode('cxl_cBqwvnS|Dy@ogFyxmAf`IsnA|CjFzCsHluD_k@hi@ljL', 6);// returns a GeoJSON LineString Geometry
polyline.toGeoJSON('_p~iF~ps|U_ulLnnqC_mqNvxq`@');// returns a string-encoded polyline (from coordinate ordered lat,lng)
polyline.encode([[38.5, -120.2], [40.7, -120.95], [43.252, -126.453]]);// returns a string-encoded polyline from a GeoJSON LineString
polyline.fromGeoJSON({ "type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [[-120.2, 38.5], [-120.95, 40.7], [-126.453, 43.252]]
},
"properties": {}
});```
[API Documentation](https://github.com/mapbox/polyline/blob/master/API.md)
## Command line
Install globally or run `./node_modules/.bin/polyline`.
Send input via stdin and use `--decode`, `--encode`, `--toGeoJSON`, or `--fromGeoJSON` flags. If omitted will default to `--decode`.
Example :
```
cat file.json | ./bin/polyline.bin.js --fromGeoJSON > result.txt
```