GPS坐标偏移公式/算法

GPS坐标偏移公式/算法,gps,geolocation,coordinates,offset,trigonometry,Gps,Geolocation,Coordinates,Offset,Trigonometry,我提供的GPS坐标为纬度和经度,并希望将它们偏移一段距离和一个角度。例如:如果我沿方位104度偏移45.12345,7.3456722km,新坐标是什么?谢谢对于大多数应用,这两个公式中的一个就足够了: 第二种方法速度较慢,但在特殊情况下产生的问题较少(请参见该页上的docu)。 阅读该页上的介绍,并确保在得到结果之前将lat/lon转换为弧度,之后将lat/lon转换为度。 请确保您的系统使用atan2(y,x)(通常是这种情况)而不是atan2(x,y)(在Excell中是这种情况)。上一

我提供的GPS坐标为纬度和经度,并希望将它们偏移一段距离和一个角度。例如:如果我沿方位104度偏移
45.12345
7.34567
22km,新坐标是什么?谢谢对于大多数应用,这两个公式中的一个就足够了:

第二种方法速度较慢,但在特殊情况下产生的问题较少(请参见该页上的docu)。
阅读该页上的介绍,并确保在得到结果之前将lat/lon转换为弧度,之后将lat/lon转换为度。
请确保您的系统使用atan2(y,x)(通常是这种情况)而不是atan2(x,y)(在Excell中是这种情况)。

上一个答案中的链接不再有效,下面是使用回程机器的链接:

公式是:

点{lat,lon}是tc径向上与点1的距离d,如果:

 lat=asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc))
 IF (cos(lat)=0)
    lon=lon1      // endpoint a pole
 ELSE
    lon=mod(lon1-asin(sin(tc)*sin(d)/cos(lat))+pi,2*pi)-pi
 ENDIF

该算法仅限于距离,因此这实际上是一个复杂的问题。你考虑过地形吗?你认为地球是一个球体吗?我看到的距离大约是20公里,很少超过20公里。但我想得到一个距离真相+-1公里的结果。你考虑到地形了吗?你认为地球是一个球体吗?什么是“真理”?有很多方法可以测量a点和B点之间的距离,在短距离内它会变得复杂。是的,我假设它是一个球体,而不是一个平面。澄清一下,你是否假设地球是一个完美的球体?地球不是,但很多人用球体来近似,因为它更容易。请澄清您的问题。该链接不再有效。你能更新链接吗?
 lat =asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc))
 dlon=atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(lat))
 lon=mod( lon1-dlon +pi,2*pi )-pi