Mapbox GL basic template
HTML
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v0.12.1/mapbox-gl.js"></script>
<link rel="stylesheet" href="https://api.tiles.mapbox.com/mapbox-gl-js/v0.12.1/mapbox-gl.css">
<script language="JavaScript" type='text/javascript' src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.29.0/mapbox-gl.js'></script>
<script src='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v0.16.0/mapbox-gl-draw.js'></script>
<link rel='stylesheet' href='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v0.16.0/mapbox-gl-draw.css' type='text/css'/>
<div id='map'></div>
CSS
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
JavaScript
mapboxgl.accessToken = 'pk.eyJ1IjoiY2hya2kiLCJhIjoid0ZoNy1SZyJ9.X5fpB3ORT1-BSWItzx3Xbw';
var map = new mapboxgl.Map({
container: 'map', // container id
style: 'mapbox://styles/chrki/ciig34kb1007pbhm05v5rjwxb', //stylesheet location
center: [-74.50, 40], // starting position
zoom: 9 // starting zoom
});
map.addControl(new mapboxgl.NavigationControl(),['top-left']);
map.addControl(new mapboxgl.AttributionControl(),['bottom-right']);
var draw = new MapboxDraw({
displayControlsDefault: false,
controls: {
line_string: true,
polygon: true,
point: true,
trash: true
}
});
map.addSource("radar", {
type: "image",
url: getPath(),
coordinates: [
[-80.425, 46.437],
[-71.516, 46.437],
[-71.516, 37.936],
[-80.425, 37.936]
]
});
map.addLayer({
id: "radar-layer",
"type": "raster",
"source": "radar",
"paint": {
"raster-fade-duration": 0
}
});
setInterval(function() {
currentImage = (currentImage + 1) % frameCount;
map.getSource("radar").updateImage({ url: getPath() });
}, 200);
map.addControl(draw,['top-left'] );
var drawnSHP = draw.getAll().features[0];
//draw control to limite one feature
map.on("draw.create", function (e) {
console.log("added");
var data = draw.getAll();
map.removeControl(draw);
draw.options.controls.polygon = false;
draw.options.controls.point = false;
draw.options.controls.line_string = false;
map.addControl(draw,['top-left'] );
draw.add(data);
drawnSHP = draw.getAll().features[0];
});
map.on("draw.delete", function(e) {
console.log("removed");
map.removeControl(draw);
draw.options.controls.polygon = true;
draw.options.controls.point = true;
draw.options.controls.line_string = true;
map.addControl(draw,['top-left'] );
drawnSHP = draw.getAll().features[0];
});