微信如何根据经纬度坐标查询具体地理位置大屏查看

发布于:2015年07月13日 已被阅读

好多人会问为什么微信高级接口获取的坐标信息位置不准,主要原因不是微信获取的不准,而是微信获取的是gps坐标,如果你直接用百度或google的api去解析的话肯定会出现误差的。

首先你需要吧gps位置转换成google或者百度的坐标,然后在通过转换后的坐标去获取准确的地理位置。

方法一:gps转换成google或者百度坐标,转换gps的接口 http://map.yanue.net/gps.html


方法二:gps转换成百度坐标

function getgps($lats,$lngs, $gps=false, $google=false)//gpg 转百度坐标
{
    $lat=$lats;
    $lng=$lngs;
    if($gps)
        $c=file_get_contents("http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=$lng&y=$lat");
    else if($google)
        $c=file_get_contents("http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=$lng&y=$lat");
    else
    return array($lat,$lng);
    $arr=(array)json_decode($c);
    if(!$arr['error'])
    {
        $lat=base64_decode($arr['y']);
        $lng=base64_decode($arr['x']);
    }
    return array($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

下面是google的api获取的地址


Google Geocoding API 

详细地址:http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/




根据坐标查找详细信息,也就是本篇所说的,请看 反向地址解析(地址查询)

请求地址:

http://maps.google.com/maps/api/geocode/json?latlng=31.259241,121.606117&sensor=true


注意坐标 (纬度,经度)不要传反了

经实例测试,发现两个问题 1,读取json很慢;2,返回地址信息是英文【有时页面直接访问是中文,模拟器中是英文】

解决办法:

1,将请求地址:google.com 改为 google.cn

2,在请求地址后边再加一个参数language=zh-CN


最新发布
linux下svn提交忽略某些文件... (119)
使用批处理来批量更新、提交SVN... (116)
linux查看目录文件大小命令 (117)
linux tar打包压缩排除某个... (114)
Linux tar压缩和解压 (116)
SVN子命令add用法浅析 (111)
热门博文
网友FBI探案:马蓉iPad惊人发现... (43320)
优衣库这个广告拍的很真实,反应人性,... (10110)
霍金携手俄罗斯富豪耗资1亿美元寻找外... (4734)
如何才能查看PHP内置函数源代码... (1196)
微信支付开发当前URL未注册的解决方... (514)
《谁为爱情买单》中的经典面试 ... (414)
精华博文
[推荐]Centos7 安装配置 SVN (117)
easyswoole框架安装 (115)
php开启pecl的支持(推荐) (116)
1-10个恋爱表现:男朋友爱你程度到... (119)
女生喜欢你的10个程度,到第六个就可... (121)
Eclipse 没有Server选项... (153)
友情链接
我来忙 (110)