[微信小程序] 微信小程序獲取用戶定位信息並加載對應城市信息,wx.getLocation,騰訊地圖小程序api,微信小程序經緯度逆解析地理信息

由於須要在小程序加個定位並加載對應城市信息git

然而小程序自帶api目前只能獲取經緯度不能逆解析,雖然本身解析方式,可是同時也要調用地圖,難道用戶每次進小程序還要強行打開地圖選擇地址才定位嗎?多麻煩也不利於用戶體驗ajax

我就很少說什麼了,直接上代碼json

微信小程序獲取用戶定位信息並加載對應城市信息  wx.getLocation  騰訊地圖小程序api  微信小程序經緯度逆解析地理信息小程序

  1  //加載騰訊位置服務js文件(必須)
       var qqmap=require('../../utils/qqmap-wx-jssdk.min.js')

//預加載內容 2 onLoad: function () { 3 4 //調用騰訊地圖sdk 添加騰訊地圖key 5 6 var demo = new qqmap({ 7 key: '*****-*****-*****-*****-SY7PH-SMFTK' 8 }); 9 10 //此聲明最好不要寫在 wx.getLocation方法內,this指代不一樣 11 12 var that = this; 13 wx.getLocation({ 14 type: 'gcj02', //編碼方式, 15 success: function (res) { 16 var latitude = res.latitude // wx.getLocation 獲取當前的地理位置、速度 latitude(維度) longitude(經度)
 17         var longitude = res.longitude
 18         demo.reverseGeocoder({  
//騰訊地圖api 逆解析方法 首先設計經緯度
19 location: { 20 latitude: res.latitude, 21 longitude: res.longitude 22 },
          //逆解析成功回調函數
23 success: function (res) { 24 getApp().globalData.cityname = res.result.address_component.city; //全局變量存放城市 res.result.address_component.city 獲取解析以後地址中的城市 33
          console.log("onLoad");

          //
wx.request 發起網絡請求,相似於ajax
 34             wx.request({
 35               url: 'https://www.xxxxxxxxxx.com/home/index/xcx_index',  //填寫對應服務器地址  36               data: {
 37                 // cityid: getApp().globalData.cityid,     //我這裏須要提交的參數,這裏我是把獲取的城市發給後臺,而後後臺給我對應城市的數據json文件
 38                 cityna: getApp().globalData.cityna,
 39                 district: res.result.address_component.city,
 40               },
 41               header: {
 42                 "Content-Type": "applicatiSon/x-www-form-urlencoded"
 43               },
 44               method: "POST",
 45               success: function (res) {
 46                 console.log(res.data.data);   
              //解析回調函數獲得的json文件並一層一層的解析而後數據綁定到頁面上
47 that.setData({ 48 // 輪播圖圖片 49 imgurls: res.data.data.pics 58 }); 59 getApp().globalData.cityid = res.data.data.datacompany.cityid; 60 // this.data.pic_array_dq2[e.detail.value].name 61 } 62 });
  ·        // 成功後提醒
63 wx.showModal({ 64 title: '定位成功', 65 content: '當前城市:' + getApp().globalData.cityname, 66 }); 67 68 }, 69 fail: function (res) {
          //失敗的回調函數
70 // console.log(res); 71 }, 72 complete: function (res) {
          //完成以後的回調函數,無論是否成功
73 console.log("逆解析狀態碼:"+res.status); //res.status 獲取狀態碼,爲0表明解析成功,可是咱們要考慮失敗的兼容,可能用戶並不肯意贊成獲取地理位置,因此不爲0 的時候也要加載內容給個默認地址 74 if (res.status!=0){ 75 wx.request({ 76 url: 'https://www.cyzs97.com/home/index/xcx_index', 77 data: { 78 // cityid: getApp().globalData.cityid, 79 cityna: getApp().globalData.cityna, 80 district:"", 81 }, 82 header: { 83 "Content-Type": "applicatiSon/x-www-form-urlencoded" 84 }, 85 method: "POST", 86 success: function (res) { 87 console.log(res.data.data); 88 that.setData({ 89 // 輪播圖圖片 90 imgurls: res.data.data.pics, 99 }); 100 getApp().globalData.cityid = res.data.data.datacompany.cityid; 101 // this.data.pic_array_dq2[e.detail.value].name 102 } 103 });
            //提示用戶失敗可開啓定位服務
104 wx.showModal({ 105 title: '定位失敗', 106 content: '定位失敗,未受權獲取當前位置或服務錯誤' , 107 }); 108 } 109 console.log("定位獲取的:" + getApp().globalData.cityname); 110 } 111 }); 112 } 113 }); 114 115 },

 固然最重要的不能忘記,須要配置服務器,只需安全域名設置,須要在微信公衆平臺添加域名地址 https://apis.map.qq.com微信小程序

相關文章
相關標籤/搜索