Синтаксис компонента геокодера API Карт Google
У меня проблемы с добавлением параметра componentRestrictions к объекту геокодера Карт Google. Я использую клиентский API JavaScript. В частности, administrativeArea
собственность не работает для меня. Документы говорят, что type - это строка, и я пробовал много комбинаций, но все же не повезло.
Вот моя функция геокодирования:
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 ответ
Ваш код правильный. К сожалению, некоторое время назад в поведении фильтров компонентов произошли важные изменения. Похоже, что документация по API JavaScript JavaScript еще не обновлена относительно ограничений компонентов.
Я бы посоветовал взглянуть на соответствующую документацию веб-сервиса, которая обновляется и говорит следующее
Компоненты, которые могут быть отфильтрованы, включают в себя:
postal_code соответствует postal_code и postal_code_prefix.
страна соответствует названию страны или двухбуквенному коду страны ISO 3166-1. Примечание: API соответствует стандарту ISO для определения стран, и фильтрация работает лучше всего при использовании соответствующего кода ISO страны.
Следующие компоненты могут использоваться для влияния на результаты, но не будут применены:
route соответствует длинному или короткому имени маршрута.
сопоставление локальности с типами локальности и подобласти.
административная зона соответствует всем уровням административной зоны.
источник: https://developers.google.com/maps/documentation/geocoding/intro
Итак, как вы можете видеть, административная область больше не является строгим фильтром. На данный момент доступны только строгие фильтры: почтовый индекс и страна.
Я надеюсь, что мой ответ проясняет ваши сомнения.