Клуб API Карт

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

Пост в архиве.

По клику на карте запускается обратное геокодирование с координатами клика. При обработке результатов геокодирования, в результате выполнения кода:

 

document.getElementById('result').innerHTML = choosenGeoObject.properties.get('text');

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

Есть ли возможность в результате обратного геокодирования получить название страны, региона или города отдельно, а не всё в одной строке? (например в виде ассоциативного массива, либо объекта с набором свойств имеющим соответсвующие имена(country, region, city, и т.д.), к которым можно обращаться)?

5 комментариев

Посмотрите свойство AddressDetails в документации к геокодеру

Иннокентий
28 января 2016, 00:49

хорошо, насколько я понял из прочитанного, то ответ в XML, JSON либо JSONP представлении можно получить, если отправить данные посредством GET запроса. А как быть если мы осуществляем геокодирование таким образом:

ymaps.geocode(coords).then(function (res) {

var firstGeoObject = res.geoObjects.get(0); //получаем самый первый объект из результатов геокодирования и далее делаем с ним что-то

}

 

 

есть 2 типа геокодера тот что в АПИ и тот что http

Формат ответа у них совпадает.

Получить нужные данные через АПИ геокодер можно так

console.log(firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails'));

Иннокентий
28 января 2016, 00:49

спасибо, с этим разобрался.)) Подскажите пожалуйста, существует ли какой-нибудь мануал про полный состав иерархии объекта AddressDetails: страна, регион, подрегион, район, населенный пункт, ... и то как эти объекты в его составе называются?