#google-maps #google-maps-api-3
#google-карты #google-maps-api-3
Вопрос:
У меня есть этот код, использующий JavaScript API Google Maps для геокодирования ряда адресов:
geocoder.geocode( { 'address': address }, function( results, status ) {
if ( status == google.maps.GeocoderStatus.OK )
{
// Place marker on map
}
Эти адреса «связаны» с некоторыми моими пользовательскими данными, и я хотел бы знать, «с чем» связан этот адрес. Я просто хочу знать, какому из моих объектов соответствует этот обратный вызов геокодирования.
Более уместным вопросом было бы: могу ли я отправить параметр «custom» или «data» в geocoder.geocode() results и вернуть его обратно мне через функцию обратного вызова (возможно, в объекте «results» в обратном вызове)?
Спасибо!
Ответ №1:
Вы выполняете несколько вызовов асинхронно или это, как кажется, один вызов на основе адреса?
В вашем коде у вас уже есть контекст (адрес, который вы «находите»), но вы не сохраняете его с помощью процедуры «разместить маркер на карте». Если вы не настроили это асинхронно, поток кода должен упростить сопоставление ваших данных с геокодированием и маркером.
Я что-то упускаю?
Комментарии:
1. Я выполняю несколько вызовов асинхронно, поэтому я не знаю, в каком порядке я буду получать эти обратные вызовы.
Ответ №2:
О, забудьте об этом.. Я просто делал здесь что-то глупое.. Это вся моя функция для добавления маркера, геокодирующего адрес в первую очередь:
function addEventToMap( address, label )
{
geocoder.geocode( { 'address': address }, function( results, status ) {
if ( status == google.maps.GeocoderStatus.OK )
{
// Add marker with "label" on it
}
});
}
Я не получал параметр «label», и оказалось, что я передавал ему пустое значение.. виноват!