Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@mapbox/mapbox-gl-draw
Advanced tools
@mapbox/mapbox-gl-draw is a plugin for Mapbox GL JS that adds support for drawing and editing features on a map. It allows users to draw points, lines, and polygons, and provides a user-friendly interface for manipulating these shapes.
Drawing Points
This feature allows users to draw points on the map. The code initializes the MapboxDraw control and adds it to the map. When a point is created, an event is triggered, and the created point's features are logged to the console.
const draw = new MapboxDraw();
map.addControl(draw);
map.on('draw.create', function(e) {
const features = e.features;
console.log('Point created:', features);
});
Drawing Lines
This feature allows users to draw lines on the map. Similar to drawing points, the MapboxDraw control is added to the map, and an event is triggered when a line is created, logging the line's features to the console.
const draw = new MapboxDraw();
map.addControl(draw);
map.on('draw.create', function(e) {
const features = e.features;
console.log('Line created:', features);
});
Drawing Polygons
This feature allows users to draw polygons on the map. The MapboxDraw control is added to the map, and an event is triggered when a polygon is created, logging the polygon's features to the console.
const draw = new MapboxDraw();
map.addControl(draw);
map.on('draw.create', function(e) {
const features = e.features;
console.log('Polygon created:', features);
});
Editing Features
This feature allows users to edit existing features on the map. The MapboxDraw control is added to the map, and an event is triggered when a feature is updated, logging the updated feature's details to the console.
const draw = new MapboxDraw();
map.addControl(draw);
map.on('draw.update', function(e) {
const features = e.features;
console.log('Feature updated:', features);
});
Deleting Features
This feature allows users to delete features from the map. The MapboxDraw control is added to the map, and an event is triggered when a feature is deleted, logging the deleted feature's details to the console.
const draw = new MapboxDraw();
map.addControl(draw);
map.on('draw.delete', function(e) {
const features = e.features;
console.log('Feature deleted:', features);
});
leaflet-draw is a plugin for the Leaflet library that provides similar drawing and editing functionalities for maps. It allows users to draw points, lines, and polygons, and offers a user-friendly interface for manipulating these shapes. Compared to @mapbox/mapbox-gl-draw, leaflet-draw is designed specifically for the Leaflet ecosystem.
Turf is a JavaScript library for spatial analysis that includes some drawing and editing functionalities. It allows users to create and manipulate geometries, perform spatial operations, and analyze geospatial data. While Turf is more focused on spatial analysis, it can be used in conjunction with other libraries to provide drawing capabilities similar to @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.
If you are developing with mapbox-gl-draw
, see API.md for documentation.
npm install @mapbox/mapbox-gl-draw
Draw ships with CSS, make sure you include it in your build.
When using modules
import mapboxgl from 'mapbox-gl';
import MapboxDraw from "@mapbox/mapbox-gl-draw";
When using a CDN
<script src='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.4.3/mapbox-gl-draw.js'></script>
When using modules
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.4.3/mapbox-gl-draw.css' type='text/css' />
Typescript definition files are available as part of the DefinitelyTyped package.
npm install @types/mapbox__mapbox-gl-draw
mapboxgl.accessToken = 'YOUR_ACCESS_TOKEN';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v12',
center: [40, -74.50],
zoom: 9
});
var Draw = new MapboxDraw();
// Map#addControl takes an optional second argument to set the position of the control.
// If no position is specified the control defaults to `top-right`. See the docs
// for more details: https://docs.mapbox.com/mapbox-gl-js/api/#map#addcontrol
map.addControl(Draw, 'top-left');
map.on('load', function() {
// ALL YOUR APPLICATION CODE
});
https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-draw/
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.
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>"
npm run test
To GitHub and NPM:
npm version (major|minor|patch)
git push --tags
git push
npm publish
To CDN:
# make sure you are authenticated for AWS
git checkout v{x.y.z}
yarn install
yarn run prepublish
aws s3 cp --recursive --acl public-read dist s3://mapbox-gl-js/plugins/mapbox-gl-draw/v{x.y.z}
Update the version number in the GL JS example.
We're trying to follow standards when naming things. Here is a collection of links where we look for inspiration.
1.4.3
featuresAt
function by @caldwellc in https://github.com/mapbox/mapbox-gl-draw/pull/1194featureChanged
on feature props change by @wyozi in https://github.com/mapbox/mapbox-gl-draw/pull/1196preventDefault()
on touchstart
and touchmove
events by @Archetylator in https://github.com/mapbox/mapbox-gl-draw/pull/1195FAQs
A drawing component for Mapbox GL JS
We found that @mapbox/mapbox-gl-draw demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 28 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.