Клуб API Карт

Как получить координаты для YMaps.GeoPoint из Geocoder

okoweb
9 сентября 2011, 13:08

http://api.yandex.ru/maps/jsapi/examples/overlaycustom.html - это понравившийся шаблон

в нем база точек задана координатами, а нужно адресами

                      stations = [{point: new YMaps.GeoPoint(37.579762, 55.775981), name:"Белорусский вокзал"},
                        {point: new YMaps.GeoPoint(37.658032, 55.773732), name:"Казанский вокзал"},
                        {point: new YMaps.GeoPoint(37.565632, 55.742767), name:"Киевский вокзал"},
                      {point: new YMaps.GeoPoint(37.656083, 55.778644), name:"Ярославский вокзал"}];

сделал функцию,которая должна возвращать по адресу точку

    function GetPointFromAddress(x_adr){
        var geocoder = new YMaps.Geocoder(x_adr);
        YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
           if (this.length()) {
        var res = new Ymaps.GeoPoint(this.get(0).getGeoPoint()
      return res;
        }else {
                //alert("Ничего не найдено")
            var res = new YMaps.GeoPoint(37.628378,55.756409);  //произвольная точка, которая будет возвращена, если не найдем ничего
            }
        }
  return res;
    }

и ничего не получается с ее вызовом. 
 {point:  
GetPointFromAddress('Москва, Рязанский проезд, д.1'), name:"Казанский вокзал"},

 

всячески пытаюсь совместить адрес-геокодер-геопоинт и нет успеха.

как их совместить? спасите мой мозг..

8 комментариев
Подписаться на комментарии к посту

зачем вам их геокодировать?

в вашем массиве stations уже есть координаты в поле point

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

фокус в том что вызов геокодера это http-запрос, а значит асинхронный процесс

и в момент вызова функции GetPointFromAddress никаких результатов еще не получено

спасибо. я это подозревал. т.к. вставлял алерты и заметил их нелинейное прохождение в функции. Т.е. варианта исправить этот шаблон нет, насколько я понял. Разве что вбить координаты всех улиц и домов города с населением 500 тыщ ). остатется только использовать чистое геокодирование (как тут http://api.yandex.ru/maps/jsapi/examples/geocoding.html).

грустно...

такой был красивый шаблон с вокзалами..

а может есть какой-то способ задать адреса (а не координаты) точкам и увидеть их все на карте?

поищите в клубе тему множественного геокодирования на клиенте

она много раз обсуждалась

спасибо. начал читать и пробовать.