[英]google maps: open infowindow after map & marker load
我正在使用google maps api3。這有點煩人,但是在標記和地圖加載后如何獲取infowindow.open
?
我嘗試添加各種偵聽器,例如tilesloaded
和idle
,並且沒有任何樂趣。
在這個工作示例中,您會看到infowindow
首先加載: http : //codepen.io/anon/pen/WvbexY
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);
};
編輯:更改了代碼筆以在顯示信息窗口之前偵聽加載的tile。 您的Codepen與TilesLoaded偵聽器的分支位於: http ://codepen.io/brenzy/pen/VLYwGN
因為SO需要一些代碼:
google.maps.event.addListenerOnce(tinygmaps, 'tilesloaded', function() {
// open the infowindow
});
在我的機器上,監聽tileload和空閑狀態似乎都起作用。 (沒有任何偵聽器,信息窗口將顯示在地圖之前。)
我認為您的版本無法正常工作,因為您錯過了這一行
infowindow.open(tinygmaps, marker);
當您進行重構時,因此在偵聽器觸發之前打開了信息窗口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.