我的要求是仅为班加罗尔的地方获取谷歌地方自动完成建议,但如果我搜索除了班加罗尔以外的任何其他地方,那么我也得到了我不想要的建议。我找到了很多与我的问题相关的stackoverflow链接,但没有一个能解决我的问题。
这可以获得任何特定城市的建议吗?
我在下面分享我的代码: -
var input = (document.getElementById('address'));
var s_w = new google.maps.LatLng( 12.97232, 77.59480 ); //southwest
var n_e = new google.maps.LatLng( 12.89201, 77.58905 ); //northeast
var b_bounds = new google.maps.LatLngBounds( s_w, n_e ); //bangalorebounds
var options = {
bounds:b_bounds,
componentRestrictions: {country: "in"}
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
autocomplete.bindTo('bounds', map);
autocomplete.addListener('place_changed', function() {
//rest_of_the_code
});
请有人帮忙!!
答案 0 :(得分:5)
试试这样。
var bangaloreBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(12.864162, 77.438610),
new google.maps.LatLng(13.139807, 77.711895));
var autocomplete = new google.maps.places.Autocomplete(this, {
bounds: bangaloreBounds,
strictBounds: true,
});
autocomplete.addListener('place_changed', function () {
});
注意:网址应为:https://maps.googleapis.com/maps/api/js?libraries=places&key=YOUR_API_KEY
strictBounds option,该版本目前(2017年1月)是实验版。
答案 1 :(得分:1)
我认为你可以试试这个:
1ts4,2ts5,3ts6,4ts7
将var cityBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(25.341233, 68.289986),
new google.maps.LatLng(25.450715, 68.428345));
var options = {
bounds: cityBounds,
types: ['geocode'],
componentRestrictions: {country: 'est'}
};
值替换为您的值,将LatLng
替换为您的国家/地区代码。
答案 2 :(得分:1)
您可以使用边界来偏向结果,但目前在自动填充的地方没有按城市进行严格过滤。
您可以在公共问题跟踪器中找到要添加更严格过滤器的功能请求:
https://code.google.com/p/gmaps-api-issues/issues/detail?id=4433
请为此功能提出明星请求以表达您的兴趣并从Google接收更新。
答案 3 :(得分:0)
Google不会为特定城市提供自动填充功能,但我们可以手动进行。就我而言,我想显示“马哈拉施特拉邦”州的地址。
this.GoogleAutocomplete = new google.maps.places.AutocompleteService();
this.GoogleAutocomplete.getPlacePredictions(
{
input: this.autocompleteFrom.input,
types: ['geocode'],
componentRestrictions: { country: 'in' },
},
(predictions, status) => {
this.autocompleteItemsFrom = [];
this.zone.run(() => {
if (predictions) {
console.log(predictions)
predictions.forEach((prediction) => {
var statearray = prediction.description.split(",")
var state = statearray[statearray.length - 2]
if(state === ' Maharashtra'){
this.autocompleteItemsFrom.push(prediction);
}
});
}
});
});
我希望它将对您有帮助。