使用 Leafletjs + markercluster 插件获取组标记的位置

Get location of the group marker with Leafletjs + markercluster plugin

我正在使用 LeafletJS 在地图上绘制出租房屋(也使用 openstreetmap),并且我正在使用 Leaflet.markercluster 将这些标记分组到标记群集上,直到用户放大地图。

在分组图标上,我显示了该组中分组的出租房的数量,当您将鼠标放在该分组图标上时,我想画一个圆圈。圆圈大小取决于分组标记的数量,我需要该圆圈的中心位于我的标记簇的相同位置。

My problem is that i can't get the location of the cluster marker, i tried to catch the onMouseOver event and the location that i get it's the location of the first marker of the group.

在我的理想情况下,我需要所有分组标记中间的群集标记图标,并且该圆圈的半径将覆盖所有分组标记位置,但我现在的问题是,如何获得分组标记位置.

这是我的 markercluster 代码。

var markers = new L.MarkerClusterGroup(); 
for (var i = 0; i < addressPoints.length; i++) {
    var a = addressPoints[i];
    var title = a[2];
    var marker = L.marker(new L.LatLng(a[0], a[1]), {
        title: title
    });

    var htmlPopUp = '<div><span class="marker-count">'+title+'</span></div>';
    marker.bindPopup(htmlPopUp);
    markers.addLayer(marker);
}

map.addLayer(markers);
//Create circleMarker for on Hover
var circleMarker = L.circle([-9999,-9999], "-1").addTo(map);
markers.on('clustermouseover', function (a) {
  var circleRadius = a.layer.getAllChildMarkers().length *10000 / Math.pow(map.getZoom(), 3);
  circleMarker.setLatLng([a.layer._cLatLng.lat,a.layer._cLatLng.lng]);
  circleMarker.setRadius(circleRadius);
});

addressPoints 包含标记的纬度和经度点

这个应该很简单,试试:

markers.on('clustermouseover', function (e) {
    console.log(e.latlng);
}