谷歌地图API自动完成:仅输出特定州的城市



我正在使用ionic-3 framework开发出租车预订应用程序。我已经在我的应用程序中使用了Google maps API自动完成功能,并且它工作正常,但我想仅显示特定州的城市和地点(我的出租车服务仅适用于我的马哈拉施特拉邦(。你能建议我怎么做吗?我的代码集成如下。谢谢。

<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&libraries=places"></script>
this.GoogleAutocomplete = new google.maps.places.AutocompleteService();
SearchAddress() {
if (this.autocompleteFrom.input == '') {
this.autocompleteItemsFrom = [];
return;
}
this.GoogleAutocomplete.getPlacePredictions({ input: this.autocompleteFrom.input },
(predictions, status) => {
this.autocompleteItemsFrom = [];
this.zone.run(() => {
predictions.forEach((prediction) => {
this.autocompleteItemsFrom.push(prediction);
});
});
});
}

您可以使用请求中的位置和半径参数或边界参数将结果偏向于您感兴趣的区域。

查看文档

https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompletionRequest。

遗憾的是,自动完成服务目前不支持严格边界,因此您无法将结果完全限制在指定区域。

在Google 问题跟踪器中创建了严格的边界的相应功能请求:

https://issuetracker.google.com/issues/36219203

我可以建议盯着功能请求以添加您的投票并订阅进一步的通知。

恢复时,您的代码应更改为类似

this.GoogleAutocomplete.getPlacePredictions({ 
input: this.autocompleteFrom.input,
bounds: {
east: 80.890924,
north: 22.028441,
south: 15.6024121,
west: 72.659363
} 
},
(predictions, status) => {
this.autocompleteItemsFrom = [];
this.zone.run(() => {
predictions.forEach((prediction) => {
this.autocompleteItemsFrom.push(prediction);
});
});
});

在此示例中,我使用了返回马哈拉施特拉邦地理编码 API 的边界

https://maps.googleapis.com/maps/api/geocode/json?address=Maharashtra&key=MY_API_KEY

....
formatted_address: "Maharashtra, India",
geometry: {
bounds: {
northeast: {
lat: 22.028441,
lng: 80.890924
},
southwest: {
lat: 15.6024121,
lng: 72.659363
}
},
location: {
lat: 19.7514798,
lng: 75.7138884
},
.....

我希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新