Note
This fork of mapbox-gl-draw
is only intended to be used temporarily with our react-map-gl
setup. Please don't use this fork elsewhere!
@mapbox/mapbox-gl-draw
Adds support for drawing and editing features on mapbox-gl.js maps. See a live example here
Requires mapbox-gl-js. Compatible versions are documented in the package.json
On NPM this package has recently moved from mapbox-gl-draw
to @mapbox/mapbox-gl-draw
Installing
npm install @mapbox/mapbox-gl-draw
Draw ships with CSS, make sure you include it in your build.
When using modules
require('@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css')
import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css'
When using CDN
<link rel='stylesheet' href='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.0.9/mapbox-gl-draw.css' type='text/css' />
Usage in your application
When using modules
var mapboxgl = require('mapbox-gl');
var MapboxDraw = require('@mapbox/mapbox-gl-draw');
When using a CDN
<script src='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.0.9/mapbox-gl-draw.js'></script>
Example setup
mapboxgl.accessToken = 'YOUR_ACCESS_TOKEN';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v8',
center: [40, -74.50],
zoom: 9
});
var Draw = new MapboxDraw();
map.addControl(Draw, 'top-left');
map.on('load', function() {
});
https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-draw/
See API.md for complete reference.
Enhancements and New Interactions
For additional functionality check out our list of custom modes.
Mapbox Draw accepts functionality changes after the functionality has been proven out via a custom mode. This lets users experiment and validate their mode before entering a review process, hopefully promoting innovation. When you write a custom mode, please open a PR adding it to our list of custom modes.
Developing and testing
Install dependencies, build the source files and crank up a server via:
git clone git@github.com:mapbox/mapbox-gl-draw.git
yarn install
yarn start & open "http://localhost:9967/debug/?access_token=<token>"
Testing
npm run test
Publishing
To github and npm
npm version (major|minor|patch)
git push --tags
git push
npm publish
Update the version number in the GL JS example.
Naming actions
We're trying to follow standards when naming things. Here is a collection of links where we look for inspiration.