Javascript 标记聚类组的一个标记
我正在使用,效果很好 下面是它如何与2个标记一起工作的代码:Javascript 标记聚类组的一个标记,javascript,google-maps-api-3,markerclusterer,Javascript,Google Maps Api 3,Markerclusterer,我正在使用,效果很好 下面是它如何与2个标记一起工作的代码: window.onload = function() { // cluster marker var clusterMarker = []; var map = new google.maps.Map(document.getElementById('map'), { center: new google.maps.LatLng( 50, 3), zoom: 6
window.onload = function() {
// cluster marker
var clusterMarker = [];
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng( 50, 3),
zoom: 6,
mapTypeId: 'terrain'
});
// Some sample data
var sampleData = [{lat:50, lng:3}, {lat:50, lng:3.02}];
for (var i = 0; i < sampleData.length; i ++) {
var point = sampleData[i];
var location = new google.maps.LatLng(point.lat, point.lng);
// create marker at location
var marker = new google.maps.Marker({
position: location,
map: map
});
// needed to cluster marker
clusterMarker.push(marker);
}
new MarkerClusterer(map, clusterMarker, {imagePath: 'images/m', maxZoom: 15});
}
window.onload=function(){
//簇标记
var-clusterMarker=[];
var map=new google.maps.map(document.getElementById('map'){
中心:新google.maps.LatLng(50,3),
缩放:6,
mapTypeId:'地形'
});
//一些样本数据
var-sampleData=[{lat:50,lng:3},{lat:50,lng:3.02}];
对于(var i=0;i
以及不同缩放级别上的结果:
如果缩小,markerCluster将统计一个区域中的标记数。我想更改它,使一些标记表示多个人。如果我有一个代表21个人的大标记,第二个代表1个人,那么如果我缩小,我想看到蓝色标记上的数字22,大标记上应该有21。这样可能吗
例如,我希望得到以下结果,即使我只使用了两个标记:
创建一个“计算器”函数,它可以实现您想要的功能(对表示“人数”的标记的属性求和)
“计算器”函数的文档。返回具有以下属性的对象:
(显示在集群上的文本)text
(将索引插入样式数组以访问该集群的样式索引
你能附上你现在拥有的以及你希望它看起来像什么的截图吗?如果你在这里添加一些代码也可能会有所帮助。可能相关的问题:@duncan我添加了图片和代码,希望现在更清晰。你可能想将MarkerClusterer与MarkerWithLabel之类的东西结合使用来添加标签对马克:太好了!!这正是我需要的!谢谢!
/**
* The function for calculating the cluster icon image.
*
* @param {Array.<google.maps.Marker>} markers The markers in the clusterer.
* @param {number} numStyles The number of styles available.
* @return {Object} A object properties: 'text' (string) and 'index' (number).
* @private
*/
MarkerClusterer.prototype.calculator_ = function(markers, numStyles) {
var index = 0;
var count = markers.length;
var dv = count;
while (dv !== 0) {
dv = parseInt(dv / 10, 10);
index++;
}
index = Math.min(index, numStyles);
return {
text: count,
index: index
};
};