Получить местоположение маркера группы с плагином Leafletjs + markercluster

Я использую LeafletJS для рисования арендованных домов на карте (также используя openstreetmap) и использую Leaflet.markercluster для группировки этих маркеров на кластере маркеров, пока пользователь не увеличит масштаб карты.

На сгруппированных значках я показываю количество арендуемых домов, сгруппированных в этом кластере, и я хочу нарисовать круг, когда вы наведите указатель мыши на этот сгруппированный значок. Размер круга зависит от количества сгруппированных маркеров, и мне нужен центр этого круга в том же месте моего кластера маркеров.

Моя проблема в том, что я не могу получить местоположение маркера кластера, я попытался поймать событие onMouseOver и местоположение, которое я получаю, это местоположение первого маркера группы.

В моем идеальном случае мне нужен значок маркера кластера в середине всех сгруппированных маркеров, а радиус этого круга будет охватывать все позиции сгруппированных маркеров, но теперь моя проблема заключается в том, как получить положение сгруппированных маркеров.

Это мой код 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 содержит точки широты и долготы для маркеров

1 ответ

Решение

Это должно быть просто, попробуйте:

markers.on('clustermouseover', function (e) {
    console.log(e.latlng);
}
Другие вопросы по тегам