В настоящее время я работаю с классом AutocompleteService
из API Карт Google. Из документации я использую bounds
, чтобы применить границы для Нью-Йорка. Тем не менее, я получаю результаты от NJ и PA.
Для класса AutocompleteService нет опции strictBounds
, и это затрудняет ограничение результатов только в пределах границ. Вот следующие ограничения, которые я предоставляю для Нью-Йорка:
/**
* NYC Bound Parameters for Google Maps API
* @enum {object}
*/
OfficeMap.NYC_BOUNDS = {
'south': 40.4773991,
'west': -74.25908989999999,
'north': 40.9175771,
'east': -73.7002721
};
Однако это работает не совсем так, как ожидалось, поскольку предложения из-за пределов Нью-Йорка показывают:
Как видно из рисунка выше, показаны предложения от PA.
/** @private {this._google.maps.places.Autocomplete}Autocomplete instance */
this._service = new this._google.maps.places.AutocompleteService();
// Attach handler for the autocomplete search box. This updates the map
// position and re-sorts locations around that position.
this._searchEl.addEventListener('keyup', event => {
if(event.target.value) {
this._service.getPlacePredictions({
input: event.target.value,
offset: 3,
types: ['geocode'],
componentRestrictions: {country: 'us'},
bounds: OfficeMap.NYC_BOUNDS
}, predictions => {
if(predictions) {
let results = predictions.map(e => [e['description']]);
this._inputAutocomplete._autocomplete.options = results;
const autocompleteSelf = this._inputAutocomplete._autocomplete;
this._inputAutocomplete._autocomplete.select = () => {
if (autocompleteSelf.highlightedIndex !== -1) {
autocompleteSelf.input.value = autocompleteSelf
.scoredOptions[autocompleteSelf.highlightedIndex]
.displayValue;
autocompleteSelf.removeDropdown();
let nameOfLocation = autocompleteSelf.input.value;
let googlePlaceObj = this.getGooglePlaceByName(nameOfLocation,
predictions);
this.displayPlacesOnMap(googlePlaceObj);
}
};
}
});
}
});
Метод getPlacePredictions
должен выдавать только предложения NYC, поскольку передается параметр границ NYC. Из документации
нет способа ограничить это.
Как я могу ограничить AutocompleteService getPlacePredictions
только для возврата объектов в границах?