谷歌地图:打开地图后的infowindow&标记负载

时间:2015-04-24 23:16:53

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

我正在使用谷歌地图api 3.这有点烦人,但如何在标记和地图加载后获得infowindow.open

我尝试添加tilesloaded,例如infowindowvarious listeners,但没有任何乐趣。

在这个工作示例中,您看到function initialize() { if (document.getElementById("maper")) { var latlng = new google.maps.LatLng(52.370778, 4.899448); var mapOptions = { zoom: 11, center: latlng, scrollwheel: "", scaleControl: "", disableDefaultUI: "", mapTypeId: google.maps.MapTypeId.ROADMAP }; var tinygmaps = new google.maps.Map(document.getElementById("maper"), mapOptions); var marker = new google.maps.Marker({ map: tinygmaps, position: tinygmaps.getCenter() }); var contentString = '<p>WHY ME FIRST?</p>'; var infowindow = new google.maps.InfoWindow({ content: contentString, position: latlng, }); infowindow.open(tinygmaps, marker); //var openwindow = google.maps.event.addListener(tileListener, 'tilesloaded', open_infowindow); // Hummmm! } } google.maps.event.addDomListener(window, 'load', initialize); function open_infowindow() { infowindow.open(tinygmaps, marker); google.maps.event.removeListener(tileListener); }; 正在加载之前: idle

http://, https://, www., http://www., https://www.

1 个答案:

答案 0 :(得分:2)

编辑:更改codepen以在显示infowindow之前侦听tilesloaded。您的codepen与tilesloaded侦听器的分支在这里:http://codepen.io/brenzy/pen/VLYwGN

因为SO需要一些代码:

a[i-1, j-1], a[i-1, j  ], a[i-1, j+1],
a[i  , j-1], a[i  , j  ], a[i  , j+1],
a[i+1, j-1], a[i+1, j  ], a[i+1, j+1]

在我的机器上,监听tileloaded和idle似乎功能相同。 (如果没有任何一个监听器,infowindow将显示在地图之前。)

我假设你的版本没有用,因为你错过了这行

google.maps.event.addListenerOnce(tinygmaps, 'tilesloaded', function() {
  // open the infowindow
});

当你进行重构时,所以在听众解雇之前,infowindow正在被打开。