微信如何根据经纬度坐标查询具体地理位置
好多人会问为什么微信高级接口获取的坐标信息位置不准,主要原因不是微信获取的不准,而是微信获取的是gps坐标,如果你直接用百度或google的api去解析的话肯定会出现误差的。
首先你需要吧gps位置转换成google或者百度的坐标,然后在通过转换后的坐标去获取准确的地理位置。
方法一:gps转换成google或者百度坐标,转换gps的接口 http://map.yanue.net/gps.html
方法二:gps转换成百度坐标
function getgps(
l
a
t
s
,
lats,
lats,lngs, $gps=false, $google=false)//gpg 转百度坐标
{
l
a
t
=
lat=
lat=lats;
l
n
g
=
lng=
lng=lngs;
if($gps)
KaTeX parse error: Expected 'EOF', got '&' at position 70: …/convert?from=0&̲to=4&x=lng&y=
l
a
t
"
)
;
e
l
s
e
i
f
(
lat"); else if(
lat");elseif(google)
KaTeX parse error: Expected 'EOF', got '&' at position 70: …/convert?from=2&̲to=4&x=lng&y=
l
a
t
"
)
;
e
l
s
e
r
e
t
u
r
n
a
r
r
a
y
(
lat"); else return array(
lat");elsereturnarray(lat,$lng);
a
r
r
=
(
a
r
r
a
y
)
j
s
o
n
d
e
c
o
d
e
(
arr=(array)json_decode(
arr=(array)jsondecode(c);
if(!$arr[‘error’])
{
l
a
t
=
b
a
s
e
6
4
d
e
c
o
d
e
(
lat=base64_decode(
lat=base64decode(arr[‘y’]);
l
n
g
=
b
a
s
e
6
4
d
e
c
o
d
e
(
lng=base64_decode(
lng=base64decode(arr[‘x’]);
}
return array(
l
a
t
,
lat,
lat,lng);
}
下面是通过百度坐标获取地理位置信息
返回josn格式的:
http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=json&pois=1
返回xml格式的:
http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1