LinearRing与方向KML

时间:2012-12-03 14:59:06

标签: php kml

我有一个包含点(坐标)和标题(方向/方位角)的数据库。我想创建以kml为标题的饼形扇形(LinearRing)。任何人有任何关于如何使用PHP构建这个的建议吗?

1 个答案:

答案 0 :(得分: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