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

Так что, возможно, как в документации говорится, что не все места (Лука, Брусно) демонстрируют эти административные уровни.

Другие вопросы по тегам