无法初始化Leaflet.draw工具栏

时间:2016-08-26 20:13:48

标签: javascript leaflet gis

我在初始化Leaflet.draw toolbar时遇到了困难。我尝试过使用各种示例中的代码,仍然无法让工具栏显示在我的地图上。我的代码存在于自己的.js文件中,如下所示:



function main() {

// create a map in the "map" div, set the view to a given place and zoom
var map = L.map('map', {
    drawControl: true
}).setView([35.110756 , -120.591667], 14);

// add an OpenStreetMap tile layer
L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiemFjaHJvYmluc29uIiwiYSI6IjZXWDh0enMifQ.P_x5U3esb8BJM9apOhn4Kg', {
    attribution: '© Mapbox © OpenStreetMap © DigitalGlobe'
}).addTo(map);


// Initialise the FeatureGroup to store editable layers
var drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);

// Initialise the draw control and pass it the FeatureGroup of editable layers
var drawControl = new L.Control.Draw({
    position: 'topleft',
    draw: {
        marker: true
    },
    edit: {
        featureGroup: drawnItems
    }
});
map.addControl(drawControl);
    
map.on('draw:created', function(e){
    var type = e.layerType,
        layer = e.layer;
    
    if (type === 'marker'){
        layer.bindPopup('A popup!');
    }
    
    drawnItems.addLayer(layer);
});

}

window.onload = main;




1 个答案:

答案 0 :(得分:0)

确保复制了所有必需的外部.js文件。 Leaflet.draw需要

  • leaflet.css
  • leaflet.draw.css
  • leaflet.js
  • leaflet.draw.js

HTML:

<div id="map" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></div>

脚本:

function main() {

  // create a map in the "map" div, set the view to a given place and zoom
  var map = L.map('map', {
    drawControl: true
  }).setView([35.110756, -120.591667], 14);

  // add an OpenStreetMap tile layer
  L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiemFjaHJvYmluc29uIiwiYSI6IjZXWDh0enMifQ.P_x5U3esb8BJM9apOhn4Kg', {
    attribution: '© Mapbox © OpenStreetMap © DigitalGlobe'
  }).addTo(map);


  // Initialise the FeatureGroup to store editable layers
  var drawnItems = new L.FeatureGroup();
  map.addLayer(drawnItems);


  map.on('draw:created', function(e) {
    var type = e.layerType,
      layer = e.layer;

    if (type === 'marker') {
      layer.bindPopup('A popup!');
    }

    drawnItems.addLayer(layer);
  });
}
window.onload = main();

http://jsfiddle.net/silverhawk/dw9jok46/