【问题标题】:Find addresses within given radius查找给定半径内的地址
【发布时间】:2013-09-12 11:56:28
【问题描述】:

我需要找到给定半径内的所有地址。我已经实现了以下来完成这项工作。

Google Places API

这仅提供半径内的业务地址。它接受半径作为参数。 https://maps.googleapis.com/maps/api/place/textsearch/json?key=myAPIKey&location=6.914701,79.973085&radius=100&sensor=false&hl=en&query=*

谷歌反向地理编码

它只是将给定的 lat & lng 转换为地址。这实际上不符合我的要求。它不接受半径作为参数。 http://maps.googleapis.com/maps/api/geocode/json?latlng=6.914701,79.973085&sensor=false

有没有办法获取给定半径内的所有地址。特别居住地址。

【问题讨论】:

  • 你认为谷歌地图是什么?垃圾邮件数据馈送器?
  • @DevZer0 我不是在抱怨谷歌。我正在询问实现此类功能的可能性,可能有一个 API。
  • 这样的 API 恕我直言,滥用和侵犯隐私的可能性很高
  • @Phpdna 我认为指出的重复问题与我的问题没有任何关系。请再次检查。

标签: php google-maps google-places-api reverse-geocoding


【解决方案1】:

您是否考虑过使用OpenStreetMap 来完成您的任务?在Overpass API 的帮助下,您可以查询给定bounding box 内的所有数据。例如this query 返回在您提到的区域内具有门牌号的所有地址。它使用overpass turbo 进行可视化,仅在后台使用 Overpass API,当然您也可以直接使用 Overpass API 将原始数据作为 XML 或 JSON 返回。

但是,由于您所在的地区在 OSM 中只有稀疏映射的门牌号,因此返回的内容不多。其他更好的地图区域会更好,但如果你愿意,你可以尝试improve your area

有关如何修改给定查询的更多信息,请查看commonly used tagsOverpass API language guide

【讨论】:

  • 感谢您的回答。但看起来 OpenStreetMap 在我的国家/地区没有比 Google 更详细的位置信息。它可能已经覆盖了主要国家。但是,您的回答对我有所帮助。目前我已经开发了 Google Places API 和反向地理编码的组合。
【解决方案2】:

您可以强制使用 google map api,例如,您可以使用点间隔,例如在某个半径内每 8° 度,并评估来自 Google maps geocode API 的 json 响应。但是由于良好的隐私原因,Google 地图地理编码 API 不支持与地点 API 相同的功能。在此处阅读类似问题:Map of all points below a certain time of travel?

【讨论】:

  • 也许你能解释一下 a) op 认为这不能解决他的答案 b) 与你的答案相似吗?
  • 对不起,我不明白你的问题。你能改写它们吗?我只是好奇他们的服务条款是否允许暴力破解他们的 API。这与我的回答无关。
  • API 说它每天允许 X 请求。你有什么问题?
  • 我的回答和你的anwser无关?还是您的意思是 Google Api 不允许每天有 X 个请求?
  • 再一次,我只是想知道是否允许这样的批量查询。如果是,那么一切都很好。
猜你喜欢
  • 2011-12-11
  • 2012-05-04
  • 2011-12-28
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 2022-07-25
  • 1970-01-01
  • 2021-07-02
相关资源
最近更新 更多