2015-04-24 2 views
1

Я работаю с Google Maps api 3. Это немного раздражает, но как мне получить infowindow.openпосле загружен маркер и карта?google maps: открыть информацию после карты и нагрузки на маркер

Я попытался добавить various listeners таких как 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); 
}; 

ответ

2

Edit: Изменено codepen для прослушивания tilesloaded перед отображением InfoWindow. Вилка вашего codepen с tilesloaded слушателя здесь: http://codepen.io/brenzy/pen/VLYwGN

Поскольку SO необходим код:

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

На моей машине, слушая как tilesloaded и простаивает по всей видимости, работают одинаково. (Без любого слушателя, информационное окно отображается перед картой.)

Я предполагаю, что ваша версия не работает, потому что вы пропустили линию

infowindow.open(tinygmaps, marker); 

когда вы рефакторинг, поэтому InfoWindow было перед открытием слушателя.

+0

Хорошо, я просто вызывал слушателя неправильно, но «простоя», похоже, не имеет значения. Однако 'patchloaded' работает (на хроме). Вы не находите то же самое? – orionrush

+0

Я бегу на окнах Chrome, и прослушиватель в режиме ожидания действительно имеет значение. В скрипке, которую я разветвлял, после карты появляется информационное окно. Тем не менее, они оба подходят очень быстро, так что это тонкий. Я не пробовал плетью. – brenzy

+0

Моя система не является migtymouse, но на osx chrome существует значительная разница (с вашей реализацией) при использовании 'idle' и' tilesloaded'. Может быть, милдж здесь меняется, но «титры загружены» мне лучше. Если вы хотите описать, почему добавление слушателя, как вы делали, работает там, где мой не сделал (и запустил этот рабочий код со скрипки), я помечаю ваш ответ как правильный. – orionrush

Смежные вопросы