我是靠谱客的博主 醉熏百褶裙,这篇文章主要介绍如何通过微信获取当前地理位置并将其存到session中,现在分享给大家,希望可以做个参考。

首先,在静态页面中,添加微信的配置文件,通过js获取。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<script type="text/javascript">   wx.config({     debug: false,     appId: '{$signPackage.appId}',     timestamp: '{$signPackage.timestamp}',     nonceStr: '{$signPackage.nonceStr}',     signature: '{$signPackage.signature}',     jsApiList: [       // 所有要调用的 API 都要加到这个列表中       'checkJsApi',       'openLocation',        'getLocation',        'scanQRCode'     ]   });   wx.ready(function () {     $('#scan').click(function(){       wx.scanQRCode({         needResult: 0,       });     });     wx.checkJsApi({        jsApiList: [          'getLocation'       ],       success: function (res) {         if (res.checkResult.getLocation == false)         {           alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');            return;         }       }     });     wx.getLocation({       success: function (res) {          var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90         var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。         var geoconv = 'http://api.map.baidu.com/geoconv/v1/?callback=coordinateTransformation&coords=' + longitude + ',' + latitude + '&from=1&to=5&ak=5BFNbSgnVF5g2O72NpvTDxFm';         var script = document.createElement('script');         script.src = geoconv;         document.head.appendChild(script);        },       cancel: function (res) {         alert('用户拒绝授权获取地理位置');       }      });   });   function coordinateTransformation(data)   {     var LATLNG = data.result[0].y + ',' + data.result[0].x;     var url = 'http://api.map.baidu.com/geocoder/v2/?callback=getCurrentLocation&ak=5BFNbSgnVF5g2O72NpvTDxFm&location=' + LATLNG + '&output=json&pois=1';     var script = document.createElement('script');     script.src = url;     document.head.appendChild(script);    }   function getCurrentLocation(data)   {     if(data.status === 0)      {       var address = data.result.formatted_address,       x = data.result.location.lng,       y = data.result.location.lat,       city = data.result.addressComponent.city,       street = data.result.addressComponent.street || data.result.formatted_address,       reqData = 'street=' + address + '&name=' + street + '&lng=' + x + '&lat=' + y + '&city=' + city;       var url = "{:U('Index/savePosition')}";        $.getJSON(url,{'name':street,'lng':x,'lat': y,'city':city},function(data)        {          if(data.returnCode) { }       });      }    } </script> 其次,在控制器中接收ajax传递的地理坐标,然后保存到session中。 public function savePosition() {    $city = II('get.city','','trim');    $addr = II('get.name','','trim');    $lng = II('get.lng','','trim');    $lat = II('get.lat','','trim');    $myLocation = array(      'city' =>$city,      'addr' =>$addr,      'lng' =>$lng,     'lat' =>$lat,   );   $_SESSION['MyLocation'] = $myLocation;   $data['returnCode'] = 1;      $data['returnInfo'] = '获取位置成功!';      $this->ajaxReturn($data);      return;    }
登录后复制

注:用的是thinkphp框架,II是自定义的方法,获取get或post传递的值,和 I 函数一样。

以上就是如何通过微信获取当前地理位置并将其存到session中的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是醉熏百褶裙最近收集整理的关于如何通过微信获取当前地理位置并将其存到session中的全部内容,更多相关如何通过微信获取当前地理位置并将其存到session中内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部