计算两个经纬度地点之间的距离
/**
* 求两个已知经纬度之间的距离,单位为米
*
* @param lng1 $ ,lng2 经度
* @param lat1 $ ,lat2 纬度
* @return float 距离,单位米
* @author www.Alixixi.com
*/
function getdistance($lng1, $lat1, $lng2, $lat2) {
// 将角度转为狐度
$radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
$radLat2 = deg2rad($lat2);
$radLng1 = deg2rad($lng1);
$radLng2 = deg2rad($lng2);
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
return $s;
}
根据经纬度获取指定方圆距离的四个点
/**
* 获取指定方圆距离的四个点
* param lng float 经度
* param lat float 纬度
* param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为单位米
* return array 正方形的四个点的经纬度坐标
*/
function getSquarePoint($lng, $lat,$distance)
{
$PI = 3.14159265;
$longitude = $lng;
$latitude = $lat;
$degree = (24901*1609