我正在设置一个自定义自动填充字段,我在其中显示Google商家信息中的位置以及数据库中与搜索查询匹配的事件。出于这个原因,我正在使用Google地方信息自动填充服务来获取查询预测,而不是将地方自动填充功能直接插入我的文本字段。
问题是我无法弄清楚如何使用自动完成服务按国家/地区过滤地方自动填充建议。
我试过了:
var service = new google.maps.places.AutocompleteService(null, {
types: ['cities'],
componentRestrictions: {country: "au"}
});
但它仍显示来自德国和法国的自动填充选项:(
有什么建议吗?
答案 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