首页 > 编程知识 正文

mysql计算经纬度之间的距离,mysql 经纬度距离排序

时间:2023-05-03 21:54:21 阅读:211230 作者:2696

根据经纬度计算距离

      /**      * 根据两点间经纬度坐标,计算两点间距离,单位:千米 
     * @param lng1      * @param lat1      * @param lng2   * @param lat2
     */  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;  

 

sql   查询

 

SELECT      es_name,      es_lon,      es_lat,      ROUND(          6378.138 * 2 * ASIN(              SQRT(                  POW(                      SIN(                          (                              30.611842 * PI() / 180 - es_lat * PI() / 180                          ) / 2                      ),                      2                  ) + COS(30.611842 * PI() / 180) * COS(es_lat * PI() / 180) * POW(                      SIN(                          (                              104.074666 * PI() / 180 - es_lon * PI() / 180                          ) / 2                      ),                      2                  )              )          ) * 1000      ) AS distance_um  FROM      c_ershuai  ORDER BY      distance_um ASC  

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。