Google Places AutocompleteService按国家/地区进行过滤

时间:2013-02-02 05:40:39

标签: google-places-api

我正在设置一个自定义自动填充字段,我在其中显示Google商家信息中的位置以及数据库中与搜索查询匹配的事件。出于这个原因,我正在使用Google地方信息自动填充服务来获取查询预测,而不是将地方自动填充功能直接插入我的文本字段。

问题是我无法弄清楚如何使用自动完成服务按国家/地区过滤地方自动填充建议。

我试过了:

var service = new google.maps.places.AutocompleteService(null, {
        types: ['cities'],
        componentRestrictions: {country: "au"}
    });

但它仍显示来自德国和法国的自动填充选项:(

有什么建议吗?

5 个答案:

答案 0 :(得分:40)

您需要在调用服务时传递限制,而不是在创建服务时传递限制。这里:

//create service
service = new google.maps.places.AutocompleteService();

//perform request. limit results to Australia
var request = {
    input: 'Brisbane',
    componentRestrictions: {country: 'au'},
};
service.getPlacePredictions(request, callback);

答案 1 :(得分:8)

您可以使用AutocompletionRequest指定类型和componentRestrictions。这是一个例子 -

var service = new google.maps.places.AutocompleteService();

    service.getPlacePredictions({ input: query, types: ['geocode'], 
                                componentRestrictions:{ country: 'us' } },
            function (predictions, status) {
                if (status == google.maps.places.PlacesServiceStatus.OK) {
                    var results = document.getElementById('results');
                    for (var i = 0, prediction; prediction = predictions[i]; i++) {
                        results.innerHTML += '<li>' + prediction.description + '</li>';
                    }
                }
            });

答案 2 :(得分:1)

正如文档reference中所述,地方资料库AutocompleteService不支持AutocompleteOptions。如果您认为这是一项有价值的功能,请提交Places API - Feature Request

答案 3 :(得分:0)

您应该使用此代码。

sotr:
    -
        sId: '1'
        sFIO: 'Родион Романович Мишин'
        sSalary: '7477.59'

答案 4 :(得分:-1)

使用此工作代码

var input = document.getElementById("query_value");
var autocomplete = new google.maps.places.Autocomplete(input, {
  componentRestrictions: { country: "IN" },
  place_id: "YOUR_PLACE_ID"
});
google.maps.event.addListener(autocomplete, "place_changed", function() {
  var place = autocomplete.getPlace();
});


https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places&language=en&key=YOUR_KEY