簡體   English   中英

通過添加度量距離來獲取新的GPS坐標

[英]Getting new GPS coordinates by adding metric distances

我一直在嘗試在Java中找到代碼示例,我可以在其中添加到特定坐標點的度量距離。

例如,通過向Point A的緯度增加2公里,並向Point B的經度減去2公里,我想獲得一個位於A點西北的新坐標點(B點)。

那里有這樣一個功能的樣本源代碼嗎?

如果您不需要高精度且距離很小,您可能會認為地球是一個半徑約為R = 6370 km的球體。 以弧度表示的緯度差異就是dNorth / R,經度差是dEast / R / cos(lat)。

為了獲得更高的精度,您必須考慮到地球的形狀更像橢圓體。

我想是的,你可以使用Great Circle算法來做到這一點。

在具有半徑R的球體的表面上的兩個給定點P1 =(lat1,lon1)和P2 =(lat2,lon2)之間的最短距離(測地線)是大圓距離。 它可以使用以下公式計算:

dist = arccos(sin(lat1) · sin(lat2) + cos(lat1) · cos(lat2) · cos(lon1 - lon2)) · R (1)

例如,自由女神像在(40.6892°,-74.0444°)=(0.7102 rad,-1.2923 rad)與艾菲爾鐵塔之間的距離(48.8583°,2.2945°)=(0.8527 rad,0.0400 rad) - 假設半徑為6371 km的地球圖的球面近似 - 是:

dist = arccos(sin(0.7102) · sin(0.8527) + cos(0.7102) · cos(0.8527) · cos(-1.2923 - 0.0400)) · 6371 km
  = 5837 km 

我在探索時發現的另一個例子是::

例:

lat1: 34
lng1: 34

在lat1中加入5km之后,新點應該像new_lat1:34 + 5km new_lng1:34(lng1將保持相同,因為我們只在緯度中添加)

所以你可以分兩步來划分你的概率::

  1. 使用加法計算坐標。

  2. 然后使用步驟1中獲得的減法計算新坐標

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM