即使我将其限制为仅“gb”,以下代码片段仍然在预测中包含爱尔兰地址。如果我将输入设置为英国以外的其他地址,例如“法国巴黎”,则预测将按预期为空。我不确定我是否设置有问题,或者这只是谷歌自动完成服务的一个错误。
var service = new window.google.maps.places.AutocompleteService();
var input = "dublin, ireland";
function callback (predictions, status) {
console.log(predictions, status);
}
service.getPlacePredictions({
input: input,
types: ["geocode"],
componentRestrictions: {
country: "gb"
}
}, callBack);
更新: 我已按照 xomena 的建议提交了该错误。 https://issuetracker.google.com/issues/112065348
最佳答案
我尝试通过应用相同参数的自动完成 Web 服务请求来重现您的问题
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=dublin%2C%20ireland&types=geocode&components=country%3AGB&key=MY_API_KEY
如屏幕截图所示,确实,5 个项目中有 1 个肯定位于爱尔兰,4 个位于北爱尔兰
Google 方面似乎出现错误,因为地点 ID ChIJAVEnPNX9XUgR-1f5T_Mzj6g 应按国家/地区过滤器过滤掉。
我在maps.google.com上找到了这个地方,它的地址部分包含爱尔兰,因此API中出现了一些问题:
请随时在public issue tracker中为Google提交错误。希望 Google 能够尽快修复它。
关于javascript - 为什么谷歌地图自动完成服务在结果中包含爱尔兰地址,即使仅限于 "gb"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51622220/