Gis 如何计算地球中心和两个经纬度坐标之间的夹角

Gis 如何计算地球中心和两个经纬度坐标之间的夹角,gis,distance,latitude-longitude,angle,Gis,Distance,Latitude Longitude,Angle,我有两个LatLon(纬度经度)物体,代表地球表面的两个位置。我想找出地球中心和这两个拉特伦物体之间的角度(弧度) 我将使用这个角度和地球的半径来计算两个位置之间的弧长(我认为这将比使用简单的毕达哥拉斯提供更好的精度,并且比计算大圆距离更快) 我已经有了代码来计算毕达哥拉斯距离和大圆距离。使用类似的东西-我起初认为这是毕达哥拉斯的东西吗 弧度=sqrt(deltaLA^2+deltaLO^2)*PI/180之间的角度 编辑:delta=delta>180?360 delta:delta 我们在上

我有两个LatLon(纬度经度)物体,代表地球表面的两个位置。我想找出地球中心和这两个拉特伦物体之间的角度(弧度)

我将使用这个角度和地球的半径来计算两个位置之间的弧长(我认为这将比使用简单的毕达哥拉斯提供更好的精度,并且比计算大圆距离更快)


我已经有了代码来计算毕达哥拉斯距离和大圆距离。

使用类似的东西-

我起初认为这是毕达哥拉斯的东西吗
弧度=sqrt(deltaLA^2+deltaLO^2)*PI/180之间的角度

编辑:
delta=delta>180?360 delta:delta


我们在上面的球体上工作一定是错误的
但是这个链接可能会有帮助:。

所以我把坐标转换成笛卡尔坐标,标准化它们,取点积,然后计算反余弦?有没有更简单的方法?这会导致欧几里德距离在球体表面上非常不准确。@wpearse是的,地球表面的弧长不是一个简单的计算。我最终使用了这个解决方案。虽然不完美,但事实证明它是一款速度精度可接受的天平……甚至不接近。想象两个点横跨北极,相距1英寸,但经度相差180度……这只是一个想法,delta we neel不应该大于180,然后你可以修改为360-delta,如果delta>180……它需要多精确,在多大的距离上?如果我们谈论的是相距数千英里的点,那么假设一个简化模型(如球形地球)可能会产生很大的误差(以英里为单位)。如果你想要弧长,你必须使用大圆。否则你会得到欧几里德距离,这在球面上是不精确的。请查看这篇维基百科文章以获得一些见解:。顺便说一句,如果你在gis.stackexpunge.com上问这个问题,你可能会得到更多的答案。@SRM,正确链接:最坏的情况是毕达哥拉斯距离大约25000公里(15000英里)。“大圆”速度慢约10倍,但精度更高。我基本上是在寻找这两种方法的速度和准确性之间的平衡:)