代码之家  ›  专栏  ›  技术社区  ›  Drew Noakes

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

  •  1
  • Drew Noakes  · 技术社区  · 14 年前

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

    区域可以是以下类型:

    • 大陆
    • 国家
    • 二甲基亚砜
    • 沙漠
    • 冰架

    …等等。

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

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

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

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

    编辑

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Alexandre C.    14 年前

    如果你在一个平面上,通常的算法是从你的点画一条随机的直线半直线,并检查与给定多边形的交点数量。如果很奇怪,你就在里面,如果是偶数,你就在外面。你必须小心顶点和数字不准确。

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

        2
  •  1
  •   Drew Noakes    14 年前

    一个伟大的资源是 Natural Earth .

    自然地球是一个公共领域地图数据集,可在1:10米、1:50米和1:1.1亿尺度上使用。具有紧密集成的矢量和光栅数据,与自然地球,你可以使各种视觉愉悦,精心制作的地图与制图或地理信息系统软件。

    数据作为ESRI形状文件提供。存在许多形状文件库。

    如果在编程语言中找不到对形状文件的支持,则 PDF 详细说明文件格式。