Синтаксис компонента геокодера API Карт Google - PullRequest
0 голосов
/ 04 сентября 2018

У меня проблемы с добавлением параметра componentRestrictions к объекту геокодера Карт Google. Я использую клиентский API JavaScript. В частности, свойство administrativeArea не работает для меня. Документы говорят, что тип - это строка, и я пробовал много комбинаций, но все же не повезло.

Вот моя функция геокодирования:

function geocodeAddress(geocoder, resultsMap) {
    var address = document.getElementById('address').value;
    geocoder.geocode({'address': address, 'componentRestrictions': {administrativeArea: 'Maricopa County'}}, function(results, status) {
      if (status === 'OK') {
        resultsMap.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
          map: resultsMap,
          position: results[0].geometry.location
        });
        console.log(results)
      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });
  }

Я могу заставить работать другие свойства componentRestriction, например postalCode и country, но не administrativeArea. Документы говорят, что собственность соответствует всем administrative_area levels, поэтому я пытался использовать разные округа США и разные штаты США, но не могу заставить его работать. Я полагаю, что я неправильно понимаю синтаксис, любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 05 сентября 2018

Ваш код правильный. К сожалению, некоторое время назад в поведении фильтров компонентов произошли важные изменения. Похоже, что документация по API JavaScript Карт еще не обновлена ​​в отношении ограничений компонентов.

Я бы посоветовал взглянуть на соответствующую документацию веб-сервиса, которая обновляется и говорит следующее:

Компоненты, которые могут быть отфильтрованы, включают:

  • postal_code соответствует postal_code и postal_code_prefix.

  • страна соответствует названию страны или двухбуквенному коду ISO 3166-1. Примечание: API соответствует стандарту ISO для определения стран, и фильтрация работает лучше всего при использовании соответствующего кода ISO страны.

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

  • route соответствует длинному или короткому названию маршрута.

  • locality соответствует типам местности и sublocality.

  • administrator_area соответствует всем уровням административной области.

источник: https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

Итак, как вы видите, административная область больше не является строгим фильтром. На данный момент доступны только строгие фильтры: почтовый индекс и страна.

Надеюсь, мой ответ прояснит ваше сомнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...