您正在使用 IPV4 [3.236.219.157] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]保护绿色环境,构建和谐社会      

【腾讯云】 爆款2核2G3M云服务器首年 61元,叠加红包再享折上折      
[公益] 地球是我家,绿化靠大家      
2024年 清明节 006
2024年 劳动节 033
2025年 元 旦 278
2025年 春 节 306
 
您现在的位置:首页 >> PHP >> 内容
本类新增
本类热门
php两点地理坐标距离的计算方法
内容摘要: ?php/*** 计算两点地理坐标之间的距离* @param Decimal $longitude1 起点经度* @param Decimal $latitude1 起点纬度* @param Decimal $longitude2 终点经度* @param Decimal $latitude2 终点纬度* @param Int $unit单位 1:米 2:公......
<?php

/**

* 计算两点地理坐标之间的距离

* @param Decimal $longitude1 起点经度

* @param Decimal $latitude1 起点纬度

* @param Decimal $longitude2 终点经度

* @param Decimal $latitude2 终点纬度

* @param Int $unit 单位 1:米 2:公里

* @param Int $decimal 精度 保留小数位数

* @return Decimal

*/

function getDistance($longitude1, $latitude1, $longitude2, $latitude2, $unit=2, $decimal=2){


$EARTH_RADIUS = 6370.996; // 地球半径系数

$PI = 3.1415926;


$radLat1 = $latitude1 * $PI / 180.0;

$radLat2 = $latitude2 * $PI / 180.0;


$radLng1 = $longitude1 * $PI / 180.0;

$radLng2 = $longitude2 * $PI /180.0;


$a = $radLat1 - $radLat2;

$b = $radLng1 - $radLng2;


$distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));

$distance = $distance * $EARTH_RADIUS * 1000;


if($unit==2){

$distance = $distance / 1000;

}


return round($distance, $decimal);


}


// 起点坐标

$longitude1 = 113.330405;

$latitude1 = 23.147255;


// 终点坐标

$longitude2 = 113.314271;

$latitude2 = 23.1323;


$distance = getDistance($longitude1, $latitude1, $longitude2, $latitude2, 1);

echo $distance.'m'; // 2342.38m


$distance = getDistance($longitude1, $latitude1, $longitude2, $latitude2, 2);

echo $distance.'km'; // 2.34km


?>

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:php解压缩zip和rar压缩包文件的方法

 

下一篇:PHP中获取文件扩展名的N种方法小结

发布日期:2021/6/15
手机扫二维码直达本页
发布时间:12:34:56
点  击:3
录  入:壹家怡园
相关文章
Baidu
YiJiaCMS 7.3.8 build231228(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....