我需要在地图中选择多个标记。像这样的东西:谷歌地图中的方框/矩形绘制选择,但带有传单和 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'))
},