我设置了一个自定义自动完成场,我显示我的数据库相匹配的搜索查询,从谷歌的地方地点和事件。 出于这个原因,我使用谷歌的地方自动完成服务来获取查询的预测,而不是商家信息自动填充直接插入文本框我。
问题是我无法弄清楚如何通过国家使用自动完成服务过滤地方自动填充建议。
我试过了:
var service = new google.maps.places.AutocompleteService(null, {
types: ['cities'],
componentRestrictions: {country: "au"}
});
但它仍然显示了来自德国和法国的自动完成选项:(
有什么建议?
你需要在调用服务传递的限制,而不是当你创建它。 这里:
//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);
您可以指定使用类型和componentRestrictions AutocompletionRequest 。 下面是一个例子 -
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>';
}
}
});
正如文件中概述参考 ,商家信息库AutocompleteService
不支持AutocompleteOptions 。 如果你认为这将是一个有价值的功能,请提交Places API的-功能要求 。
您应使用此代码。
var options = {
types: ['(cities)'],
componentRestrictions: {country: ["in"]}
}
//Find From location
var input= document.getElementById('input_box_city');
var fromAuto = new google.maps.places.Autocomplete(input, options);
使用此工作代码
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