一、今天做手机签到部分,用到计算两个经纬度之间距离需求,一开始是写在代码中的(这些网上都有的,),写完之后觉得在数据库中写一个函数调用更直观、易于修改、代码更精简。于是乎,开动...
二、计算公式网上都有的,这里简答贴一下
其中
- R为地球半径,可取平均值 6371km;
- φ1, φ2 表示两点的纬度;
- Δλ 表示两点经度的差值。
三、不多说了,直接上成品
CREATE DEFINER=`root`@`localhost` FUNCTION `_fnGetDistance`(lon1 double,lat1 double,lon2 double,lat2 double) RETURNS varchar(200) CHARSET utf8
BEGIN
-- 传入两个经纬度,算出距离
declare vLon1,vLat1,vLon2,vLat2,distance,vShortLon,vShortLat double;
declare vRlt doub