如何在多个标记悬停时显示弹出窗口

How to show a popup on multiple marker hover

我正在努力在标记上显示弹出窗口我可以简单地添加以下行来生成弹出窗口

let marker = L.marker(myloc, { icon: greenIcon }).addTo(map);
marker.bindPopup(map.getCenter() +"<br>" + 
"Min Zoom" + map.getMinZoom() +"<br>" + 
"Max Zoom" + map.getMaxZoom());

我正在努力显示我所在位置附近的标记。我使用过 leaflet-knn 算法。从我的代码中,我将获得 5 个存储在 res 中的标记。现在我必须在悬停或点击事件时显示标记信息。

到目前为止,我已经尝试了以下代码。我收到错误。任何人都可以帮助我我做错了什么。

var longitude = myloc.lng,
latitude = myloc.lat;
var map = L.map('map').setView(myloc, 12),
gjLayer = L.geoJson(testCities);


res = leafletKnn(gjLayer).nearest(
[longitude, latitude], 5, distance);

if (res.length) {
    for (i = 0; i < res.length; i++) {
        var popup = res[i].layer.feature.properties.name;

        var m = map.addLayer(res[i].layer).bindPopup(popup);

        if ($.inArray(res[i], oldArr) === -1)
            oldArr.push(res[i]);
    }
}
m.on('mouseover', function(e){
    this.openPopup();
})

您可以简单地修改您的 GeoJSON() 函数选项:

var gjLayer = L.geoJson(testCities, {
    onEachFeature: function(feature, layer) {
        content = "<b>Name:</b> " + feature.properties.name;
        layer.bindPopup(content);
    }
});