我如何让MarkerClusterer在这里工作?

时间:2015-04-03 15:14:25

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

我正在尝试将MarkerClusterer库实现到我的地图中,到目前为止还没有成功。以下是我到目前为止的代码,这是我在JavaScript控制台中收到的错误:

在初始化功能中,除了创建地图外,还显示了如何创建标记:

  var a = [];
  var t =  {
    name:"name1",
    lat:parseFloat(123),
    lng:parseFloat(-123),
    address:"address1",
    link:"link1",
    site:""
  }
    a[0] = t;

  var t = {
    name:"name2",
    lat:parseFloat(234),
    lng:parseFloat(-234),
    address:"address2",
    link:"link2",
    site:""
  }
    a[1] = t;



for (var i = 0; i < a.length; i++) {
    var latlng = new google.maps.LatLng(a[i].lat,a[i].lng);
    map.addMarker(createMarker(a[i].name,latlng,a[i].address,a[i].link,a[i].site));
 };

在初始化函数之外:

      function createMarker(name,latlng,address,link,site) {
        var marker = new google.maps.Marker({position: latlng});
        a.push(marker);
        google.maps.event.addListener(marker, "click", function() {
          if (infowindow) infowindow.close();
          infowindow = new google.maps.InfoWindow({content:"<div class='buildingInfo'>" + name + "<br>" + "<a href='" + link + "'>" + address +"</a>" + "</div>"});
          infowindow.open(map, marker);
        });
        return marker;

所有标记都是正确创建的,我只是不确定我是否正确实现了MarkerClusterer代码。

我得到的错误:

  

未捕获的TypeError:无法读取未定义的属性“push”

所以我的重要问题是:为什么未定义?我把var a;在所有功能之外使其成为全球性的。

1 个答案:

答案 0 :(得分:0)

GOT IT。

由于a已经被使用了,所以我真正需要做的就是在代码中添加一个新的数组,markers []并推送它。