Google 地图地点自动补全缺失的几何图形

Google Maps Places Autocomplete missing geometry

Google 地图地点自动完成功能不再按预期工作。

https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

在地图中插入搜索字符串时(例如"ZKM"),它会在下拉列表中给出一些建议。在这种情况下,它将是 "ZKM | Zentrum für Kunst und Medientechnologie Karlsruhe, Lorenzstraße, Karlsruhe, Deutschland"。单击此项目时,地图上不会放置任何标记!

但是当搜索 "Karlsruhe" 并单击第一个搜索结果 "Karlsruhe, Deutschland" 时,标记放置正确。

在代码中调用了一个名为 getPlace() 的函数。

var place = autocomplete.getPlace();

该地点应该包含一个对象 "geometry",但它没有。

这个问题有解决办法吗?

看看函数的开头:

if (!place.geometry) {
  return;
}

一个 PlaceResult 可以,但不能有一个 geometry-属性.

阐明自动完成的工作原理:

当您键入内容时,API 将请求预测(以填充下拉列表)。只有当您 select 从下拉列表中选择一个地点时,它才会请求特定地点的数据(包括几何图形)。

显然使用的数据存在不一致(API不应该建议一个没有信息可访问的地方),但就是这样,你可能会得到一个没有地方的预测.

解决方法:AFAIK 否

看起来它已被 Google 修复:)

请确保在自动完成中设置 'geometry' 字段,如下所示:

autocomplete.setFields(['address_component', 'geometry']);

是的,该地点包含对象“几何”。

要找到这个,您应该使用这个:

autocomplete.getPlace().geometry.location.lat() //for the latitude
autocomplete.getPlace().geometry.location.lng() //for the longitude