Клуб API Карт

Проблемы с геокодером

neondozor
5 октября 2010, 18:25

1. Не могу определить координаты при геокодировании. Пытаюсь использовать getGeoPoint(), но ответа никакого.

Что делать?

var geocoder = new YMaps.Geocoder("'.$addr.'");
alert(geocoder.getGeoPoint());

map.addOverlay(geocoder);

2. Также пытаюсь редактировать параметры метки geocoder - ничего не получается!

    Данный код ничего не меняет.

var geocoder = new YMaps.Geocoder("'.$addr.'");
geocoder.setIconContent("Щелкни меня"); 
map.addOverlay(geocoder); 
2 комментария
Подписаться на комментарии к посту
1. Геокодирование - это асинхронный процесс. Поэтому данные с сервера поступают в геокодер не мгновенно, а через какое-то время. Нужно слушать события геокодера Load и Fault.

YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
    // тут действия после успешной загрузки
})

YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, err) {
    // тут действия после неудачной загрузки
})


2. Геокодер - это группа объектов, поэтому вначале нужно выбрать какой-то объект, а потом производить с ним манипуляции.

YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
    var geoPoint = geocoder.get(0).getGeoPoint(); // Получить геоточку для первого релевантного результата
    geocoder.get(1).setIconContent("Щелкни меня"); // Изменить содержимое значка метки для второго релевантного результата
})

Подробную информацию вы можете найти в руководстве разработчика: http://api.yandex.ru/maps/jsapi/doc/dg/concepts/geocoder.xml
Также советую посмотреть примеры: http://api.yandex.ru/maps/jsapi/examples/#geocoder

Если возникнут еще вопросы или что-то будет не получаться - спрашивайте.
Спасибо!