在计算 2 点之间的距离时,Postgres 的 Spatial 插件或任何用于该方式的 Spatial 包是否会考虑海拔高度?
我知道地球的近似曲率中的空间包因素,但如果一个位置在山顶而另一个位置靠近大海 - 这两点之间的计算差异似乎会有很大差异如果不考虑海拔差异。
另外请记住,如果我有 2 个点处于相同的海洋高度,但在这 2 个点之间存在一座山 - 距离包应该考虑到这一点。
最佳答案
这些因素根本没有被计算在内。为什么?该软件只知道这两个特征(您获得距离的两个点,球体/椭球体和基准/投影因子)。
要做到这一点,您可能需要使用开发的线串,您将在其中将您的点与 n 个顶点连接起来,每个顶点都是 Z 感知的。
想象一下(松散的 WKT):LINESTRING((0,1,2),(0,2,3),(0,3,4),(0,10,15),(0,11,- 1)).
要求软件计算每个顶点之间的距离并相加,会考虑地形的变化。但如果没有类似的东西,就不可能绘制出地形的不规则性。
所有 GIS 软件都无法自行判断地形中的那些不规则性是什么,因此不会将它们考虑在内。
您可以使用 ArcGIS(和其他软件)等软件创建此类线串(自动),使用线(两点之间)和表面文件,例如 NASA(SRTM 项目)免费提供的文件。这些文件采用光栅格式,每个像素都有一个以米为单位的 X Y 和 Z 值。遍历你想要的线路,再加上那个地形剖面,就可以实现你想要实现的计算。如果您需要进行 super 精确的计算,则需要一个精确的表面,以及该剖面线每个顶点的精确 Z 值。
清理了吗?
关于database - map : Does calculating distance between 2 points factor in altitude?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375003/