2009-12-27 4 views
1

저는 GPS의 나침반과 iPhone의 나침반을 사용하여 특정 위치 (예 : 북쪽을 항상 가리키는 지점)에 대한 포인터를 가리키는 응용 프로그램을 개발하려고합니다.
위치가 고정되어 있으며 사용자가 어디에 있든 관계없이 항상 특정 위치를 가리키는 포인터가 필요합니다.
이 위치의 위도/경도 좌표는 있지만 나침반과 GPS를 사용하여 어떻게 그 위치를 가리킬 수 있는지 확실하지 않습니다. 어떤 도움도 받으실 수 있습니다.iPhone SDK 특정 위치를 지정하십시오.

Netanel

+0

안녕하세요. 이 문제를 해결할 수 있었습니까? 너라면 나 한테 알려줘. 감사. – Animesh

답변

1

현재 지점과 목적지 지점의 위도와 경도를 가정 해 보겠습니다. 대상 "Q"와 현재 점 "P"를 호출합시다. 이것은 단지 기본 삼각형

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

그런 다음 사용자가 P.에서 Q에 도달하기 위해 이동해야하는 각도를 계산 :

우선, P와 Q 사이의 위도 및 경도의 거리 (델타)을 계산 geometry :

다음은 iPhone의 나침반에서 제공하는 현재 각도와 그 각도를 비교하고자합니다. 화살표의 제목을 사용자의 현재 제목과 관련 시켜서 "북쪽에서 56º 회전"이라고 말하기보다는 "현재 표제의 왼쪽으로 10º 회전"이라고 말합니다. 이렇게하면 다음과 같이 수행 할 수 있습니다.

float relativeRadians = angleRadians - currentHeadingRadians 

그런 식으로해야합니다. 그것은 무거운 가짜 코드이지만, 이것이 기본 아이디어라고 생각합니다. 희망이 도움이됩니다!

+0

이 솔루션은 지구가 지구라는 사실을 고려하지 않지만, 거리가 짧은 신청서에 꼭 필요한 것입니다. 좋은 대답. – Accatyyc

0

위의 대답은 평지를 가정하며, 짧은 거리에서는 좋지만 장거리에서는 허용 될 수 있습니다. 예를 들어 메카를 가리키는기도 나침반을 만들고 싶은 경우입니다.

+0

이것은 정확히 내가 원하는 것이지만 내 경우에는 메카에 예루살렘에 :) 당신은 어떤 포인터가 있습니까? – lnetanel