作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Google map 标记聚类中遇到了问题。我正在使用 api v3,但由于某些我无法弄清楚的原因,我无法应用标记聚类。如果有任何帮助和建议,我将不胜感激。
应用标记的函数连同聚类代码如下:
function setupOfficeMarkers() {
mgr.clearMarkers();
mgr.refresh();
allmarkers.length = 0;
document.getElementById('zomlevel').value = map.getZoom();
document.getElementById('boundsmap').value = map.getCenter();
// mapbound = map.getBounds();
mapbound=new google.maps.LatLngBounds();
for (var i in officeLayer) {
if (officeLayer.hasOwnProperty(i)) {
var layer = officeLayer[i];
var markers = [];
for (var j in layer["places"]) {
if (layer["places"].hasOwnProperty(j)) {
if(map.getZoom()>=layer["zoom"][0] && map.getZoom()<=layer["zoom"][1]){
//displaying home icon on places starts here
var place = layer["places"][j];
if(place["icon"]){
if(place["icon"][0]){
if(place["icon"][0] == 'own'){
}else{
var icon = getIcon(place["icon"]);
}
}else{
var icon = getIcon(place["icon"]);
}
}else{
var icon = getIcon(place["icon"]);
}
//displaying home icon on places ends here
var title = place["name"];
//alert(title);
var posn = new google.maps.LatLng(place["posn"][0], place["posn"][1]);
mapbound.extend(posn);
if(map.getBounds().contains(posn)){
if(place["icon"][0] == 'own'){
var imageUrl = place["icon"][1];
var markerImage = new google.maps.MarkerImage(imageUrl, new google.maps.Size(66, 65));
var marker = new google.maps.Marker({
position: posn,
draggable: false,
icon: markerImage
});
markers.push(50);
//alert(markers.length);
}else{
var marker = createMarker(posn, title, getIcon(place["icon"]));
}
mgr.addMarker(marker, layer["zoom"][0], layer["zoom"][1]);
attachSecretMessageAjax(marker, place["name"],map);
//attachSecretMessage(marker, '<h2>'+place["name"]+'</h2>',map);
}
//allmarkers.push(marker);
}
}
}
//mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
}alert(markers.length+"OUTSIDE");
var markerCluster = new MarkerClusterer(map, markers);
}
//alert(markers.length+"OUTSIDE");
mgr.refresh();
updateStatus(mgr.getMarkerCount(map.getZoom()));
}
最佳答案
我不确定,但我认为你应该打电话
markers.push(marker);
代替
markers.push(50);
因为 MarkerClusterer 需要 (1) map 和 (2) 标记数组。我希望这有帮助。相反,你可以先调用Marker Clusterer构建,然后再调用
markerCluster.addMarker(marker);
对于每个标记。
关于javascript - 谷歌地图标记集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8600726/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!