谷歌地图放置自动完成缺失的几何图形

Google Maps Places Autocomplete missing geometry

本文关键字:几何图形 谷歌地图      更新时间:2023-09-26

Google Maps Places Autocomplete功能不再按预期工作。

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

在地图中插入搜索字符串(例如"ZKM")时,它会在下拉列表中给出一些建议。在这种情况下,它将是"ZKM |卡尔斯鲁厄艺术和媒体技术中心,洛伦茨大街,卡尔斯鲁厄,德国"。单击此项目时,地图上不会放置任何标记!

但是,当搜索"卡尔斯鲁厄"

并单击第一个搜索结果"卡尔斯鲁厄,德国"时,标记的位置正确。

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

var place = autocomplete.getPlace();

该地点应包含对象"几何",但它没有。

此问题有什么解决方法吗?

请确保在自动完成中设置"几何"字段,如下所示:

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

看看函数的开头:

if (!place.geometry) {
  return;
}

PlaceResult可以,但不得具有geometry属性。

要阐明自动完成的工作原理,请执行以下操作:

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

显然,使用的数据存在不一致(API 不应建议无法访问信息的地方),但事实就是如此,您可能会在没有位置的情况下获得预测。

解决方法:AFAIK 否

看起来它已被谷歌修复:)

是的,这个地方包含一个对象"几何"。

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

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