2010-01-05 3 views
2

나는 위도와 경도가있는 위치를 가지고 있으며 그 위치로부터 x 미터 떨어진 위치에 d 각도로 새 위치를 가져 오려고합니다. 이것은 Location.distanceBetween()의 반대 일 것입니다. 이를 수행 할 Android API가 있습니까? 나는 그러한 기능을 스스로 프로그램 할 수 있다는 것을 알고 있지만 이미 API가 있는지 궁금하다.Reverse Location.distanceBetween()

+0

, 당신은 더 사용할 수 있습니다 여기 –

+0

r 30 포인트, 로마, 그리고 당신은 스스로 다시 질문을 할 수 있습니다! ;) –

+0

그것은 그렇게 보이지 않습니다. – CaseyB

답변

0

현재이 기능을 구현하십시오. 그러나이 기능이 어느 시점에 나타나기를 기대하므로 코드를 작성하십시오. 자신 만의 함수를 만들고 몇 가지 단위 테스트를 추가하십시오. 이 기능에 향후

는 다음을 추가 :

def myFunc(args): 
    res = # compute stuff 
    #if(debug): 
    res2 = # make api call 
    assert(res = res2) 
    return res 

그리고 나중에 시간 :

def myFunc(args): 
    return # make api call 

그리고 약간의 시간 후에 완전히 기능을 제거합니다.

1

이것은 "최초 측지선"(또는 때때로 "주요 측지학") 문제로, 직접 구현해야하는 경우 Google에서 알고리즘을 찾는 데 도움이 될 것입니다.

3

여기에는 몇 가지 수식과 샘플 코드 (JavaScript)가 있습니다. Movable Type Scripts. '출발점에서 주어진 거리와 방향을 가진 대상 점'을 찾으십시오. brng는 각도 방위이고, 거리가

var lat2 = Math.asin(Math.sin(lat1)*Math.cos(d/R) + 
         Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng)); 
var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
          Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2)); 
상기 코드에서

, dR는 지구 반지름이다

여기 사이트에서 자바 스크립트의 발췌이다.

Java로 이식하는 것은 쉽지 않습니다.

SphericalUtil.computeOffsetOrigin(loc1, dist, angle); 

그것은 또한 distanceBetween 기능이 있습니다 :

SphericalUtil.computeDistanceBetween(...); 

해방 : 참고로

SphericalUtil

+0

지구가 평평하다고 가정합니다. –

+0

나는 그렇게 생각하지 않지만이 방법은 정확하지 않다. 3D 영역에서 다음을 시도해 볼 수 있습니다. http://earth-api-utility-library.googlecode.com/svn/trunk/extensions/examples/destination.html (Google 어스 웹 플러그인 필요) –

+0

여기에는 구형 지구 (그것이 당신이'R'을 필요로하는 이유입니다.), 그러나 당신이 여행하는 거리에 비례하는 오차가 있습니다. 이 오류의 절대 값은 큰 거리에서 커질 수 있으므로 큰 값에 대해서는 문제가있는 것입니다. –

0

는 그 반대입니다 미래에 '지형 공간'과 같은 태그 :-)
관련 문제