鹰击长空yuetao.org

8月 6

根据经纬度的距离排序,计算坐标点之间的距离 不指定

yuetao , 16:37 , php , 评论(0) , 引用(0) , 阅读(11056) , Via 本站原创 | |
PHP 代码复制内容到剪贴板
            
  1. /* 
  2.             
  3. * 获取2个坐标系之间的距离 
  4.             
  5. */  
  6.             
  7. function getDistanceBetweenPointsNew($latitude1$longitude1$latitude2$longitude2) {  
  8.             
  9.   $theta = $longitude1 - $longitude2;  
  10.             
  11.   $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));  
  12.             
  13.   $miles = acos($miles);  
  14.             
  15.   $miles = rad2deg($miles);  
  16.             
  17.   $miles = $miles * 60 * 1.1515;  
  18.             
  19.   $feet = $miles * 5280;  
  20.             
  21.   $yards = $feet / 3;  
  22.             
  23.   $kilometers = $miles * 1.609344;  
  24.             
  25.   $meters = $kilometers * 1000;  
  26.             
  27.   return compact('miles','feet','yards','kilometers','meters');   
  28.             
  29. }  

 

SQL 代码复制内容到剪贴板
            
  1. /*  
  2.             
  3. * 根据商家的经纬度坐标 和 当前用户的坐标 按照距离进行排序的sql  
  4.             
  5. *  
  6.             
  7. * 用户的经度:140    
  8.             
  9. * 用户的纬度:38  
  10.             
  11. */  
  12.             
  13. select * from (select abs( (lng-38) + (lat-140)) as juli,com,lng,lat from 商家表 where lng>0 and lat >0) as jl order by jl.juli asc  

 

 

 

发表评论

昵称

主页

邮箱

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]