我正在使用名为“Retrieving Autocomplete Predictions”的Google Maps API示例。而且我不知道如何过滤它,因此它只返回美国的位置。我看到如何用其他示例来做...
var input = document.getElementById('searchTextField');
var options = {
types: ['(cities)'],
componentRestrictions: {country: 'us'}
};
autocomplete = new google.maps.places.Autocomplete(input, options);
但是我似乎无法弄清楚如何将其应用到我的示例中。这是我的代码...
function GetAddressPredictions(Search) {
var displaySuggestions = function (predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
return;
}
predictions.forEach(function (prediction) {
PredictionArray.push(prediction);
});
};
var service = new google.maps.places.AutocompleteService();
service.getQueryPredictions({input: Search}, displaySuggestions);
}
我试过了,但是没有用。
function GetAddressPredictions(Search) {
var displaySuggestions = function (predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
return;
}
predictions.forEach(function (prediction) {
PredictionArray.push(prediction);
});
};
var options = {
types: ['(cities)'],
componentRestrictions: {country: 'us'}
};
var service = new google.maps.places.AutocompleteService();
service.getQueryPredictions({input: Search, options}, displaySuggestions);
}
有任何想法吗?谢谢。
最佳答案
您是如此亲密,但不幸的是要获得此特定行为,您需要使用getPlacePredictions()
而不是getQueryPredictions()
。这样,您就可以使用具有componentRestrictions
的AutocompletionRequest,但是QueryAutocompletionRequest不支持componetRestictions
,您必须退一步使用bounds
将搜索范围限制为一个框,或者使用location
限制搜索范围,使其偏向某个点附近的位置。
这是getPlacePredictions()
的解决方案:
var service = new google.maps.places.AutocompleteService();
var options = {
input: Search,
types: ['(cities)'],
componentRestrictions: {country: 'us'}
};
service.getPlacePredictions(options , displaySuggestions);
如果必须使用
location
执行此操作,则可以将bounds
或getQueryPredictions()
添加为选项对象的键关于javascript - Google Maps API-仅针对美国的自动填充预测,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44972341/