google-maps - 是否有可能像谷歌地图那样获得城市的多边形边界?

标签 google-maps gps location reverse-geocoding

我希望能够判断 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/

相关文章:

c# - 如何在 C# 中使用 GMAP.NET 在 map 上绘制圆圈

javascript - 哪个谷歌地图 API 用于在区域选择上呈现此鼠标

iphone - 两个lat long ios之间距离的准确性

firefox - Facebook Javascript SDK 窗口位置重新加载在 Firefox 上不起作用

swift - 使用 swift 转换 CLLocation 中的 CLLocation 字符串

google-maps - 如何使 openInfoWindowHtml 在 Google Maps 2 中工作

javascript - 无法拖动/缩放/与 Google map 交互

ios - 在谷歌地图上关注用户位置

android - 通过短信发送我的当前位置 - Android

javascript - 涉及日期 fns 格式的时区问题()