繁体   English   中英

什么时候应该调用Google Maps MarkerClusterer?

[英]when should Google Maps MarkerClusterer be called?

在向Google Map提供了很多点之后,我意识到我手上的标记太多了,所以我尝试使用MarkerClusterer ,但到目前为止没有成功。 据我了解,应该在实例化并填充地图后调用它-因此我尝试添加了markerCluster = new MarkerClusterer(map); return;之前 好吧,这行不通,我也不知道该如何前进。

另外,在我的示例中,在任何地方都没有调用init() ,但是地图可以工作。 实例化发生在第4行吗? 最重要的是,我在哪里出错?

function init() {
    var latlng = new google.maps.LatLng(map_center[0], map_center[1]);
    var myOptions = { zoom: 7, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, maxZoom: 18};
    map = new google.maps.Map(document.getElementById("map_div"), myOptions);

    for (var i = 0; i<addresses.length; i++) 
        {
            var pos = new google.maps.LatLng(
                    parseFloat(addresses[i]['lt']), 
                    parseFloat(addresses[i]['ln']) 
                );
            addMarker(pos, addresses[i]);   

        }

    return;
}

您需要将一组标记传递给MarkerClusterer构造函数。 这是您对MarkerClusterer的最基本用法的修改后的init函数:

function init() {
  var latlng = new google.maps.LatLng(map_center[0], map_center[1]);
  var myOptions = { zoom: 7, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, maxZoom: 18};
  map = new google.maps.Map(document.getElementById("map_div"), myOptions);
  var markers = [];

  for (var i = 0; i<addresses.length; i++){
    var pos = new google.maps.LatLng(
      parseFloat(addresses[i]['lt']), 
      parseFloat(addresses[i]['ln']) 
    );
    markers.push(new google.maps.Marker({'position': pos}));

  }

  var markerCluster = new MarkerClusterer(map, markers);
}

暂无
暂无

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

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