反向地理编码没有Web访问(Reverse Geocoding Without Web Access

2019-07-18 02:04发布

我在处理应用程序,其中的一个要求是,我能够进行基于GPS数据的实时反向地理编码操作。 特别是,我必须能够确定州/省,其纬度,经度对地图,当我们从一个州/省移动到另一个检测。

我有一对夫妇的想法,如果有人对以下两种中的任何想法,但她的怀疑:

  • 什么是有效的方式解决这个问题的最好方法?
  • 哪里是找到一个好地方,什么是北美州/省边界适当的格式

作为首发,这里有我有两个主要观点:

  1. 打破北美与网格映射到特定状态全省每个矩形的网格。 请在该表中查找(其快速增长的更精确的你想成为)根据纬度,然后经度(反之亦然)。
  2. 限定多边形的每个状态中的并做某种计算,以确定在该多边形纬度/经度对所在。 我不知道到底如何去了解这一点。 HTML图像映射来介意定义州/省边界的一种方式。

我在python工作感兴趣或者那些可能有他们想提出一个很好的库。

需要明确的是...我没有提供给我的Web访问,所以使用现有的反向地理编码服务不是在运行时的选项

Answer 1:

我建议您使用的第一个想法的变体:使用空间索引 。 空间索引是从矩形内置的数据结构,地图的纬度/经度的有效载荷。 在这种情况下,你可能会映射到矩形国家省对。 一个R-树可能是一个不错的选择。 下面是一个R-树Python包 。 你可以通过比较连续的搜索结果检测漫游。



Answer 2:

我创建了国家离线反向地理编码模块: https://bitbucket.org/richardpenman/reverse_geocode

>>> import reverse_geocode 
>>> coordinates = (-37.81, 144.96), (31.76, 35.21)
>>> reverse_geocode.search(coordinates)
[{'city': 'Melbourne', 'code': 'AU', 'country': 'Australia'},
 {'city': 'Jerusalem', 'code': 'IL', 'country': 'Israel'}]

我会看看我能为国家增加的数据。



Answer 3:

我会从从头开始实现自己的解决方案望而却步。 这是一个相当大的事业,已经有工具,有做到这一点。 如果你正在寻找一个开放源码的方式(读:免费),看看这个博客帖子: 使用的PostGIS到反向地理 。



Answer 4:

如果你能得到州界保持为多边形(例如,通过OpenStreetMap的),确定当前状态只是一个点在多边形测试。

如果您需要解决数据,脱机解决方案是使用微软的MapPoint。



Answer 5:

您可以为整个美国从获得的数据开放街道地图然后,您可以提取您需要这样的城市或州的位置分成什么都格式最适合您的应用程序的数据。 注意:尽管数据质量是好的它不能保证完全准确,所以如果你需要完整的准确性你可能要看看别的地方。



Answer 6:

我有所有的数据和一些访问工具的数据库。 我从普查数据虎矿制成。 我想这会主要是我的数据库SQLite的一个出口和一个位代码翻译。



文章来源: Reverse Geocoding Without Web Access