uni-app開發微信小程使用騰訊位置服務獲取用戶的位置信息


一、開通騰訊位置服務

在這里我們先要登錄騰訊我i之服務的官網開通位置服務 騰訊位置服務官網
在這里插入圖片描述
點擊進入控制台,創建應用並創建key,並將填寫微信小程序ID
在這里插入圖片描述
進入微信公眾平台將請求域名設為合法域名
在這里插入圖片描述
下載 微信小程序 JavaScript SDK 並在項目中創建lib目錄,將SDK文件放入該目錄
在這里插入圖片描述

二、編碼實現

(一)獲取定位坐標

微信小程序提供定位接口,我們只需要調用方法即可。uni-app框架的uni對象里面也封裝了定位的方法
1.uni.getLocation(Object)
Object參數說明

參數名 類型 必填 說明 平台差異說明
type String 默認為wgs84返回gps坐標
altitude Boolean 傳入true會返回高度信息,由於獲取高度需要較高精確度,會減慢接口返回速度 App和字節跳動
geocode Boolean 默認false,是否解析地址信息 僅App平台支持
success Function 接口調用成功的回調函授,返回內容詳見參數返回說明
fail Function 接口調用失敗的回調函數,返回內容詳見返回參數
complete Function 接口調用結束的回調函數(調用成功,失敗都會執行)

success返回參數說明

參數 說明
latitude 緯度,浮點數,范圍為-90-90,負數表示南緯
longitude 經度,浮點數,范圍為-180-180,負數表示西經
speed 速度,浮點數,單位m/s
accutracy 位置的精確度
altitude 高度,單位m
verticalAccuracy 垂直精度,單位 m(Android無法獲取,返回 0)
horizontalAccuracy 水平精度,單位m
address 地址信息(僅App端支持,需配置geocode為true)

address地址信息說明

屬性 類型 描述
country String 國家
province String 省份名稱
city String 城市名稱
district String 區(縣)名稱
street String 街道信息
streetNum String 街道門牌號
poiName String POI信息
postalCode String 郵政編碼
cityCode String 城市代碼

示例:

uni.getLocation({
    type: 'wgs84',
    success: function (res) {
        console.log('當前位置的經度:' + res.longitude);
        console.log('當前位置的緯度:' + res.latitude);
    }
});

(二)、在項目中使用

1. 先要開啟位置權限,我使用的HBuilder X 2.9.8版本
如不開啟就獲取不到經緯度
在這里插入圖片描述

2. 首先要獲取用戶簽到時的地理位置(經度、緯度)

uni.showLoading({
	title: '簽到中請稍后'
});

setTimeout(function() {
	uni.hideLoading();
}, 30000);

//獲取地理定位
uni.getLocation({
	type: 'wgs84',
	success: function(resp) {
		let latitude = resp.latitude; 
		let longitude = resp.longitude;
	}
})

3. 根據定位坐標,換算成真實的地址,先引用騰訊位置的SDK文件

var QQMapWX = require('../../lib/qqmap-wx-jssdk.min.js');
var qqmapsdk;

4.使用onLoad生命周期函數,對qqmapsdk對象進行初始化

onLoad: function() {
	qqmapsdk = new QQMapWX({
		key: '這里填寫你生成的key'
	});
},

如下圖:
在這里插入圖片描述
請求接口進行置換

qqmapsdk.reverseGeocoder({
	location: {
		latitude: latitude,
		longitude: longitude
	},
	success: function(resp) {
		// console.log(resp.result);
		let address = resp.result.address;
		let addressComponent = resp.result.address_component;
		let nation = addressComponent.nation;
		let province = addressComponent.province;
		let city = addressComponent.city;
		let district = addressComponent.district;
	}
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM