传单中的一个框内的多个标记选择

dec*_*ard 15 dictionary openstreetmap leaflet

我需要在地图中选择多个标记.这样的事情:Google地图中的框/矩形绘制选择,但使用Leaflet和OSM.

我认为可以通过修改在OSM地图中移动单击并拖动时出现的缩放框来完成,但我不知道该怎么做.

编辑:我重写了_onMouseUp函数,正如L. Sanna所建议的那样,结果是这样的:

_onMouseUp: function (e) {

    this._finish();

    var map = this._map,
    layerPoint = map.mouseEventToLayerPoint(e);

    if (this._startLayerPoint.equals(layerPoint)) { return; }

    var bounds = new L.LatLngBounds(
    map.layerPointToLatLng(this._startLayerPoint),
    map.layerPointToLatLng(layerPoint));

    var t=0;
    var selected = new Array();

    for (var i = 0; i < addressPoints.length; i++) {
        var a = addressPoints[i];
        pt = new L.LatLng(a[0], a[1]);

        if (bounds.contains(pt) == true) {
            selected[t] = a[2];
            t++;
        }
    }

    alert(selected.join('\n'))
},
Run Code Online (Sandbox Code Playgroud)

fuz*_*uzz 6

你尝试过这样的事吗?

markers 是一个数组 L.latLng() coordinates

map.on("boxzoomend", function(e) {
  for (var i = 0; i < markers.length; i++) {
    if (e.boxZoomBounds.contains(markers[i])) {
      console.log(markers[i]);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)


L. *_*nna 5

我认为当你在osm地图中移动clic并拖动时,可以轻松修改缩放框,但我不知道该怎么做

好主意.缩放框实际上是传单的功能.

是代码.

只需重写_onMouseUp函数即可满足您的需求.