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

时间:2010-09-03 01:08:54

标签: algorithm mapping geometry gis computational-geometry

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

区域可能是以下类型:

  • 国家
  • DMZ
  • 沙漠
  • 冰架

......等等。

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

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

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

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

修改

我应该指出,区域的数据集将是相当静态的,因此如果提高性能,预计算是一个不错的选择。

2 个答案:

答案 0 :(得分:1)

如果你在飞机上,常见的算法是从你的点绘制一条随机的直线半直线,并检查给定多边形的交点数。如果它是奇怪的,你在里面,如果它是偶数,你就在外面。你必须要注意顶点和数字不准确。

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

答案 1 :(得分:1)

一个很好的资源是Natural Earth

  

自然地球是一个公共域地图数据集,可在1:10米,1:50米和1:1亿1千万尺度范围内使用。具有紧密集成的矢量和栅格数据,使用Natural Earth,您可以使用制图或GIS软件制作各种视觉上令人愉悦的精心制作的地图。

数据以ESRI Shapefiles的形式提供。现有许多Shapefile库。

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