0

我有一个包含点(坐标)和航向(方向/方位角)的数据库。我想在 kml 中创建指向标题方向的饼形扇区(LinearRing)。有人对如何使用 php 构建它有任何建议吗?

4

1 回答 1

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) );

phi0lambda0是您的初始坐标,而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

于 2012-12-05T19:37:19.497 回答