最新消息: 新版网站上线了!!!

mysql算出经纬度的距离

创建函数
  1. DROP FUNCTION IF EXISTS GeoDistDiff; 
  2.  
  3. DELIMITER | 
  4. CREATE FUNCTION GeoDistDiff( type ENUM('mi''km'), lat1 DECIMAL(10,7), lon1 DECIMAL(10,7), lat2 DECIMAL(10,7), lon2 DECIMAL(10,7) ) RETURNS DECIMAL(10,7) 
  5. BEGIN 
  6.   RETURN ( IF(type = 'km', 6371, 3959) * acos( cos( radians(lat2) ) * cos( radians( lat1 ) ) * cos( radians( lon1 ) - radians(lon2) ) + sin( radians(lat2) ) * sin( radians( lat1 ) ) ) ); 
  7. END
  8.  
  9. DELIMITER ; 

使用方法

 

  1. SELECT  
  2.     GeoDistDiff('km', 50.459634, -3.526109, 50.459408, -3.524457) as distance_km, 
  3.     GeoDistDiff('mi', 50.459634, -3.526109, 50.459408, -3.524457) as distance_mi; 
  4.  
  5. +---------------------+---------------------+ 
  6. | distance_km         | distance_mi         | 
  7. +---------------------+---------------------+ 
  8. | 0.11959195137023926 | 0.07431557774543762 | 
  9. +---------------------+---------------------+ 
  10. 1 row in set (0.00 sec) 

 

.....

转载请注明:谷谷点程序 » mysql算出经纬度的距离