在很多情况下我需要标记集群,显示地图中标记总数的比率(以%的形式)而不是集群的子节点数是非常有趣的。因此,如果您在该群集中有20个制作者并且地图中的总数为200,我希望它在地图的该区域显示10%而不是20。
任何人都知道如何实施它?
谢谢
感谢您提供解决方案,它非常简单且运行良好,以下是解决方案的代码:
$.getJSON(link, function(data) {
var total_number = data.features.length; //Here I get the total number of markers
var others = L.geoJson(data, {
onEachFeature: function (feature, layer) {
layer.bindPopup('Number: ' + feature.properties.Nr+' Residency:'+ feature.properties.Lives);
},
})
var markers = L.markerClusterGroup({
iconCreateFunction: function(cluster) {
var markers = cluster.getAllChildMarkers();
var n = ((markers.length/total_number)*100).toFixed(1);;
return L.divIcon({ html: n+'%', className: 'mycluster', iconSize: L.point(40, 40) });
},
});
“myclusters”的CSS如下:
.mycluster {
width: 150px;
height: 15px;
background-color: greenyellow;
text-align: center;
font-size: 18px;
}
再次感谢您
答案 0 :(得分:3)
你可以使用这个puglin: https://github.com/Leaflet/Leaflet.markercluster
示例:
http://leaflet.github.io/Leaflet.markercluster/example/marker-clustering-realworld.388.html
http://leaflet.github.io/Leaflet.markercluster/example/marker-clustering-custom.html
要做一个百分比,请阅读此部分:
https://github.com/Leaflet/Leaflet.markercluster#customising-the-clustered-markers
getChildCount()
或getAllChildMarkers()
提供所有标记