lon1当前用户经度 lat1当前用户纬度,lon2 sql的经度字段 lat sql的纬度字 function distance_sql($lon1,$lat1,$lon2,$lat2) { $sql = "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( ({$lon1}*pi()/180-{$lon2}*pi()/180)/2),2)))*1000) "; return $sql; }
这个是返回sql 语句就是在select 后面的查询语句
比如说
$lon1=113.458100;
$lat1=23.104145
$lon2=数据表经度字段;
$lat2=数据表纬度字段;
$distance_sql=distance_sql($lon1,$lat1,$lon2,$lat2);
select $distance_sql as distance from 表名;
之后返回时distance 地址算出来是距离米