2013-07-15 2 views
0

Я использую базовую функцию инициализации со страниц разработчиков Google Maps. Я немного новичок в использовании карт, но мне удалось добиться того, чего хочу от чтения сайта разработчика. То, что я не могу найти, - это способ вызова функции после инициализации, на которой была LOADED карта. Например, я хочу, чтобы обновить направления на основе значений в предварительно заполненных формФункция вызова при загрузке карты google

Я пытался что-то вроде этого ...

google.maps.event.addDomListener(window, 'load', function() { 
    initialize(); 
    updateDirections(); 
}); 

Initialize загружает карту, updateDirections это функция, которую я хочу, чтобы позвонить поставить в направлениях и некоторых других мелочах, связанных с моей веб-страницей, но я предполагаю, что картам требуется немного времени для загрузки, тогда я должен назвать updateDirections().

Как наилучшим образом это сделать? Я бы подумал, что был бы доступен параметр обратного вызова или onsucess в параметрах карты.

В любом случае, я думаю, что я пытаюсь сделать это прямо, но, возможно, я ошибаюсь, или, может быть, это так, и я просто искал неправильные вещи. Я уверен, что на это был дан ответ ранее, но я не могу найти ничего, что просто делает то, что я пытаюсь сделать.

Благодаря Bizt

ответ

2

Внутри вашей initialize() функции, после того, как вы создаете карту и иметь ссылку на него в переменной с именем map, добавить слушателя событий для idle события:

google.maps.event.addListenerOnce(map, 'idle', function() { 
    updateDirections(); 
}); 

Если единственное, что вам нужно сделать, это вызвать функцию updateDirections(), вы можете просто использовать ее непосредственно в качестве обратного вызова:

google.maps.event.addListenerOnce(map, 'idle', updateDirections); 

Обратите внимание на использование addListenerOnce() вместо addListener(), поэтому этот прослушиватель событий вызывается только при первом срабатывании события. Если вы использовали addListener(), он будет стрелять каждый раз, когда карта будет развернута или увеличена.

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