met*_*dos 6 javascript google-maps marker google-maps-markers markerclusterer
谷歌地图有一个很好的功能叫做Marker Clusterer,它允许你将基于网格的聚类应用于一组标记.
Marker Clusterer将每个标记计为一个,它总结了网格中标记的数量.不同的是,我想为每个标记分配权重,并在群集中总结这些权重.是否可以使用Google Maps API?你知道其他任何提供类似功能的javascript库吗?
它并不像看起来那么复杂.
markerclusterer-library提供了覆盖计算器函数的选项(这是构建集群图标的功能).
将重量存储为标记的属性,例如:
new google.maps.Marker({position:new google.maps.LatLng(1,2),weight:8});
Run Code Online (Sandbox Code Playgroud)
计算器功能可能如下所示:
var calc=function(markers, numStyles) {
var weight=0;
for(var i=0;i<markers.length;++i){
weight+=markers[i].weight;
}
return {
text: weight,
index: Math.min(String(weight).length, numStyles)
};
}
Run Code Online (Sandbox Code Playgroud)
要应用此自定义功能:
初始化没有标记的clusterer:
var markerCluster = new MarkerClusterer(map);
Run Code Online (Sandbox Code Playgroud)设置功能
markerCluster.setCalculator(calc);
Run Code Online (Sandbox Code Playgroud)添加标记:
markerCluster.addMarkers(markers);
Run Code Online (Sandbox Code Playgroud)演示:http://jsfiddle.net/doktormolle/H4EJu/
该陷阱:计算器功能必须遍历所有标记(默认情况下它不会,它只计算基于这些标志数组的长度).这会影响MarkerClusterer的性能,特别是当你有很多标记时.
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |