4

我们一直在尝试在谷歌地图中获取适当的地址,但谷歌地图总是最终给出错误的纬度和经度值,从而导致显示错误的地址。

https://maps.googleapis.com/maps/api/geocode/json?address=1735+Vine+Street+AVALON+Hollywood+Los+Angeles+CA

我们使用带有以下参数的上述 API。

实际地址- AVALON Hollywood, 1735 Vine Street, Los Angeles, USA

我们尝试了两种不同的地址格式

当参数作为 1735+Vine+Street+AVALON+Hollywood+Los+Angeles+CA传递时, 我们得到的值为

lat: 34.0522342,
lng: -118.2436849

当参数被传递 AVALON+Hollywood+1735+Vine+Street+Los+Angeles+CA 我们得到的值为

lat: 34.1027186,
lng: -118.3271694

确切的值是:

lat: 34.1027414,
lng: -118.3272224  
4

1 回答 1

2

您的请求存在一些问题。也就是说,我想指出两件重要的事情:

  • 地理编码 API 及其使用
  • Places API 以及您可能对它感兴趣的方式

地理编码 API

我可以在您的请求中看到您正在使用地理编码 API。此 API 仅用于街道地址,但您还添加了位置名称。

谷歌地图将尽力利用所提供的信息,但通常会不准确,就像在这种情况下一样。

在您的具体情况下,您发送的请求应该只使用地址1735 Vine St, Los Angeles, CA 90028

它应该看起来像:

您可以使用反向地理编码检查您的结果。可以在文档中找到一个很好的示例,测试结果也非常有用:

地方 API

即使这样,在更正您的地理编码请求后,您也可能无法获得您期望的确切坐标。这是因为地理编码 API并非旨在将您指向地点,而只是指向街道位置。

有时 API 会进行一些猜测和数据组合以了解您真正想要的内容,但这还不够。

如果您想将人们指向特定地点,您应该使用的服务是 Google Maps Places API:

要正确使用此 API,您必须首先将所需位置添加到 Google Places Service(以防它不存在)。

有很多方法可以做到这一点,为了让您开始,我发现了一篇文章可能被证明有助于实现该目标:


我希望这个答案能让你接近使用 API 解决问题和谷歌运气!

于 2016-07-12T11:37:22.333 回答