繁体   English   中英

在Google地图上动态添加标记集群

[英]Dynamic add marker cluster on google map

我想在地图上动态添加标记,并使用markerCluster将它们聚类,如下面的链接: http : //google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/examples.html ,当用户进入我的网站时,他们会看到一个初始的Google地图,当他们按下按钮时,我将返回我的数据库以获取100数据并为用户绘制地图,因为100数据可能很大特别是它们很近,所以我想使用markerCluster,但是不知何故,我找不到原因,控制台中没有错误显示(我使用chrome的Web开发工具)

这是我的JavaScript,我使用Java,JavaScript和JSP:

$('#addMarkerData').click(function(){
console.log('into addMarkerData click function');
$.get('getphoto.do',{},function(Result){
    var markers = [];
    var image = 'img/location.png';
    for(var i=0; i < 100; i++){
            console.log(Result[i].photoId);
            console.log(Result[i].latitude);
            console.log(Result[i].longitude);
            console.log(Result[i].imgURL);  
              var latLng = new google.maps.LatLng(Result[i].latitude,
                      Result[i].longitude);
              var marker = new google.maps.Marker({
                  animation: google.maps.Animation.DROP,
                  position: latLng,
                  icon: image
              });
              markers.push(marker);
    }
    var markerCluster = new MarkerClusterer(map, markers);
    console.log(markerCluster.getTotalMarkers());
});  

});

变量映射是在另一个.js文件上声明的,并且将在此.js文件之前加载

还有一件事,我代码的最后一行console.log(markerCluster.getTotalMarkers())显示正确答案(100),顺便说一句

如果有人可以给我一些建议,将不胜感激

您应该在函数外部创建MarkerClusterer ,以便可以反复使用它。 您可以在创建地图后立即创建它:

var map = new google.maps.Map();
var markerCluster = new MarkerClusterer(map);

然后,您可以在JSON回调中使用addMarker()addMarkers()方法。 每次将使用相同的标记聚类器,因此不会删除任何以前添加的标记。 代码的粗略概述:

$('#addMarkerData').click(function () {
    $.get('getphoto.do', {}, function (Result) {
        var markers = [];
        for (var i = 0; i < Result.length; i++) {
            var marker = new google.maps.Marker({
                animation: google.maps.Animation.DROP,
                position: new google.maps.LatLng(Result[i].latitude, Result[i].longitude),
                icon: 'img/location.png'
            });
            markers.push(marker);
        }
        markerCluster.addMarkers(markers);
        console.log(markerCluster.getTotalMarkers());
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM