0.0.1 • Published 7 years ago

@mapbox/mapbox-match.js v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 years ago

Build Status

mapbox-match.js

Mapbox.js plugin to match GeoJSON geometries to the OpenStreetMap streets network using the Mapbox Map Matching API.

screenshot 2015-06-19 17 57 24

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

namerequired?description
profilerequiredProfile to match trace against. Options are driving, walking and cycling
mapMatchAPIoptionalCustom API endpoint to query. Overrides the profile option`
gpsPrecisionoptionalInteger indicating the precision of the input geometries in metres (default: 5)
returnoptionalType 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 git@github.com: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 1. Read an input geojson FeatureCollection 2. Tidy the geojson using geojson-tidy 3. Match every feature using the Mapbox Map Matching API 4. Return a leaflet featureLayer with the matched features or just a geojson object