2013-05-28 52 views
1

還沒有編程任何位置服務,所以讓我描述我的問題,你可以告訴我,位置服務是否可以提供幫助。如何使用ios定位服務計算站點的直線?

我有一個移動用戶1(long1,lat1,altitude1)想面對另一個移動用戶2(long2,lat2,altitude2)。

海拔高度是可選的。

我想向用戶1提供反饋: 左/右(< - - >),向上/向下傾斜(^ v),直到設備的頂部指向用戶2。

User2可能在地球上的任何地方。

簡而言之:計算網站的直接線(您可以通過地球看到)在兩個設備之間,然後提供反饋(方向箭頭)將設備放在網站上。

所有的指針表示讚賞。

+0

是那能看見的線?或網站? –

+0

接你;-)視線是正確的拼寫 – KingAndrew

+0

這篇文章展示瞭如何獲得方向(http:// stackoverflow。com/questions/8502795/get-direction-compass-with-two-longitude-latitude-points?rq = 1)任何人都知道如何獲得角度? – KingAndrew

回答

0

iOS和Android都不提供這種功能。在大多數使用案例中,處理確定世界各地旅行的距離時,這並不是一項理想的功能。

但是,您可以使用3D數學來計算此角度和距離。

要做到這一點,首先需要在三維空間中繪製一個球體上的經緯度位置,這個空間的大小與地球的尺寸大致相當(或縮放比例,您有精確的距離尺度)。

你會失去準確性由於以下原因進行這種計算:

  • 因爲地球是不是一個真正的球
  • 通過排除海拔你失去更多的準確性
  • 如果球形尺寸ISN相當於地球的大小(你也可以縮小和推斷)
  • 如果你的距離單位不準確的球體(如果球體縮放)

然後,一旦你有一個球體上的兩個點(三維空間),然後你可以計算出使用畢達哥拉斯定理(兩次)之間的最短距離。

下面是兩個SO鏈接,它們專門涵蓋了3D空間數學計算所需的3D數學知識,現在您已經在3D空間中繪製了緯度/經度。

相關鏈接:

相關問題