何时转换GPS坐标

问题描述 投票:1回答:1

我对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对,但我想尽可能避免任何额外的依赖。

python gps gis latitude-longitude utm
1个回答
1
投票

多边形点已经假设2D限制,并且GPS坐标是3D。马上,这会让你陷入困境。

一个简单的解决方法是丢弃GPS高度,将其减少到2D表面坐标。您的下一个问题是您的2D表面现在是一个球体。在球面上,多边形将表面分为两部分,但没有明显的“内部”。有一个左手边和一个右手边,它遵循多边形中的点的顺序,但两边都不是明显的“内部”。将赤道视为一个平凡的多边形 - 哪个半球位于赤道“内部”?

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

我可以想象,此时你感到有些困惑。你可能想从另一边看这个 - 我们在地图上遇到了类似的问题。根据定义,地球地图试图使非平坦表面变平。由于这不太可能,你最终得到了map projections。您还可以在此类投影上投影多边形的角点。由于投影是平的,您可以在投影上绘制边缘。您现在可以直观地看到问题:在两个不同的投影上,相同的多边形将包含世界的不同部分!

因此,既然我们同意在现实世界中,多边形的边缘是大圆,我们应该考虑一个保持大圆直的投影。只有一个具有此属性的投影系列,那就是Gnomonic projection。这是一系列预测,因为你可以选择任何一点作为中心。

碰巧的是,我们在这里有一个自然要点:我们正在考虑的GPS点。如果你把它放在中心,在它周围绘制一个gnomonic投影,投影多边形边,然后绘制多边形,你有一个确切的解决方案。

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

© www.soinside.com 2019 - 2024. All rights reserved.