我正在从事传单项目。我正在与Leaflet-markerCluster一起使用Leaflet搜索。 我的一些标记在完全相同的坐标上。如果一切正常,如果我要搜索的标记不在群集中(发现标记时我将打开弹出窗口)。 当我搜索群集中的标记时,如果群集之前没有打开过,它将不会打开。 因此,如果我是对的,则需要在打开Popup之前打开集群。但我不知道该怎么做:)有人可以帮助我吗?谢谢
这是markerCluster和searchControl的代码:
var markers = L.markerClusterGroup({ maxClusterRadius: 30 });
markers.addLayer(featuresLayer);
mymap.addLayer(markers);
var searchControl = new L.Control.Search({
layer: L.featureGroup([markers]),
propertyName: 'name',
marker: false,
});
searchControl.on('search:locationfound', function(e) {
if (e.layer._popup)
e.layer.openPopup();
}).on('search:collapsed', function(e) {
featuresLayer.eachLayer(function(layer) {
featuresLayer.resetStyle(layer);
});
});
mymap.addControl(searchControl);
答案 0 :(得分:0)
您是否尝试将zoomToShowLayer方法添加到侦听器?
markers.zoomToShowLayer(marker, function () {
marker.openPopup();
});
答案 1 :(得分:0)
我不知道我是否使用正确,但是出现错误
未捕获的TypeError:无法读取未定义的属性'_zoom'
这是我使用您的示例的代码的一部分
searchControl.on('search:locationfound', function() {
markers.zoomToShowLayer(markers, function (e) {
e.layer.openPopup();
});
}).on('search:collapsed', function(e) {
featuresLayer.eachLayer(function(layer) {
featuresLayer.resetStyle(layer);
});
});