计算R中具有纬度,经度和海拔高度的两点之间的距离[关闭]

Posted

技术标签:

【中文标题】计算R中具有纬度,经度和海拔高度的两点之间的距离[关闭]【英文标题】:Calculate a distance between two points having lat, long and elevation in R [closed] 【发布时间】:2018-12-08 00:29:37 【问题描述】:

是否有一个软件包可以计算两点之间的空间距离,同时考虑到海拔高度。所以对于每个点,我们都会有纬度、经度和海拔。到目前为止,我必须编写以下函数:

library(geosphere)  
distance3D <- function (point1, point2) 
      planiDist <- distm(point1[1:2], point2[1:2])
      altiDist <- point2[3] - point1[3]
      dist3D <- sqrt(planiDist^2+altiDist^2)
      return(dist3D)
    

我只是想知道其中一个 R 包中是否存在一个函数。

【问题讨论】:

这里有一个指向 FORTRAN 代码的链接:***.com/questions/11710972/…。显然,您可以在 R 中运行 fortran 函数:r-bloggers.com/fortran-and-r-speed-things-up,但我从未这样做过。您可能已经知道这一点,但您当前的功能并不准确。您不能对球体上的点使用欧几里得距离公式。如果你画出等高路径和点对点路径的“三角形”(不是真的,因为线是弯曲的),你会发现连接它们的线不是正交的。 绝对正确!我的计算不准确。考虑到我有一个三角形,我在这里做一个近似值。 我在 SO 上找到了关于这个主题的 this post。可能有用。 这个post很有用! @Koot6133,您引用的链接在具有 XYZ 坐标时也有效。就我而言,我有纬度、经度和海拔。 【参考方案1】:

半正弦大圆距离可能就是您要找的。​​p>

library(geosphere)
distHaversine(p1, p2, r=6378137)


#p1, p2-longitude/latitude of point(s). Can be a vector of two numbers, 
     a matrix of 2    columns (first one is longitude, second is latitude) 
     or a   SpatialPoints* object
#r-radius of the earth; default = 6378137 m 

【讨论】:

以上是关于计算R中具有纬度,经度和海拔高度的两点之间的距离[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

经纬度之间距离怎么算?

如何计算经纬度两点之间的距离? [复制]

如何计算经纬度之间的距离?

JavaScript 用纬度和经度坐标计算两点之间的距离

如何计算经纬度之间的距离? 具体这样计算经纬度间距

使用纬度经度计算两点之间的距离?