2013-03-07 9 views

Odpowiedz

9

Zobacz obiekt zdarzenia (http://leafletjs.com/reference.html#event-objects):

var map = L.map('map').setView([53.902257, 27.561640], 13); 

L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map); 

var bounds = [[53.912257, 27.581640], [53.902257, 27.561640]]; 

var rect = L.rectangle(bounds, {color: 'blue', weight: 1}).on('click', function (e) { 
    // There event is event object 
    // there e.type === 'click' 
    // there e.lanlng === L.LatLng on map 
    // there e.target.getLatLngs() - your rectangle coordinates 
    // but e.target !== rect 
    console.info(e); 
}).addTo(map); 

Zastosowanie e.target.getLatLngs().

5

używa standardu Leaflet's L.Rectangle.

Prostokąta ulotki rozciąga Polygon. Wielokąt rozszerza się o Polyline.

Dlatego, aby uzyskać współrzędne prostokąta Leaflet.draw, można użyć metody Polyline o nazwie getLatLngs(), która zwraca tablicę punktów na ścieżce.

Przykład:

var drawnItems = new L.FeatureGroup(); 
map.addLayer(drawnItems); 

map.on('draw:created', function (e) { 

    var type = e.layerType, 
     layer = e.layer; 

    if (type === 'rectangle') { 
     layer.on('mouseover', function() { 
      alert(layer.getLatLngs());  
     }); 
    } 

    drawnItems.addLayer(layer); 
}); 
+0

Czy wiesz dlaczego layer.toGeoJSON() geometry.coordinates doda kolejny współrzędnych.. – Spir