【问题标题】:Getting location coordinates from Address从地址获取位置坐标
【发布时间】:2015-05-10 08:38:38
【问题描述】:

将提示用户在文本字段中输入他的地址,并在后端我想获取地址的位置坐标。

我使用的是谷歌的地理编码服务,但没有使用他们的任何 API。我在他们的文档中读到“将地理编码器用于获取将使用 google maps API 显示的位置以外的任何目的都违反了服务条款”。

这就是我使用 HTTP 请求的方式

http://maps.googleapis.com/maps/api/geocode/json?address=ADDRESS_STRING&sensor=false

我可以这样做吗?我很困惑,因为我根本没有显示任何地图,但我想获取坐标。这会违反他们的条款吗?

【问题讨论】:

  • 如果您不需要地图功能,您可以考虑使用其他地理编码提供商。 SmartyStreets 提供地理编码和地址验证。查看API,您会看到地址响应中提供了纬度和经度。 (免责声明:我为 SmartyStreets 工作。)

标签: ios maps google-geocoder


【解决方案1】:

很遗憾,是的,我认为您在这里违反了 Google 的规则。另请参阅this 答案。

您仍然可以使用 iOS 的内置正向地理编码引擎。有关文档,请参阅 here

【讨论】:

  • 但 iOS 内置的正向地理编码并不准确。事实上,对于亚洲地址,它总是显示“未找到结果”。
  • 好的,那么您也可以看看 MapQuest 的 Nominatim 搜索 API:developer.mapquest.com/web/products/open/nominatim。在编写自己的实现代码之前,您始终可以尝试一些查询,看看它是否适用于您的用例。
  • 谢谢罗曼。我想我应该接受你,因为我倾向于使用 iOS 的内置前向地理编码。它不太准确,但风险较小。
【解决方案2】:

Google 地图条款非常严格。但是,看起来他们确实允许在没有 Google 地图的情况下显示结果 (Geocoding API Policies):

您可以在 Google 地图上显示 Geocoding API 结果,也可以不使用 地图。如果您想在地图上显示 Geocoding API 结果,那么这些 结果必须显示在谷歌地图上。禁止使用 在非 Google 地图的地图上对 API 数据进行地理编码。

因此您无法在“非 Google”地图上显示 Google Geocoding API 结果。

尽管如此,请记住您仍然无法缓存(仅在最终使用设备上 30 天的纬度/经度)和存储结果。

幸运的是,有许多基于开放数据的地理编码服务。例如,我们 Geoapify 允许我们的客户存储甚至重新分发数据。试试我们的Geocoding API,也许您会发现它是 Google 地理编码服务的一个有价值的替代品。

【讨论】:

  • 您在过去一小时内发布了两个答案,都链接到您自己的公司。请查看How not to be a spammer.
  • 准确地说是三个 )) 但是,只有两个与公司有关。我是该行业的专家,可以回答相关问题。而且,当然,当您的公司提供解决方案时总是很好。我也没有看到我在 1 小时内回答几个问题的问题。人们通常通过吃午饭或短暂休息来做到这一点,其他时候我们忙于其他事情。
  • 当然;我只是想确保您了解该指南。
猜你喜欢
  • 1970-01-01
  • 2015-10-26
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
相关资源
最近更新 更多