我正在努力尝试使用带有Google Maps API v3的markerclusterer v3来聚类50个标记。
我已经按照http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/examples.html中的简单示例来构建我的函数,但是当加载地图时,我在firebug中收到以下错误:
a is undefined
Ba(H,function(a){if(!a)return l;return...){return new P(this.T.d,this.P.b,i)}; main.js (line 13)
我的函数只是做一个简单的json调用来从服务器获取点,然后在将它们添加到markerclusterer之前构建标记数组。
function addMarkerCluster(){
//get json data and create array of map markers and mark up the map using
//a map cluster
$.getJSON("feed/kml.php?action=json",
function(data){
var map;
var markers = [];
var latlng = new google.maps.LatLng(24.91654, 15.31326);
var myOptions = {
zoom: 3,
center: latlng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
map = new google.maps.Map(document.getElementById("googlemap"), myOptions);
google.maps.event.addListener(map, "tilesloaded", function(){
attachFancyBox();
hideLoadDialog();
});
//loop through the data and add to the markers array the lat/lng of the centerpoints
//as google lat/lng objects.
$.each(data, function(i){
latlng = new google.maps.LatLng(this.lat, this.lng);
var marker = new google.maps.Marker(latlng);
markers.push(marker);
});
var markerCluster = new MarkerClusterer(map, markers);
});
}
知道为什么这会导致谷歌地图main.js以这种方式失败?如果我只添加没有标记数组的MarkerClusterer,则地图呈现时没有错误。
当我添加标记数组时,地图错误。
谢谢,
捐赠
答案 0 :(得分:4)
修复很简单我错过了google maps api v3需要传递一个对象的事实。解决方法是改变
var marker = new google.maps.Marker(latlng)
to
var marker = new google.maps.Marker({'position' : latlng});