偏移GPS坐标的公式/算法

时间:2015-01-06 21:28:39

标签: gps geolocation coordinates offset trigonometry

我有GPS坐标作为度数纬度,经度,并希望将它们偏移一个距离和一个角度。

例如:如果我偏移45.12345,{新坐标是什么,{ {1}}沿着承受104度的22公里?

谢谢

2 个答案:

答案 0 :(得分:1)

对于大多数应用来说,这两个公式中的一个就足够了:

"Lat/lon given radial and distance"

第二个问题较慢,但在特殊情况下问题较少(请参阅该页面上的文档) 阅读该页面上的介绍,并确保在得到结果之后将纬度/经度转换为弧度之前和之后的度数。 确保您的系统使用atan2(y,x)(通常是这种情况)而不是atan2(x,y),这是Excell中的情况。

答案 1 :(得分:1)

上一个答案中的链接不再起作用,这是使用后退机器的链接:

https://web.archive.org/web/20161209044600/http://williams.best.vwh.net/avform.htm

公式为:

如果满足以下条件,则点{lat,lon}是tc半径上与点1的距离d out:

 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

此算法仅限于dlon

 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