我希望能够判断 GPS 位置是否位于有人居住或无人居住 区域。
我尝试过一些反向地理编码服务,但所有这些服务都被证明毫无用处,因为它们会选择尽可能最近的地址。 (我明白为什么会这样,它对于反向地理编码很有用)
我注意到在 Google map 中,当我搜索城市时,其边界会被选择为红色虚线 定义明确线。我很乐意使用这个或类似的东西。
Google map 有什么可能的方式可以提供这样的服务,或者可以解决我的问题。
您知道还有其他网络解决方案或数据库可以为我提供此信息吗?
或者我可以使用任何具有某些参数(例如限制搜索大小)的反向地理编码解决方案来确定该位置是否位于人口稠密区域?
最佳答案
如果您找不到公共(public)服务,那么它就会变得有趣,并且开发工作量会变得昂贵。
公共(public)数据(全局)只能从OpenStreetMap获得,我认为他们有这样一个图层(可以命名为Land_use(农村等))该图层通常用于给 map 着色,看看openstreet map 网页如果您找到合适的颜色,那就符合您的任务。 (例如,看绿色或灰色)。
这些数据存储在多边形中,您必须提取这些多边形(我假设有数百万个)。十你需要一个快速搜索的空间索引,比如区域四叉树。
然后执行“多边形中的点(纬度,经度)”调用,并获取与您的位置相关的多边形。
可能并非所有多边形都适合主内存,因此您必须按需加载它们(例如按国家/地区)。
此方法的一个变体是使用像 postgres 这样的地理空间数据库来存储该多边形,并执行数据库查询。
使用这种方法,大多数工作将从 OpenStreetMap DB 文件中提取多边形。
来自 TomTom 的数据更准确,但这些数据可能非常昂贵。
关于google-maps - 是否有可能像谷歌地图那样获得城市的多边形边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385377/