前言
在針對小程序埋點(diǎn)時(shí),需要獲取到用戶的位置,uniapp有自帶獲取位置的方法uni.getLocation
其中可以獲取到經(jīng)緯度,以及中文地址address
,但是中文地址僅APP端支持,小程序是用不了的?,F(xiàn)在只能拿到經(jīng)緯度,再通過經(jīng)緯度逆地址解析,得到中文地址。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、獲取經(jīng)緯度
獲取經(jīng)緯度的方法有很多:
- uniapp可以通過uni.getLocation獲取
- wx.getLocation獲取
- 三方api/sdk獲取
1,需要在app.json里面聲明你所需要用的接口
在uniapp的
manifest.json
–源碼視圖
里面進(jìn)行聲明如果不聲明是無法正常使用接口的,更多接口聲明可以查看微信官方規(guī)則
"requiredPrivateInfos": [
"getLocation"
],
注意:如果小程序上線,需要提前申請開通使用接口的權(quán)限且只針對部分主體提供使用權(quán)限,否則審核不會(huì)通過 微信官方申請
2,注意保護(hù)用戶的隱私,需要經(jīng)過用戶授權(quán)之后才可以獲取用戶位置,如果用戶拒絕了也是無法獲取到的。
在app.json里面配置獲取用戶定位權(quán)限的提示:
"permission": {
"scope.userLocation": {
"desc": "你的位置信息將用于小程序位置接口的效果展示" // 定位
}
},
3,判斷用戶是否已經(jīng)授權(quán)定位,如果沒有授權(quán)則彈出獲取定位權(quán)限的提示,可通過wx.getSetting
拿到用戶的授權(quán)信息,沒有授權(quán)彈出授權(quán)請求,用戶可拒絕,若之前用戶已經(jīng)授權(quán)則不會(huì)彈出請求,直接返回success
/**
* 獲取定位授權(quán)
* author: xjw
*/
wx.getSetting({
success(res) {
if (!res.authSetting['scope.userLocation']) {
wx.authorize({
scope: 'scope.userLocation',
success() {
// 用戶已授權(quán)位置權(quán)限
// 可以繼續(xù)訪問位置信息
},
fail() {
// 用戶拒絕了位置權(quán)限
// 可以相應(yīng)地處理拒絕情況
console.log("用戶拒絕了位置權(quán)限")
},
});
} else {
// 用戶已經(jīng)授權(quán)了位置權(quán)限
// 可以繼續(xù)訪問位置信息
console.log("用戶已經(jīng)授權(quán)了位置權(quán)限")
}
},
});
}
4,獲取經(jīng)緯度
通過wx.getLocation
拿到用戶的經(jīng)緯度
wx.getLocation({
type: 'wgs84',
success: function(res) {
console.log('用戶已授權(quán)位置權(quán)限,經(jīng)緯度:' + res.longitude, res.latitude);
},
fail: function() {
console.log("獲取地理位置失敗")
}
})
二、逆地址解析
小程序wx.getLocation只能獲取經(jīng)緯度, 這時(shí)候想要具體地址就需要借助第三方API(逆地址解析) 我這邊第三方以騰訊位置服務(wù)舉例
1.申請API Key
現(xiàn)在先注冊騰訊地圖,獲取key
https://lbs.qq.com/dev/console/key/manage
2.使用WebService API
獲取到api密鑰之后就可以使用API了文章來源:http://www.zghlxwxcb.cn/news/detail-705377.html
wx.request({
url: 'https://apis.map.qq.com/ws/geocoder/v1/',
data: {
location: `${latitude},${longitude}`,
key: 'API_KEY',
get_poi: 0,
output: 'json'
},
success(res) {
var address = res.data.result.address;
},
fail(error) {
console.error('逆地理編碼失?。?, error);
}
});
該處使用的url網(wǎng)絡(luò)請求的數(shù)據(jù)。接收參數(shù)經(jīng)緯度
返回的res.data.result.address中就有解析出來的中文地址文章來源地址http://www.zghlxwxcb.cn/news/detail-705377.html
到了這里,關(guān)于【小程序】微信小程序獲取用戶位置,經(jīng)緯度及逆地址解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!