谷歌地图标记加载处理程序?

时间:2020-04-17 13:13:40

标签: javascript google-maps

全部, 非常简单-所有标记都加载后,是否有onload处理程序/事件?

例如,我们正在加载26个标记,而这些标记的加载时间早于标记:

google.maps.event.addListenerOnce(map, 'idle', function(){
    // do something only the first time the map is loaded
});

这也行不通:

google.maps.event.addListenerOnce(marker,'load',function(){
// onload stuff
});

有想法吗?

1 个答案:

答案 0 :(得分:0)

团队,

好吧,我想我回答了我自己的问题-并不像我希望的那样优雅,但这可行:

在我们的createMarker函数中,我在末尾添加了一个'checkloaded()'位,用于检查location.length = markers.length:

function createMarker(add,lat,lng,marker_label) {
        var contentString = '<div contentEditable="true">'+marker_label+'</div>';
        var marker = new google.maps.Marker({
           position: new google.maps.LatLng(lat,lng),
           map: map,
           draggable: true,
           label: labels[labelIndex++ % labels.length]
                 });


        // open marker on load
        google.maps.event.trigger(marker,'click');

        bounds.extend(marker.position);

        //Add marker to the array.
        markers.push(marker);

        checkloaded();

       }

然后:

function checkloaded(){
  if(locations.length == markers.length){
    // do onload stuff here
  }
}

如果有适当的方法,请告诉我并谢谢大家