我正在使用名为“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()。这样,您就可以使用具有componentRestrictionsAutocompletionRequest,但是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执行此操作,则可以将boundsgetQueryPredictions()添加为选项对象的键

关于javascript - Google Maps API-仅针对美国的自动填充预测,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44972341/

10-12 01:16
查看更多