Javascript 获取放大地图的位置:传单

Javascript 获取放大地图的位置:传单,javascript,leaflet,Javascript,Leaflet,我不太会使用传单。有人能告诉我,我能得到我已经完成缩放的区域的经度和纬度吗?我怎么知道那个区域有多少个对象呢?假设有一个对象叫做map。在本例中,map.getBounds()将返回一个对象,该对象有一个\u southern和一个\u southern成员。它们定义了边界矩形的左下角和右上角地理点。如果有一组标记,则迭代该组标记并检查它们是否在边界内,如下所示: function getMarkersInside(bounds, markers) { var subset = [];

我不太会使用传单。有人能告诉我,我能得到我已经完成缩放的区域的经度和纬度吗?我怎么知道那个区域有多少个对象呢?

假设有一个对象叫做
map
。在本例中,
map.getBounds()
将返回一个对象,该对象有一个
\u southern
和一个
\u southern
成员。它们定义了边界矩形的左下角和右上角地理点。如果有一组标记,则迭代该组标记并检查它们是否在边界内,如下所示:

function getMarkersInside(bounds, markers) {
    var subset = [];
    for (var markerIndex in markers) {
        if ((markers[markerIndex].lat >= bounds._northEast.lat) && (markers[markerIndex].lat <= bounds._southWest.lat) && (markers[markerIndex].lon >= bounds._northEast.lon) && (markers[markerIndex].lon <= bounds._southWest.lon)) {
            subset.push(markers[markerIndex]);
        }
    }
    return subset;
}
var markersInside = getMarkersInside(map.getBounds(), myMarkers);

确保在
zoomend
上执行此操作。首先,您需要捕获
zoomend
事件,事件对象内部将是映射实例,您可以从中获取边界框。
然后检查每一层是否在bbox内

map.on('zoomend',function(e){
  var map = e.target,
  bounds = map.getBounds();
  map.eachLayer(function(layer){
    if(bounds.contains(layer.getBounds()))
      alert('kek');
  }); 
})

你说的“物体”是什么意思?你指的是标记吗?是的,我指的是标记
map.on('zoomend',function(){console.log(map.getBounds());})。遍历您的地理要素以检查它们是否在边界内,或者如果您需要处理大量大型查询,请创建一个空间索引(例如)。@Developer查看我的answerbounds.contains显示错误“Uncaught TypeError:无法读取未定义的属性“lat”仅为多边形层获取边界,对于需要使用getLatLng()的标记,已开始工作,非常感谢