컨트롤러"위도

G

Guest

Guest
안녕 모두,
내가 경도와 땅의 두 집합 사이의 거리를 계산해야합니다.내 GPS를 나는 거리를 차량으로 여행을 보여줄 것인 오전 기반 시스템 디자인이 필요합니다.

누군가 날 좀 도와 줄래?내가 그물을 그 Haversine 수식을 좋은 볼 있지만 내 PIC16F877A 컨트롤러하는 HT - PIC는 컴파일러를 사용하여 포팅 문제입니다.

모든 제안 / 조언을 환영합니다.

미리 감사드립니다.

 
당신, Geodetic 거리를 원하는 가정이 일상적인 작품을 잘 좋은 속도 :코드 :라디안 / / 위도 / 경도 입력 미터, 다양한 출력

지구상의 두 지점 사이의 거리 / *이 버전의

수식 부록 Sodano, EM의 주어를 기반으로합니다

"일반적인 반전이 아닌 직접 Geodetic의 반복적인 솔루션을

문제는 "게시판 Geodesique, 집 75 (1965년 3월 년), PP 69-84.

* /

/ / 상수 Sodano의 방법으로 사용

const = 6378137.0 번;의 / / 4 강 주요 축 ellipsoid

= 298.257223563 번 RECF const; / / (1 / F) 납작하게의 상호

const를 두 번 F = (1.0 / RECF); / / f를 납작하게

const를 두 번 ES = ((2.0 - 파) * F); / / 첫 번째 기행 제곱

const 더블 B = sqrt (* * (1.0 - ES)); / / 세미 주요 축

const를 두 번 F2를 = F * F;

const를 두 번 F2_2 = 0.5 * F2를;

const를 두 번 F_1 = 1.0 - 파;정적 무효

ComputeRangeSodano (pt1Lat 두 번, 두 번 pt1Lon,

pt2Lat 두 번, 두 번 pt2Lon,

이중 * 범위)

(

두 번 패 = pt2Lon - pt1Lon;const를 두 번 TESTV = 1.0E - 11;

만약 (팹 (pt1Lat - pt2Lat) "TESTV & & 팹 (패)"TESTV)

(

* 범위 = 0.0;

반환; / / 포인트를 일치

)이중 베타 1 판 = Atan (F_1 * 썬텐 ()) pt1Lat;

이중 Beta2 = Atan (F_1 * 썬텐 ()) pt2Lat;두 번 = 죄악 (베타 1 판) * 죄 (Beta2);

더블 B = 않죠 (베타 1 판) * 않죠 (Beta2);두 번 cos_phi = B를 * 않죠 (패);이중 temp1, temp2;

두 번 sin_phi, 파이;temp1 = 죄악 (패) * 않죠 (Beta2);

temp2 = 죄악 (Beta2) * 않죠 (베타 1 판) - 죄 (베타 1 판) * 않죠 (Beta2) * 않죠 (패);

sin_phi = sqrt (temp1 * temp1 temp2 * temp2);

파이 = atan2 (sin_phi, cos_phi);더블 C = (나 * 죄악 (패)) / sin_phi;난 두 번 = 1.0 - 코 * c는;두 번 csc_phi = 1.0 / sin_phi;

두 번 cot_phi = cos_phi / sin_phi;두 번 cos_phi2 = cos_phi * cos_phi;

두 번 sin_cos_phi = sin_phi * cos_phi;두 번 phi2 = 파이 * 파이;이중 안녕하세요 .. 신동방 =

(1.0 F를 F2) 두 * 파이

* ((F F2) 두 * sin_phi - F2_2 * phi2 * csc_phi)

난 * 0.5 * (- (F F2를) * (파이 sin_cos_phi) F2를 * phi2 * cot_phi)

- * * * F2_2 (sin_phi * cos_phi)

난 * 난 * F2_2 * (0.125 * (파이 sin_cos_phi) - phi2 * cot_phi - 0.25 * sin_cos_phi * cos_phi2)

* 난 * F2_2 * (phi2 * csc_phi sin_phi * cos_phi2);이중 S = 안녕하세요 .. 신동방 * B 조;* 범위 = S;

)

 

Welcome to EDABoard.com

Sponsor

Back
Top