Клуб API Карт

Записать координаты точек в массив, 1.х API

Пост в архиве.
kia575ya
14 марта 2013, 21:20

Всем добрый день!

Помогите, пожалуйста, в решение одной задачи.

Строго не судидте, у меня не очень большой опыт использования JS и Яндекс api.    
    

destinations1 = {<!---Массив для перемещения по карте->
};


city_name = {<!---Массив для корректного отображения названия городов в выпадающем списке->
'1' : "Москва",
'2' : "Санкт-Петербург",
'3' : "Екатеринбург",
'4' : "Одесса"
};


for (idelem in city_name) {
var geocoder = new YMaps.Geocoder("Россия, " + city_name[idelem]) ;
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
var geoCoords = geocoder.get(0).getGeoPoint() ;
destinations1[idelem] = geoCoords;
}) ;
}

   
Что нужно: из массива city_name взять названия городов, определить их координаты и записать их в другой массив - destinations1 формата {ID точки,её координаты}

В чём возникла сложность: координаты точки не записываются в массив. Поискав информацию в т.ч. и в данном клубе, я так понял что это происходит из-за асинхронности вызова геокодера.

Скажите, пожалуйста, как возможно реализовать данную задачу???

 

Очень расчитываю на вашу помощь! 

В заранее спасибо!)

2 комментария

Посмотрите этот пример множественного геокодирования на клиенте. 

А вообще я рекомендую вам сделать все тоже самое только на сервере и сохранить результат в БД/файл. И в дальнейшем на клиенте работать уже с координатами. это сохранит траффик ваших посетителей и ускорит ваш сайт

Спасибо!