我正在使用谷歌地图api 3.这有点烦人,但如何在标记和地图加载后获得infowindow.open
?
我尝试添加tilesloaded
,例如infowindow
和various 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.
答案 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正在被打开。