我有GPS坐标作为度数纬度,经度,并希望将它们偏移一个距离和一个角度。
例如:如果我偏移45.12345
,{新坐标是什么,{ {1}}沿着承受104度的22公里?
谢谢
答案 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