-
确定起点(武汉)坐标,地址解析或者坐标拾取,这里演示使用百度的坐标拾取系统
-
确定终点(北京)坐标
-
调用函数,获取武汉到北京的角度(以武汉的左侧纬线为0度线)
echo getJd('114.302378,30.635141','116.399669,39.908958');
//返回经纬度偏移量
function getJd($lnglat1,$lnglat2){
$k1 = explode(',',$lnglat2)[0]-explode(',',$lnglat1)[0]; //经度差
$k2 = explode(',',$lnglat2)[1]-explode(',',$lnglat1)[1]; //纬度差
if( 0 == $k1){ //经度重合
if($k2>0){ //纬度为正
$angle = 90;
}
else if( $k2<0){
$angle = 270;
}
else if( $k2 == 0){
$angle = 0;
}
}else if( 0 == $k2){
if($k1>0){
$angle = 180;
}
else if( $k1<0){
$angle = 0;
}
}else{
$k=$k2/$k1;
if($k2>0){
if($k1>0){
$angle = sprintf ("%.2f",180*atan($k)/M_PI);
$angle = 180 - $angle; //东偏北 $angle 度方向 这里相当于把武汉的左侧的纬线作为0度线,右侧纬线作为180度线
}else if($k1<0){
$angle = sprintf ("%.2f",180*atan(-$k)/M_PI); //西偏北 $angle 度方向
}
}else if($k2<0){
if($k1<0){
$angle = sprintf ("%.2f",180*atan($k)/M_PI);
$angle = 360 - $angle; //西偏南 $angle 度方向
}
else if($k1>0){
$angle = sprintf ("%.2f",180*atan($k)/M_PI);
$angle = 180 - $angle; //东偏南 $angle 度方向
}
}
}
return $angle;
}
-
调用函数,获取合肥到太原的角度(以合肥的左侧纬线为0度线)
-
角度互减取绝对值,结果就是两条线路的夹角
echo abs(66.02-102.49);
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
649494848