gpt4 book ai didi

java - 如何限制 Google Maps API AutocompleteService 提供越界建议

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:53 25 4
gpt4 key购买 nike

目前我正在使用 Google Maps API 中的 AutocompleteService 类。来自 documentation我使用 bounds 来应用纽约市的边界。不过,我得到了新泽西州和宾夕法尼亚州的结果。

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
};

但是,这并没有完全按预期工作,因为来自纽约以外的建议已经表明: enter image description here

正如您从上图中看到的那样,显示了 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 边界参数。来自 documentation没有办法限制它。

如何限制 AutocompleteService getPlacePredictions 仅返回边界内的对象?

最佳答案

特别是因为 AutocompleteService@private,看来您应该使用 Autocomplete类,它确实支持 strictBounds

关于java - 如何限制 Google Maps API AutocompleteService 提供越界建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55653800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com