Algorithm 国家/州/海洋的地理区域数据

Algorithm 国家/州/海洋的地理区域数据,algorithm,mapping,geometry,gis,computational-geometry,Algorithm,Mapping,Geometry,Gis,Computational Geometry,我正在开发一个应用程序,其中实体位于地球上的各个位置。我想要一组数据,从中我可以确定一个点包含在哪个区域 区域可以是以下类型: 大陆 国家 湖 大海 DMZ 沙漠 冰架 …等等 我设想将每个区域表示为一个多边形。对于任何给定的点,我将测试它是否包含在每个多边形中。其他的想法是非常受欢迎的 我还希望找到包含部分或全部这些边界的公共域数据集 其中一些多边形将非常详细(可能比我需要的更详细),因此我需要有效执行这些计算的提示。我想,简化二维多边形的方法也会很有用。这类事情的最佳实践是什么 有谁能推

我正在开发一个应用程序,其中实体位于地球上的各个位置。我想要一组数据,从中我可以确定一个点包含在哪个区域

区域可以是以下类型:

  • 大陆
  • 国家
  • 大海
  • DMZ
  • 沙漠
  • 冰架
…等等

我设想将每个区域表示为一个多边形。对于任何给定的点,我将测试它是否包含在每个多边形中。其他的想法是非常受欢迎的

我还希望找到包含部分或全部这些边界的公共域数据集

其中一些多边形将非常详细(可能比我需要的更详细),因此我需要有效执行这些计算的提示。我想,简化二维多边形的方法也会很有用。这类事情的最佳实践是什么

有谁能推荐这些数据的好资源、任何特定的编程方法或做这类事情的现有软件库吗

编辑


我应该指出,区域的数据集将是相当静态的,因此,如果预计算可以提高性能,那么它是一个很好的选择。

如果您在平面上,常用的算法是从您的点绘制一条随机的直线,并检查与给定多边形的交点数量。如果是奇数,你在里面;如果是偶数,你在外面。你必须注意顶点和数值的不精确性

现在,你在一个球体上。您可以将其投影到平面上(实际使用的投影可能取决于多边形),然后执行上述操作。

这是一个很好的资源

“自然地球”是一个公共领域地图数据集,以1:10米、1:50米和1:1.1亿的比例提供。以紧密集成的矢量和光栅数据为特色,利用自然地球,您可以使用制图或GIS软件制作各种视觉愉悦、制作精良的地图

数据以ESRI shapefile的形式提供。存在许多形状文件库


如果在您的编程语言中找不到对shapefile的支持,这将详细介绍文件格式。

有趣的想法Alexandre,谢谢。我不担心测量面积或距离,因此将其视为“包裹矩形”所引起的失真是可以的。考虑X和Y坐标作为纬度和经度。你对查询效率的预计算有什么想法吗?我的思路是计算边界框,或者也许将地球分成几个小部分,并维护至少部分包围每个子部分的区域列表,以便缩小必须评估的列表,无论是多边形的数量,要检查的线段数。多边形的内部/外部近似(如内部和外部边界框,但可能更复杂)应该可以消除很多复杂性。然而,这可能很难做到。此外,优化“光线跟踪”部分可能涉及到用四叉树划分(投影)空间。