日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【微信小程序&腾讯地图】获取用户所在城市信息实战

發布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 【微信小程序&腾讯地图】获取用户所在城市信息实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

實現小程序進去后獲取用戶當前所在城市,然后顯示該城市的數據,并且顯示在導航欄和 Tab上。

微信小程序中,我們可以通過調用wx.getLocation()獲取到設備當前的地理位置信息,這個信息是當前位置的經緯度。如果我們想獲取當前位置是處于哪個國家,哪個城市等信息,該如何實現呢?

微信小程序中并沒有提供這樣的API,但是沒關系,有wx.getLocation()得到的經緯度作為基礎就夠了,其他的,我們可以使用其他第三方地圖服務可以來實現,比如騰訊地圖API。

所以整個步驟就是:

在小程序中獲取當前的地理位置,涉及小程序API為wx.getLocation
把第1步中獲得的經緯度信息通過騰訊地圖的接口逆地址解析,涉及騰訊地圖接口為reverseGeocoder(options:Object)

在小程序中獲取當前的地理位置

在小程序中,調用wx.getLocation,使用前需要用戶授權scope.userLocation,代碼如下

checkAuth(callback) {
  wx.getSetting({
    success(res) {
      if (!res.authSetting['scope.userLocation']) {
        wx.authorize({
          scope: 'scope.userLocation',
          success() {
            wx.getLocation({
              type: 'wgs84', 
              success(res) {
                callback(res.latitude, res.longitude)
              }
            })
          }
        })
      }
    }
  })
}

其中type的取值可以為:

wgs84意思返回 gps 坐標

gcj02返回可用于wx.openLocation的坐標

運行后會提示如下信息,還需要在 app.json 中配置permission字段

查詢文檔后得知,得知需要如下配置

"permission": {
    "scope.userLocation": {
      "desc": "你的位置信息將用于小程序位置接口的效果展示"
    }
}

desc 用于在彈出的授權提示框中展示,如下

允許后即可獲取接口返回的信息,此過程會在右上角膠囊按鈕上顯示箭頭圖標

{
    accuracy: 65
    errMsg: "getLocation:ok"
    horizontalAccuracy: 65
    latitude: 30.25961    // 緯度,范圍為 -90~90,負數表示南緯
    longitude: 120.13026    // 經度,范圍為 -180~180,負數表示西經
    speed: -1
    verticalAccuracy: 65
}

latitudelongitude即是我們需要的兩個字段

騰訊地圖接口逆地址解析

以騰訊地圖為例,我們可以去騰訊地圖開放平臺注冊一個賬號,然后在它的管理后臺創建一個密鑰(key),以及進行KEY設置,按照微信小程序JavaScript SDK入門及使用限制文檔

在KEY設置的啟用產品中,勾選 WebServiceAPI,選擇簽名校驗方式,因為我是使用云開發的方式,所以沒有什么域名也沒有授權IP。

這部分代碼邏輯如下

import QQMapWX from '../../scripts/qqmap-wx-jssdk.min.js'
let qqmapsdk
Page({
    onLoad: function (options) {
      // 實例化API核心類
      qqmapsdk = new QQMapWX({
         key: '開發密鑰(key)'    // 必填
      });
      this.checkAuth((latitude, longitude) => {
         // https://lbs.qq.com/qqmap\_wx\_jssdk/method-reverseGeocoder.html
         qqmapsdk.reverseGeocoder({
           sig: 'KEY設置中生成的SK字符串',    // 必填
            location: {latitude, longitude},
            success(res) {
                wx.setStorageSync('loca\_city', res.result.ad\_info.city)
            },
            fail(err) {
               console.log(err)
               wx.showToast('獲取城市失敗')
            },
            complete() {
               // 做點什么
            }
         })
      })
    }
})

reverseGeocoder接口返回的結果,這里面的字段比較多,詳細可以看接口文檔,里面好幾個字段可以取到城市,其中ad_info是行政區劃信息,我就取這里面的city了。

以上內容轉載自面糊的文章《【實戰】小程序中結合騰訊地圖獲取用戶所在城市信息》

鏈接:https://segmentfault.com/a/1190000021318458

來源:segmentfault

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

總結

以上是生活随笔為你收集整理的【微信小程序&腾讯地图】获取用户所在城市信息实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。