何时转换GPS坐标

时间:2018-09-07 11:17:43

标签: python gps gis latitude-longitude utm

我对GIS数据没有真正的经验,所以当我认为这是一个简单的问题变得更加微妙时,我会毫无准备地危险!

我希望能够将GPS位置分类为由GPS坐标定义的多边形的内部/外部。事实证明,这是众所周知的(但对我而言并非如此)point-in-polygon problem。我已经阅读了关于https://gis.stackexchange.com/(以及这里的this)的许多问题/答案。

Shapely似乎是一个很好的解决方案,但是假设坐标位于同一笛卡尔平面上,即不是GPS吗?因此,我首先需要将GPS点转换为UTM点。

但是,如果要比较的点(即点和多边形)总是自然地位于同一UTM区域内,我是否需要引入这一额外步骤。它们应该始终位于同一个城镇/城市内,所以我可以将它们保留为GPS并使用Shapely中的经/纬度坐标吗?

我也遇到过this UTM-WGS84 converter,因此我可以使用此程序包转换经纬度对,然后在Shapely中使用这些UTM对,但是我想尽可能避免任何额外的依赖关系。

1 个答案:

答案 0 :(得分:1)

多边形点已经采用2D限制,GPS坐标为3D。立即给您带来麻烦。

一个简单的解决方法是放弃GPS高度,将其降低为2D表面坐标。下一个问题是2D曲面现在是球体。在球形表面上,多边形将表面分为两部分,但是没有明显的“内部”。从多边形中的点的顺序开始,有一个左侧和一个右侧,但是没有哪一侧是明显的“内侧”。将赤道视为平凡的多边形-哪个半球位于赤道内部?

接下来是多边形边缘的问题。根据定义,这些是笔直的线段。但是球形表面上的线很奇怪-通常被称为大圆圈。任何两个大圆圈都恰好相交了两个点。这不是笛卡尔线的行为。更糟糕的是,用GPS坐标表示时,大圆的方程不是线性的,因为它们是经度/纬度对。

我可以想象在这一点上您会感到困惑。您可能想换个角度来看-地图也有类似的问题。根据定义,Globe地图试图使非平坦表面变平。由于这是不可能的,因此您最终得到了map projections。您也可以在此类投影上投影多边形的角点。由于投影是平坦的,因此可以在投影上绘制边缘。现在,您可以从视觉上看到问题:在两个不同的投影上,相同的多边形将包含世界的不同部分!

因此,由于我们同意在现实世界中,多边形的边缘为大圆,因此我们应该真正考虑使大圆保持笔直的投影。恰好有一个投影家族具有此属性,即Gnomonic projection。这是一个投影系列,因为您可以选择任何点作为中心。

碰巧的是,我们这里有一个自然点要考虑:我们正在考虑的GPS点。如果将其放在中心,则在其周围绘制一个gnomonic投影,投影多边形的边缘,然后绘制该多边形,您将获得一个精确的解决方案。

除了实际的地球不是球形。抱歉。无论如何,您需要测试的精确度如何?