Arv*_*vin 1 javascript java jsp google-maps-api-3 google-maps-markers
我想在地图上动态添加标记并使用markerCluster对它们进行聚类,如下链接:http ://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/examples.html 场景是,当用户进入我的网站时,他们会看到一个初始的谷歌地图,当他们按下按钮时,我将返回我的数据库以获取 100 条数据并为用户在地图上绘制,因为 100 条数据对于可能来说有点大特别是它们很接近,所以我想使用markerCluster,但不知何故它不起作用,我找不到原因,控制台中没有错误显示(我使用chrome的网络开发人员工具)
这是我的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());
});
Run Code Online (Sandbox Code Playgroud)
});
变量map在另一个.js文件上声明,并将在该.js文件之前加载
还有一件事,我的代码中的最后一行,console.log(markerCluster.getTotalMarkers())
显示正确的答案(100),顺便说一句
如果有人能给我一些建议,我将不胜感激,谢谢
您应该在函数外部创建MarkerClusterer
,以便可以反复使用它。您可以在创建地图后立即创建它:
var map = new google.maps.Map();
var markerCluster = new MarkerClusterer(map);
Run Code Online (Sandbox Code Playgroud)
然后,您可以在 JSON 回调中使用addMarker()
or方法。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());
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3591 次 |
最近记录: |