【问题标题】:Google Maps Places Autocomplete missing geometryGoogle Maps Places 自动填充缺失的几何图形
【发布时间】:2015-03-25 09:55:07
【问题描述】:

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();

这个地方应该包含一个对象“几何”,但它没有。

这个问题有解决办法吗?

【问题讨论】:

  • 之前在玩 Places API 时也很想知道。许多典型的地点无法通过nearbysearch 找到。所以,你并不孤单。
  • 哇。这个严重的错误怎么会存在一个多月?!希望他们尽快解决。

标签: javascript google-maps autocomplete


【解决方案1】:

看一下函数的开头:

if (!place.geometry) {
  return;
}

PlaceResult 可以,但不能有geometry-属性。

澄清自动完成的工作原理:

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

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

解决方法:AFAIK 否

【讨论】:

  • 没错,但是当转到google.de/maps 时它工作正常。当你写“ZKM”时,它暗示了同一个地方并设置了一个标记。所以必须有一个可行的解决方案。
  • 为什么一定要有解决方案? google.de 不是 maps-API 的实现。可能有例如数据所有者确实授予 google.de 访问权限的地方,但也不授予 maps-API 用户的访问权限。
  • 这很奇怪。使用地理编码 API 时,会找到位置“ZKM”并包括经度和纬度:maps.googleapis.com/maps/api/geocode/xml?address=zkm 因此,一种解决方法是使用地理编码 API 并创建自己的自动完成组件。但我希望有一个更简单的方法......有什么想法吗?
【解决方案2】:

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

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

【讨论】:

【解决方案3】:

看起来它已经被 Google 修复了:)

【讨论】:

  • 我发现这个问题来来去去。
  • 今天它适用于所有法国城市:/
猜你喜欢
  • 1970-01-01
  • 2011-05-02
  • 2016-11-15
  • 2013-05-07
  • 2019-07-24
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多