何时转换 GPS 坐标
When to transform GPS co-ordinates
我对 GIS 数据没有真正的经验,所以当我认为是一个简单的问题结果变得更加微妙时,我毫无准备是很危险的!
我希望能够将 GPS 位置分类为 inside/outside 由 GPS 坐标定义的多边形。原来这是众所周知的(但对我来说不是)point-in-polygon problem. I have read many questions/answers on https://gis.stackexchange.com/ (and here e.g. ).
Shapely seems a good solution, but assumes the co-ordinates are on the same cartesian plane, i.e. not GPS? So I would first need to transform my GPS points to UTM 点。
但是,如果要比较的点(即点和多边形)总是自然地位于同一 UTM 区域内,我是否需要引入这个额外的步骤。它们应该始终在相同的 town/city 内,所以我可以将它们保留为 GPS 并使用 Shapely 中的 lat/long 坐标吗?
我也遇到了 this UTM-WGS84 converter,所以我可以使用这个包转换我的 lat/long 对,然后在 Shapely 中使用这些 UTM 对,但我想尽可能避免任何额外的依赖。
多边形中的点已经采用 2D 限制,GPS 坐标是 3D。马上,这会给你带来麻烦。
一个简单的解决方法是放弃 GPS 高度,将其减少为二维表面坐标。您的下一个问题是您的 2D 表面现在是一个球体。在球面上,一个多边形将球面分成两部分,但没有明显的"inside"。根据多边形中点的顺序,有左侧和右侧,但两侧都不是明显的 "inside"。将赤道视为一个普通的多边形 - 哪个半球是 "inside" 赤道?
接下来是多边形边的问题。根据定义,这些是直线,即线段。但是球面上的线条很奇怪 - 它们通常被称为 大圆 。任意两个大圆恰好在两点相交。这不是笛卡尔线的行为方式。更糟糕的是,当用 GPS 坐标表示时,大圆的方程不是线性的,因为它们是 longitude/latitude 对。
我可以想象此时您感到有点困惑。您可能想从另一个角度看这个问题——我们在地图方面也有类似的问题。根据定义,全球地图是试图压平该不平坦的表面。由于这不太可能,因此您最终得到 map projections。您还可以在此类投影上投影多边形的角点。因为投影是平的,所以你可以在投影上画出边缘。您现在可以直观地看到问题:在两个不同的投影上,相同的多边形将包含世界的不同部分!
所以,既然我们同意在现实世界中,多边形的边缘是大圆,我们真的应该考虑一个使大圆保持直线的投影。只有一类投影具有此 属性,那就是 Gnomonic projection。这是一个投影族,因为您可以选择任何一个点作为中心。
碰巧,我们在这里要考虑一个自然点:我们正在考虑的 GPS 点。如果你把它放在中心,在它周围画一个日轴投影,投影多边形边缘,然后画多边形,你就有了一个精确的解决方案。
除了实际的地球不是球形的。对不起。无论如何,您需要测试有多精确?
我对 GIS 数据没有真正的经验,所以当我认为是一个简单的问题结果变得更加微妙时,我毫无准备是很危险的!
我希望能够将 GPS 位置分类为 inside/outside 由 GPS 坐标定义的多边形。原来这是众所周知的(但对我来说不是)point-in-polygon problem. I have read many questions/answers on https://gis.stackexchange.com/ (and here e.g.
Shapely seems a good solution, but assumes the co-ordinates are on the same cartesian plane, i.e. not GPS? So I would first need to transform my GPS points to UTM 点。
但是,如果要比较的点(即点和多边形)总是自然地位于同一 UTM 区域内,我是否需要引入这个额外的步骤。它们应该始终在相同的 town/city 内,所以我可以将它们保留为 GPS 并使用 Shapely 中的 lat/long 坐标吗?
我也遇到了 this UTM-WGS84 converter,所以我可以使用这个包转换我的 lat/long 对,然后在 Shapely 中使用这些 UTM 对,但我想尽可能避免任何额外的依赖。
多边形中的点已经采用 2D 限制,GPS 坐标是 3D。马上,这会给你带来麻烦。
一个简单的解决方法是放弃 GPS 高度,将其减少为二维表面坐标。您的下一个问题是您的 2D 表面现在是一个球体。在球面上,一个多边形将球面分成两部分,但没有明显的"inside"。根据多边形中点的顺序,有左侧和右侧,但两侧都不是明显的 "inside"。将赤道视为一个普通的多边形 - 哪个半球是 "inside" 赤道?
接下来是多边形边的问题。根据定义,这些是直线,即线段。但是球面上的线条很奇怪 - 它们通常被称为 大圆 。任意两个大圆恰好在两点相交。这不是笛卡尔线的行为方式。更糟糕的是,当用 GPS 坐标表示时,大圆的方程不是线性的,因为它们是 longitude/latitude 对。
我可以想象此时您感到有点困惑。您可能想从另一个角度看这个问题——我们在地图方面也有类似的问题。根据定义,全球地图是试图压平该不平坦的表面。由于这不太可能,因此您最终得到 map projections。您还可以在此类投影上投影多边形的角点。因为投影是平的,所以你可以在投影上画出边缘。您现在可以直观地看到问题:在两个不同的投影上,相同的多边形将包含世界的不同部分!
所以,既然我们同意在现实世界中,多边形的边缘是大圆,我们真的应该考虑一个使大圆保持直线的投影。只有一类投影具有此 属性,那就是 Gnomonic projection。这是一个投影族,因为您可以选择任何一个点作为中心。
碰巧,我们在这里要考虑一个自然点:我们正在考虑的 GPS 点。如果你把它放在中心,在它周围画一个日轴投影,投影多边形边缘,然后画多边形,你就有了一个精确的解决方案。
除了实际的地球不是球形的。对不起。无论如何,您需要测试有多精确?