markercluster和google maps v3错误“a is undefined”

时间:2011-01-20 14:53:47

标签: javascript google-maps-api-3 markerclusterer

我正在努力尝试使用带有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,则地图呈现时没有错误。

当我添加标记数组时,地图错误。

谢谢,

捐赠

1 个答案:

答案 0 :(得分:4)

修复很简单我错过了google maps api v3需要传递一个对象的事实。解决方法是改变

var marker = new google.maps.Marker(latlng) 
to
var marker = new google.maps.Marker({'position' : latlng});