365体育备用网址报道14.4.2猎取用户坐标及地址_365体育备用网址官网资讯

使用JS SDK猎取用户地理地位坐标的代码如下:

 1 <?PHP
 2 require_once('wxjssdk.class.php');
 3 $weixin = new class_weixin();
 4 $signPackage = $weixin->GetSignPackage();
 5 ?>
 6 <!DOCTYPE HTML>
 7 <html>
 8 <head>
 9     <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
10     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0, user-scalable=no" />
11     <meta name="format-detection" content="telephone=no" />
12     <title>地位</title>
13     <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
14     <link rel="stylesheet" href="http://demo.open.weixin.qq.com/jssdk/CSS/style.css">
15 </head>
16 <body ontouchstart="">
17 </body>
18 <script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
19 <script>
20     wx.config({
21         debug: false,
22         appId: '<?php echo $signPackage["appId"];?>',
23         timestamp: <?php echo $signPackage["timestamp"];?>,
24         nonceStr: '<?php echo $signPackage["nonceStr"];?>',
25         signature: '<?php echo $signPackage["signature"];?>',
26         jsApiList: [
27             'checkJsApi',
28             'openLocation',
29             'getLocation',
30           ]
31     });
32 
33     wx.ready(function () {
34         
35         //主动执行的
36         wx.checkJsApi({
37             jsApiList: [
38                 'getLocation',
39             ],
40             success: function (res) {
41             }
42         });
43     
44         //如果不撑腰则不会执行
45         wx.getLocation({
46             success: function (res) {
47                 alert(JSON.stringify(res));
48           },
49           cancel: function (res) {
50                 alert('用户拒绝授权猎取地理地位');
51           }
52         });
53       
54     });
55 
56     wx.error(function (res) {
57         alert(res.errMsg);
58     });
59  </script>
60 </html>

获得坐标时的效果图如图14-3所示:

图14-3猎取用户地理地位
获得坐标之后,一项重要的工作是将坐标转为地址。
我们先了解一下坐标体系的相关知识,当前国内外主要有以下几种不同的坐标体系。
? 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”。
在微信JS SDK中,采纳的是WGS-84坐标系统。当我们进行逆地址解析的时刻,需要注意选择正确的坐标类型。
百度地图Geocoding API服务地址接口为:
http://api.map.baidu.com/geocoder/v2/
该接口的参数说明如表14-2所示:

表14-2 百度地图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
    }
}

我们能够在微信中接收到用户地理地位事情的时刻,把用户的坐标转换成国内的省市区地址,这样就能实时收集到很多用户的实际地位。

------分隔线----------------------------

颁布评论 (81人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁颁布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换ca88亚洲城娱乐客户端 下载安装
最新评论