前言
有兩種獲取位置的方式,一種是
直接回傳經緯度等資訊(必須代碼處理后才能顯示到界面上),另一種是"界面選擇式" 由用戶打開地圖選擇位置,
最近有添加用戶識訓地址需求(外賣專案),需要獲取用戶當前位置,

第一步
說白了,就是微信需要讓用戶確定是否允許你獲取它的位置,如果你不授權,將彈框提示,
首先,你必須進行 授權 ,無論是哪種獲取用戶地址的方式,
一、配置 app.json 檔案,加入以下代碼:
"permission": {
"scope.userLocation": {
"desc": "這里填寫描述資訊(如:美團請求獲取您的位置資訊)"
}
}
不知道加在哪里的話,請看如下配置示例:
{
"pages": [
"pages/index/homePage/homePage",
"pages/menu/homePage/homePage",
],
"permission": {
"scope.userLocation": {
"desc": "請求獲取您的位置資訊"
}
},
"window": {
"navigationBarBackgroundColor": "#ffffff",
},
"sitemapLocation": "sitemap.json"
}
這樣,就完成了授權配置作業,

第二步
首先你要確保你已經做了授權配置(第一步),否則會出現未授權彈框提示,
先來看一下 API ,后面我們代碼來實作,
wx.getLocation:獲取當前的地理位置、速度,官方檔案介紹
wx.chooseLocation:打開地圖選擇位置,官方檔案介紹

代碼實作:打開地圖選擇位置
推薦這種方式,由用戶選擇并確定,開發者也容易獲取到當前位置資訊,
我們來實作一下 wx.chooseLocation 由用戶選擇或搜索地址,
/*
* 很簡單,直接在按鈕中觸發函式呼叫api即可
* 回傳的res就包含了用戶所選擇的當前位置資訊
* [api其他配置項請參照檔案根據自身需求配置]
*/
wx.chooseLocation({
success:function(res)
{
console.log(res)//包含所有當前位置資訊
}
})
列印結果:

實作:回傳位置經緯度
這種方式更適合與 map 地圖組件配合,用于動態重繪地圖位置,但不適合獲取當前位置資訊,
我們來實作一下 wx.getLocation 方式獲取經緯度等資訊,但你需要將經緯度轉為真實地址才能獲取使用(如果你是與 map 地圖組件配合那么不需要轉換),
wx.getLocation({
type: 'wgs84',
success (res) {
// 回傳資料
console.log(res)
}
})
列印結果(可以看到已經回傳了經緯度,就證明已經定位到當前位置了):

經緯度轉真實地址比較繁瑣,具體請參照:這篇文章,或參照相關資料,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/166691.html
標籤:其他
