获取当前位置三公里内最大、最小经纬度
    /**
     * 查一定范围内的经纬度值
     * 传入值:纬度  经度  查半径(m)
     * 返回值:最小纬度、经度,最大纬度、经度 
     */
    public function getAround($lat,$lon,$raidus)
   
       $PI = 3.14159265;                // 圆周率
                  $EARTH_RADIUS = 6378137;        // 地球半径
    $RAD = Math.PI / 180.0;          // 弧度
      
        $latitude = $lat; 
        $longitude = $lon; 
         
        $degree = (24901*1609)/360.0; 
        $raidusMile = $raidus; 
         
        $dpmLat = 1/$degree; 
        $radiusLat = $dpmLat*$raidusMile; 
        $minLat = $latitude - $radiusLat; 
        $maxLat = $latitude + $radiusLat; 
         
        $mpdLng = $degree*cos($latitude * ($PI/180)); 
        $dpmLng = 1 / $mpdLng; 
        $radiusLng = $dpmLng*$raidusMile; 
        $minLng = $longitude - $radiusLng; 
        $maxLng = $longitude + $radiusLng; 
        $result['minwei']=$minLat;
        $result['minjing']=$minLng;
        $result['maxwei']=$maxLat;
        $result['maxjing']=$maxLng;
        return $result;
    }
通过经纬度取得实际地址 
百度api
         /**
     * 通过经纬度取得实际地址
     */
    public function getRealyAddress($wei,$jing)
php实例计算器教学视频    {
        $place_url='api.map.baidu/geocoder?output=json&location='.$wei.','.$jing.'&key=ccea36ece20a7a6eb0666bc726957e85';
        $json_place=file_get_contents($place_url);
        $place_arr=json_decode($json_place,true);
        $address=$place_arr['result']['formatted_address'];
        return $address;
    }
获取两个经纬度坐标的距离  和  直角距离
function rad($d) 
    return $d * 3.1415926535898 / 180.0; 
// 本函数为获取两坐标之间的距离
// a纬度 a经度 b纬度 b经度
function GetDistance($lat1, $lng1, $lat2, $lng2) 
    $EARTH_RADIUS = 6378.137; 
    $radLat1 = rad($lat1); 
   $radLat2 = rad($lat2); 
   $a = $radLat1 - $radLat2; 
   $b = rad($lng1) - rad($lng2); 
   $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2))); 
   $s = $s * $EARTH_RADIUS ;
   $s = round($s * 10000) / 10000;
   return $s; 
// 本函数为获取两左边之间的直角距离
function GetDestinationDistance($lat1, $lng1, $lat2, $lng2)
    {
        $d = GetDistance($lng1, $lat1, $lng1, $lat2) + GetDistance($lng1, $lat1, $lng2, $lat1);
        return $d;
    }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。