您现在的地位: 365体育备用网址 > bet365体育在线, > 微信公众平台开拓 > 6.3.2转换坐标到地址

6.3.2转换坐标到地址_365体育备用网址官网资讯

您现在的地位: 365体育备用网址 > bet365体育在线, > 微信公众平台开拓 > 6.3.2转换坐标到地址

6.3.2转换坐标到地址

此节有 145 人学习过     参与评论

我们先了解一下坐标体系的相关知识,当前国内外主要有以下几种不同的坐标体系。
WGS-84坐标系(World Geodetic System一1984 Coordinate System)是一种国际上采纳的地心坐标系。坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH(国际时间服务机构)1984.O定义的协议地球极(CTP)方向,X轴指向BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系统。该坐标系统俗称为“地球坐标系”,即当前GPS所采纳的坐标系统。
GCJ-02是由365体育备用网址国家测绘局制订的地理信息系统的坐标系统。它是一种对经纬度数据的加密算法,即加入随机的偏差。国内出版的各种地图系统(包括电子形式),必须至少采纳GCJ-02对地理地位进行首次加密。该坐标系统也俗称为“火星坐标系”。
百度坐标系统是百度大众 手机版下载的地图坐标系统,它在国家测绘局的GCJ-02的基础上,进行了BD-09二次加密,更加保护个人隐私。同时,百度地图撑腰将WGS-84坐标和GCJ-02坐标转换成百度坐标。
当微信公众账号猎取到用户地理地位坐标以后,需要将坐标转换成用户的真实所在地(省、市、区等信息),以便于更直观的了解以及进行用户数据分析。百度地图Geocoding API提供逆地址解析功能,即由经纬度信息得到地址信息,使用这一功能能够获得微信用户具体所在地。该接口撑腰上述三种坐标系统的坐标,在不同的坐标系统中,经纬度解析后的地址有肯定的偏差。例如:“lat:22.539968,lng:113.954980”在百度坐标下解析的结果是“广东省深圳市南山区高新南七道2号”,而在GCJ-02坐标系下解析的结果为“广东省深圳市南山区深南大道9789-2”。
在微信中,安卓版和苹果版上使用的地图为腾讯地图,采纳GCJ-02坐标系统。
百度地图Geocoding API服务地址接口为:
http://api.map.baidu.com/geocoder/v2/
该接口的参数说明如表6-10所示:

表6-10百度地图Geocoding API参数说明
该接口的一个要求示例如下:
http://api.map.baidu.com/geocoder/v2/?ak=B944e1fce373e33ea4627f95f54f2ef9&location=22.539968,113.954980&output=json&coordtype=gcj02ll
上述接口执行后,返回结果如下:

{
    "status": 0,
    "result": {
        "location": {
            "lng": 113.96151089462,
            "lat": 22.54572267759
        },
        "formatted_address": "广东省深圳市南山区深南大道9789-2",
        "business": "科技园,大冲,深圳湾",
        "addressComponent": {
            "city": "深圳市",
            "district": "南山区",
            "province": "广东省",
            "street": "深南大道",
            "street_number": "9789-2"
        },
        "cityCode": 340
    }
}

在微信中接收到用户地理地位事情的时刻,把用户的坐标转换成国内的省市区地址,核心代码如下:

1 private function receiveEvent($object)
 2 {
 3     $content = "";
 4     switch ($object->Event)
 5     {
 6     case "subscribe":
 7         $content = "欢迎关切";
 8         break;
 9     case "unsubscribe":
10         $content = "取消关切";
11         break;
12     case "LOCATION":
13         $url = "http://api.map.baidu.com/geocoder/v2/?ak=B944e1fce373e33ea4627f95f54f2ef9&location=$object->Latitude,$object->Longitude&output=json&coordtype=gcj02ll";
14         $output = file_get_contents($url);
15         $address = json_decode($output, true);
16         $content = "地位 ".$address["result"]["addressComponent"]["province"]." ".$address["result"]["addressComponent"]["city"]." ".$address["result"]["addressComponent"]["district"]." ".$address["result"]["addressComponent"]["street"];
17         break;
18     default:
19         break;
20     }
21     $result = $this->transmitText($object, $content);
22     return $result;
23 }

这样,我们就能实时收集到很多用户的实际地位。把这些信息保留到数据库,我们还能够对用户做大数据分析。

如对本文有疑问,请提交到交流同乐吧娱乐官网,广大热心网友会为你解答!! 点击进入同乐吧娱乐官网


公布评论 (145人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换龙虎国际娱乐168下载
最新评论
------分隔线----------------------------
微信公众平台开拓目录
条评论
Sitemap