Leaflet.Draw矩形的坐标

mor*_*rck 13 javascript leaflet leaflet.draw

是否有可能在mouseClick上获取矩形的坐标,所以我有矩形的所有角?

tbi*_*icr 14

请参阅事件对象(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);
Run Code Online (Sandbox Code Playgroud)

使用e.target.getLatLngs().

  • 请显示边界语义,我的输入是`{ne:{lat: -23.5601806640625lon: -46.64794921875}, sw:{lat: -23.565673828125,lon: -46.658935546875}}。 (2认同)

mar*_*nas 9

Leaflet.draw插件使用标准Leaflet的L.Rectangle.

Leaflet的矩形扩展了Polygon.多边形延伸折线.

因此,为了获取Leaflet.draw的矩形的坐标,您可以使用Polyline的方法getLatLngs()返回路径中的点数组.

例:

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);
});
Run Code Online (Sandbox Code Playgroud)