2013-03-07 16 views

Antwort

9

Siehe Ereignisobjekt (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); 

Verwendung e.target.getLatLngs().

5

Leaflet.draw plugin verwendet Standard Leaflet's L.Rectangle.

Leaflet's Rechteck erstreckt sich Polygon. Polygon erweitert Polyline.

Um die Koordinaten des Rechtecks ​​von Leaflet.draw zu erhalten, können Sie daher die Polyline-Methode getLatLngs() verwenden, die ein Array der Punkte im Pfad zurückgibt.

Beispiel:

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

Wissen Sie, warum layer.toGeoJSON() geometry.coordinates wird eine weitere Koordinate hinzuzufügen.. – Spir

Verwandte Themen