Задать вопрос
Cheizer
@Cheizer

Как в Google maps API задать стартовую позицию для карты из множества адресов?

Друзья, очень нужна помощь, всю голову сломал, есть Google карта, с массивом адресов:
var locations = [
['Москва, Россия', 'Москва', 'infowindow 1'],
['Барнаул, Россия', 'Барнаул', 'infowindow 2'],
['Улан-Удэ, Россия', 'Улан-Удэ', 'infowindow 3']
];


Далее из адресов получаем позицию на карте с помощью функции geocode и в цикле расставляем маркеры на карте, и по клику переходим перемещаемся по ним.

Но вот беда, при загрузке карты, центр карты ставится на ПОСЛЕДНИЙ элемент массива, на последний адрес, на последний маркер. А мне нужно на первый, как это сделать ума не приложу, уже все испробовал :( помогите пожалуйста.

Вот поднял пример


Как видите адрес начальный ставится на Улан-Удэ, а нужно на Москву. Как это сделать?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 10 комментариев
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
В функцию геокодера прокидываем флаг, для какого адреса мы устанавливаем центр карты
for (var i = 0; i < locations.length; i++) {
        geocodeAddress(locations[i], i == 0);
}

А уже там проверяем его и выставляем центр
function geocodeAddress(location, isSetToCenterMap) {
  geo.geocode({'address' : location[0]}, function (results,status) {
    if(status == google.maps.GeocoderStatus.OK) {   
      if (isSetToCenterMap) {
          map.setCenter(results[0].geometry.location);
      }
      createMarker(results[0].geometry.location,location[0],location[1],location[2]);
    }
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы