一种简单的经纬度算法

公式如下,单位米:

第一点经纬度:lng1 lat1

第二点经纬度:lng2 lat2

round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)* pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)  
 
  

例如:

用户提供的经纬度:lngUser latUser

SELECT id,lng,lat, ROUND(6378.138*2*ASIN(SQRT(POW(SIN((latUser*PI()/180-lat*PI()/180)/2),2)+COS(latUser*PI()/180)*COS(lat*PI()/180)*POW(SIN((lngUser*PI()/180-lng*PI()/180)/2),2)))*1000) AS distance FROM car_info ORDER BY distance DESC 

未经允许不得转载:前后端 » 一种简单的经纬度算法

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址