Клуб API Карт

Получение компонент адреса или координат точки из результатов геокодирования

homez386
15 февраля 2012, 21:19

Всем привет!

Появилась потребность на странице с Яндекс-картой при задании пользователем географической точки города в форме адресом выводить в другое поле ее координаты, а если точка задана пользователем координатно, то выводить в адресные поля ее адрес (то, что нашлось, так как не всегда же адрес получается с точностью до дома). Геокодирование делается, для метки точки на карте устанавливается описание с ее адресом, но он получен из YMaps.GeocoderResult.text. Из документации выяснил, что адрес задан в поле AddressDetails как струтура согласно стандарту xAL. Дан там пример структуры для конкретного адреса, но как пользоваться, мне неясно. Может мне кто-нибудь пояснить или дать ссылку на пример использования? Форма должна работать с адресами в пределах Петербурга и ближайших пригородов, соответсвенно, интересуют поля для населенного пункта, улицы, дома и корпуса.

Также я не понял, как получать координату точки, когда был задан ее адрес, из результатов геокодирования.

Заранее всем спасибо!

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

 Читали?

тут есть пример получения координат точки из ответа

 

this.get(0).getGeoPoint()

По поводу xAL в документации есть пример структуры этого объекта

Это обычный javascript-object и пользоваться им можно как любым другим объектом javascript

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

По поводу второго. Означенный Вами пример я упомянул как раз в своем первом сообщении в теме. Из него для меня не вытекало, как пользоваться этим объектом в скрипте. Структура довольно странная, на мой взгляд. Вот, чтобы вытащить номер дома, нужно последовательно именовывать все множество полей, т.е так:

...AddressDetails.Country.Locality.Thoroughfare.Premise.PremiseNumber

Так что ли? И для других полей - соответсвенно их уровню вложенности? Так я понял из примера для конкретного адреса. Поправьте, если я ошибся.

И как еще именовать корпус? Документацию по xAL скачал из первоисточника, но еще не смотрел...

Попробовал так с номером дома, получилось. Гм, ну это однако:) Редко где встретишь такой длинный текст для получения какого-нибудь поля простым именованием.

Вот тогда только про корпус вопрос и остался.

И как еще именовать корпус? Документацию по xAL скачал из первоисточника, но еще не смотрел...

смотрите. я ее наизусть не знаю =)

на будущее, может кто гуглить будет и попадёт на эту страницу..

https://gist.github.com/Coltspb/5788975