我制作了包含多个标记的地图,其中一些具有相同的坐标,因此我只能看到其中一个。 我一直在寻找解决此问题的方法,并找到了一些用于传单的集群插件(例如leaflet.markercluster或PruneCluster),并且尝试使用其中的一些插件,但是每次遇到错误“ ReferenceError:L为未定义”。
首先,我要包含库和文件:
$('head').append('<link type="text/css" rel="stylesheet" href="/upl/' + w_code + '/widget/style.css" >');
$('head').append('<link type="text/css" rel="stylesheet" href="/upl/' + w_code + '/widget/libraries/leaflet.css" >');
$('head').append('<script data-main="scripts/main" src="/upl/' + w_code + '/widget/libraries/require.js"></script>');
requirejs(["/upl/" + w_code + "/widget/libraries/leaflet.js"], function (leaflet) {});
requirejs(["/upl/" + w_code + "/widget/libraries/PruneCluster.js"], function (PruneCluster) {});
稍后在代码中,我正在尝试初始化地图并添加标记(mapMarkers对象):
map = L.map('popup-map').setView([55.7504461, 37.6174943], 11);
var pruneCluster = new PruneClusterForLeaflet();
mapMarkers.forEach(function (element) {
var marker = new PruneCluster.Marker(element.coords);
pruneCluster.RegisterMarker(marker);
});
map.addLayer(pruneCluster);