Geocoder.geocode({'placeId': placeId}) не возвращает administrator_area_level_2/1
У меня проблема с результатом Geocoder.geocode({'placeId': placeId}) в определенном месте (например, Main Street 34, Paris), тогда я получу address_components: street,sublocality,locality,country,postal_code.
function geocodePlaceId(geocoder, placeId, callback) {
geocoder.geocode({'placeId': placeId}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[0]) {
console.log(results[0]);
callback(results[0].address_components);
}
});
}
приведенный выше код для точного местоположения (который содержит улицу с номером улицы и города) возвращает address_components, которые не важны для меня.
Однако я хочу administrative_area_level_2
а также administrative_area_level_1
типы. К сожалению, я много гуглил и ничего. Я подумал, что это определение для моего запроса может быть полезным https://developers.google.com/maps/documentation/javascript/3.exp/reference, но это не так.
Пример: https://maps.googleapis.com/maps/api/geocode/json?&address=luka%20666%20brusno
Я создал запрос с точным адресом с указанием улицы, номера, города и возвращенных address_components, который содержит только эти ключи: маршрут, местность, страну и почтовый индекс, но если я изменю запрос на.. address=brusno, результат содержит административный_area_level_2 и административный_area_level_1. Как я могу получить административный_уровень_1 и административный_уровень_2 для первого варианта?
У вас есть идея, как я могу решить эту проблему или я могу повлиять на возвращаемые типы address_components?
1 ответ
На основании документации по геокодированию Карт Google, administrator_area_level_# указывает на гражданское образование ниже уровня страны. И не все страны демонстрируют эти административные уровни. В большинстве случаев, admin_area_level_# короткие имена будут близко соответствовать подразделениям ISO 3166-2 и другим широко распространенным спискам; однако это не гарантируется, поскольку наши результаты геокодирования основаны на различных сигналах и данных о местоположении. Так что, возможно, это проблема.
Кроме того, что касается запроса с использованием только адреса = brusno, вы заметите здесь, что административный_area_level_# находится в районе Банска Быстрица, а не в том месте, которое вы используете, как Лука, Брусно.
Если вы запросите этот адрес, вы заметите, что это тот же результат.
используя адрес = Банска Быстрицкий район
https://maps.googleapis.com/maps/api/geocode/json?&address=Bansk%C3%A1%20Bystrica%20District
Так что, возможно, как в документации говорится, что не все места (Лука, Брусно) демонстрируют эти административные уровни.