Google地图位置自动填充功能不再按预期工作。
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
在地图中插入搜索字符串时(例如“ZKM”),它会在下拉列表中提供一些建议。在这种情况下,它将是“ZKM |ZentrumfürKunstund Medientechnologie Karlsruhe,Lorenzstraße,Karlsruhe,Deutschland”。点击此项目时,地图上不会放置任何标记!
但是当搜索“卡尔斯鲁厄”并点击第一个搜索结果“卡尔斯鲁厄,德国”时,标记被正确放置。
在代码中,调用了一个名为getPlace()的函数。
var place = autocomplete.getPlace();
该地方应包含一个对象“几何”,但它不包含。
这个问题有解决方法吗?
看看函数的开头:
if (!place.geometry) {
return;
}
一个PlaceResult
可能,但必须没有geometry
属性。
澄清自动完成的工作原理:
当您键入内容时,API将请求预测(填充下拉列表)。只有当您从下拉列表中选择一个位置时,它才会请求特定位置的数据(包括几何图形)。
显然,所使用的数据存在不一致性(API不应该建议没有信息可访问的地方),但就是这样,可能会发生没有地点的预测。
解决方法:AFAIK没有
看起来它已被谷歌修复:)
请确保在自动完成中设置'几何'字段,如下所示:
autocomplete.setFields(['address_component', 'geometry']);