代码如下:
SELECT
ROUND(
6378.138 * 2 * ASIN(SQRT(POW(
SIN((纬度 * PI() / 180 - substring_index(maps, ",", - 1) * PI() / 180) / 2),2) +
COS(纬度 * PI() / 180) * COS(substring_index(maps, ",", - 1) * PI() / 180) *
POW(SIN((经度 * PI() / 180 - substring_index(maps, ",", 1) * PI() / 180) / 2),2))
) * 1000
)
FROM list
ORDER BY distance asc
问题一:上面代码里的经度和纬度是获取用户当前位置的经纬度,我在外面写了个百度提供的接口通过IP地址获取经纬度,分出来两个变量一个是$lat一个是$lng,请问我该如何把这两个变量替换上面代码里的经度和纬度呢?
问题二:还有就是我通过下面代码获取用户IP
function getIP(){
global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else $ip = "Unknow";
return $ip;
}
$content = file_get_contents("http://api.map.baidu.com/location/ip?ak=akid&ip=IP地址
&coor=bd09ll");
我应该怎么把getIP()
这个方法写在上面IP地址
的位置呢?让它能成功解析IP地址呢?非常感谢!~
Cats萌萌
HUWWW