@mapbox/mapbox-match.js
v0.0.1
Published
A plugin to align geometries to OpenStreetMap data via the Mapbox Map Matching API
Downloads
4
Maintainers
Readme
mapbox-match.js
Mapbox.js plugin to match GeoJSON geometries to the OpenStreetMap streets network using the Mapbox Map Matching API.
A GPS track (cyan) matched to the streets via a profile for cars (solid red line) and for pedestrians (dotted red line).
Installation
Include mapbox-match.js after Mapbox.js in your html. Download the js files from the dist
directory.
example
L.mapbox.mapmatching(geojson, options, function (error, layer) {
layer.addTo(map);
layer.setStyle({
color: '#9a0202',
weight: 4,
opacity: 0.8
});
});
API
L.mapbox.mapmatching(geojson, options, callback)
Given a geojson object, returns a leaflet feature layer with the matched geometries. Since an asynchronous request is made for matching, you need to specify a callback function that runs when there is a successful response.
Options
name | required? | description
---- | --------- | -----------
profile
| required | Profile to match trace against. Options are driving
, walking
and cycling
mapMatchAPI
| optional | Custom API endpoint to query. Overrides the profile
option
gpsPrecision| optional | Integer indicating the precision of the input geometries in metres (default: 5)
return| optional | Type of object to return after matching. Options are
layer(default) returns a leaflet featureLayer,
geojson` returns a geojson feature collection
Development
This is a browserify project:
git clone [email protected]:mapbox/mapbox-match.js.git
cd mapbox-match.js
npm install
npm run build
mapbox-match.js
and mapbox-match.min.js
are built files generated
from index.js
by browserify
. If you find an issue, it either needs to be
fixed in index.js
, or in one of the libraries mapbox-mapmatch uses
to parse formats.
##Algorithm
- Read an input geojson FeatureCollection
- Tidy the geojson using geojson-tidy
- Match every feature using the Mapbox Map Matching API
- Return a leaflet featureLayer with the matched features or just a geojson object