Mapbox GL basic template

by javad ebrahimi

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']);

map.setLayoutProperty('country-label-lg', 'text-field', ['get', 'name_fa']);
var draw = new MapboxDraw({
    displayControlsDefault: false,
    controls: {
        line_string: true,
        polygon: true,
        point: true,
        trash: true
    }
});

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];
});