2012-11-18 3 views
1

지금 지난 24 시간 동안이 문제를 해결하기 위해 노력했습니다를 ... 제목 : (컴퓨팅은 경도, 위도, 속도에서 조정하고 여기에 <p></p>는 가설이다


현재 경도) 진수 형식 : 소수점 형식 53.3205556

현재 위도() : 1,400km

012 : -1.7297223

거리 km를 여행 3,516,

도에서 제목 : 45 °


내가 1,400km 후 소수의 새로운 좌표를 계산하고 싶습니다. 여기 내 코드가 있습니다 (PHP에서).

function calc_position($latitude, $longitude, $distance, $heading){ 

    $r = 6378; 
    // Earth circonference 
    // Convert heading in degres to radians 
    $bearing = deg2rad($heading); 

    // Compute new latitude and longitude 
    $latitude2 = asin((sin($latitude) * cos($distance/$r)) + (cos($latitude) * sin($distance/$r) * cos($bearing))); 
    $longitude2 = $longitude + atan2(sin($bearing)*sin($distance/$r)*cos($latitude), cos($distance/$r)-(sin($latitude)*sin($latitude2))); 

    return (object) array(
     'latitude' => $latitude2, 
     'longitude' => $longitude2 
    ); 
} 

불행히도 새로운 위도와 위도에 대한 결과는 잘못되었습니다 (지도에 일관성이 표시되지 않음). 나는이 수식을 시도하기 위해 철저히 a tutorial HERE을 따라 갔지만이 웹 사이트에도 불구하고 해결책을 찾을 수 없습니다.

+0

45 °가 정의 된 축/평면을 조금 더 설명해야합니다. – phil13131

+0

완료! 이것은 결정적인 정보라고 생각하지 않습니다. –

+0

설명을 수정해야합니다. 지정된 좌표에 있고 북동쪽 인 45 °로 여행하는 경우 각도는 적도 또는 약 약으로 정의됩니다. 자기 남쪽 (북쪽에있는)쪽으로. – phil13131

답변

1

이 함수 외부에서 수행 한 경우가 아니면 처음 Lat/long을 라디안으로 변환하고 수식의 결과를 다시 각도로 변환해야합니다.

0

메모리가 몇 년 전부터 제공 되었다면 WGS84 좌표를 사용한다고 가정 할 때 메모리를 해결하려면 haversine formula이라는 것이 필요합니다.

+0

예, 이것은 내 게시물에서 준 링크에 언급되어 있습니다. 도와주지 않았어. 나는 수학 전문가는 아니지만 내 수식이 이미 haversine forumla (2 점 사이의 컴퓨팅 거리)에서 변형 된 것이라고 확신합니다. –

+0

투표를 할 이유가 없습니다. – hd1

+0

당신이 옳다는 것은 실수입니다 ... 이제는 바로 잡았습니다. 그것은 실제로 심지어 Haversine 공식이 다른 사람들을 도울 수있는 원인을 투표로 받아 들일 만합니다. –