【发布时间】:2015-01-01 10:43:42
【问题描述】:
我目前拥有的是一个地方自动完成功能,它显示一个国家/地区的结果。 我想做的是让它显示更多国家/地区的结果(限制为 2 或 3 个)。
据我了解,当前版本的自动完成功能无法做到这一点(https://code.google.com/p/gmaps-api-issues/issues/detail?id=4233) 所以我要做的是获取两个预测列表并显示它们而不是自动完成结果。
有什么方法可以触发自动完成的下拉部分并用预测列表填充它?
输入的onChange中的触发代码:
var inputData = this.value;
var options = {
componentRestrictions: { country: "be" }
};
service = new google.maps.places.AutocompleteService();
var request = {
input: inputData,
componentRestrictions: {country: 'be'},
};
var secondaryRequest = {
input: inputData,
componentRestrictions: {country: 'lu'},
};
service.getPlacePredictions(request, callback);
service.getPlacePredictions(secondaryRequest, callback);
回调函数:
function callback(predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
//here I need to display that dropdown if it isn't already
// and then add the results of the current predictions.
}
更新
2017 年 1 月,Maps JavaScript API 3.27 版中引入了多个国家/地区过滤器自动完成功能:
您现在可以将自动完成预测限制为仅来自多个国家/地区的显示。您可以通过在 AutocompleteOptions 的 componentRestrictions 字段中指定最多 5 个国家/地区来做到这一点。
来源:https://developers.google.com/maps/documentation/javascript/releases#327
【问题讨论】:
-
所以我使用上面的代码和一个自定义的“弹出”div 来显示结果。如果有人有更好的主意,我会将这个问题留几天。之后我会发布我的解决方案(因为它需要一些清理)。