2009-12-27 75 views
1

我正在嘗試開發一個應用程序,它使用iPhone的GPS和指南針來指向特定位置的某種指針(如指南針始終指向北)。
該位置是固定的,我總是需要指針指向該特定位置,而不管用戶位於何處。
我有這個位置的緯度/經度座標,但不知道如何使用指南針和GPS指向那個位置......任何幫助將不勝感激。iPhone SDK指向特定位置

Netanel

+0

嗨。你能解決這個問題嗎?請讓我知道你是否是。謝謝。 – Animesh 2010-10-07 21:37:50

回答

1

假設您有當前點的經緯度和目標點。我們稱目的地「Q」和當前點「P」。

首先,計算P和Q之間的緯度和經度的距離(增量):

dx = q.lat - p.lat 
dy = q.lon - p.lon 

然後計算用戶需要以從P.達到Q可行進的角度這僅僅是基本三角形幾何形狀:

float angleRadians = atan2(dy,dx); 

接下來,我們希望將該角度與iPhone指南針提供的當前角度進行比較。您希望箭頭的標題與用戶的當前標題相關,以便應用程序顯示「在當前標題左側打開10º」,而不是「從北向轉動56º」。這可以這樣做:

float relativeRadians = angleRadians - currentHeadingRadians 

這樣的事情應該這樣做!這是一些沉重的僞代碼,但我認爲這是基本的想法。希望有所幫助!

+0

雖然這個解決方案沒有考慮到地球是地球,但它正是我短距離應用所需要的。好答案。 – Accatyyc 2011-04-26 12:38:29

0

上面的答案假設了一個平坦的地球,它適用於很小的距離,但對於較長的距離可能是不可接受的,就像你想製作一個指向麥加的祈禱指南針一樣。

+0

這正是我想要的,但在我的情況下,麥加,但耶路撒冷:)你有任何指針? – lnetanel 2011-03-31 15:35:25