Php 与方向KML线性化
我有一个带有点(坐标)和标题(方向/方位)的数据库。我想在kml中创建指向标题方向的饼状扇区(线性化)。有没有人对如何使用php构建这个有什么建议?好的,php不是我的强项。下面是伪代码,它可能会帮助您(*) 在半径为r的球体上,在指定的方位角和范围内计算大圆上的点。φ、λ、φ0、λ0和AZ是以弧度表示的角度,RNG是与r具有相同单位的距离Php 与方向KML线性化,php,kml,Php,Kml,我有一个带有点(坐标)和标题(方向/方位)的数据库。我想在kml中创建指向标题方向的饼状扇区(线性化)。有没有人对如何使用php构建这个有什么建议?好的,php不是我的强项。下面是伪代码,它可能会帮助您(*) 在半径为r的球体上,在指定的方位角和范围内计算大圆上的点。φ、λ、φ0、λ0和AZ是以弧度表示的角度,RNG是与r具有相同单位的距离 输入:phi0、lambda0、az、rng、r 输出:φ,λ rng=rng/r;//将范围转换为球体上的角度(以弧度为单位)。 ε=1.7453e-07
输入:phi0、lambda0、az、rng、r
输出:φ,λ
rng=rng/r;//将范围转换为球体上的角度(以弧度为单位)。
ε=1.7453e-07;//设定公差
if(phi0>=pi/2-epsilon)//从北极开始
az=pi;
如果(phi0),请指定“饼状扇区”?一个简单的草图就可以了。剩下的是简单的几何图形…我已经上传了一个手动创建的饼状形状。所有的开口角度都是常量/预设的?开口角度取决于点的标题(方向/方位)
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) );