2012-12-03 4 views
0

포인트 (좌표)와 제목 (방향/방위각)이있는 데이터베이스가 있습니다. kml의 제목 방향을 가리키는 원형 모양의 섹터 (LinearRing)를 만들고 싶습니다. 누구든지 PHP를 사용하여 빌드하는 방법에 대한 제안이 있습니까?방향 KML을 사용한 선형 링

+0

"원형 모양의 섹터"를 지정해주십시오. 이것이 어떻게 보일 것인가에 대한 간단한 스케치는 좋을 것입니다. 나머지는 간단한 형상입니다. –

+0

수동으로 만든 파이 모양을 업로드했습니다. https://docs.google.com/open?id=0B0rMch-nfpzmcE8taU9pb0xJQ00 –

+0

열기 각도가 모두 const/pre-set입니까? –

답변

0

좋아, PHP는 내 힘이 아니야. 다음은 의사 코드로, (*) 도움이 될 수 있습니다.

"반경이 r 인 구의 경우 지정된 방위각과 범위에서 큰 원의 점을 계산합니다 .PHI, LAMBDA, PHI0, LAMBDA0 및 AZ는 라디안 단위의 각도이고 RNG는 R과 동일한 단위를 갖는 거리입니다 . "

INPUT: phi0, lambda0, az, rng, r 
OUTPUT: phi,lambda 

rng = rng/r; // Convert the range to an angle on the sphere (in radians). 

epsilon = 1.7453e-07; // Set tolerance 
if(phi0 >= pi/2 - epsilon) // starting at north pole 
    az = pi; 
if(phi0 <= epsilon - pi/2) // starting at south pole 
    az = 0; 

// Calculate coordinates of great circle end point using spherical trig. 
phi = asin(sin(phi0) * cos(rng) + cos(phi0) * sin(rng) * cos(az)); 

lambda = lambda0 + atan2(sin(rng) * sin(az) , cos(phi0) * cos(rng) - sin(phi0) * sin(rng) * cos(az)); 

phi0 lambda0은 초기 좌표와 AZ 당신의 제목이다. az +/- 파이의 원 세그먼트를 형성하는 점을 얻기 위해 특정 범위. 나머지는 솔직해야합니다.

(*) 출처 : http://mind.cog.jhu.edu/courses/680/octave/Installers/Octave/Octave.OSX10.6/Applications/MATLAB_R2009b.app/toolbox/map/map/private/greatcirclefwd.m

관련 문제