2

我想知道GPS 位置是在有人居住的区域还是无人居住的区域。

我已经尝试了一些反向地理编码服务,但所有这些服务都被证明是无用的,因为它们选择了最近的地址。(我明白为什么会这样,它对反向地理编码很有用)

我在Google Maps中注意到,当我搜索一个城市时,它们的边界被选择红色 虚线 。我很乐意使用它或类似的东西。

谷歌地图有什么可能的方式可以提供这样的服务,或者可以解决我的问题。

您知道是否有任何其他 Web 解决方案或数据库可以为我提供此信息?

或者,也许我可以使用任何带有一些参数(例如限制搜索大小)的反向地理编码解决方案来确定该位置是否位于人口稠密的区域?

4

1 回答 1

3

如果您找不到公共服务,那么它会变得有趣,并且在开发工作方面会很昂贵。

公共数据(全球)只能从 OpenStreetMap 获得,我认为他们有这样一个图层(可以命名为 Land_use(农村等))这个图层通常用于为地图着色,如果你发现,请查看 openstreet 地图网页适合您的任务的颜色。(例如看绿色或灰色)。

这些数据存储在多边形中,您可以从顶部提取这些多边形(我假设它们有数百万个)。十你需要一个快速搜索的空间索引,比如区域四叉树。

然后你做一个“点(纬度,经度)在多边形”调用,并得到与你的位置相关的多边形。

可能不是所有的多边形都适合主内存,所以您必须按需加载它们(例如按国家/地区)。

这种方法的一种变体是使用像 postgres 这样的地理空间数据库来存储多边形,并进行数据库查询。

使用这种方法,大多数工作将从 OpenStreetMap DB 文件中提取多边形。

更准确的是来自 TomTom 的数据,但这些数据可能非常昂贵。

于 2013-01-17T18:17:50.620 回答