先解释一下为什么要用腾讯地图实现定位
原因:uniapp
可以通过uni.getLocation
获取用户定位,但是获取到的定位没有中文地址,所以我们需要通过第三方SDK
例如高德地图或者腾讯地图来获取中文定位信息。
先去腾讯位置服务 :腾讯位置服务 - 立足生态,连接未来
去控制台 应用管理-->我的应用-->创建应用--->添加key :如下图
之后去开发文档下载地图小程序SDK:
下载依赖包 ,解压后引入到文件中
引入到代码里
<template>
<view>
<map :latitude="latitude" :longitude="longitude" show-compass="true" show-location="true" class="map"></map>
</view>
</template>
<script>
import qqmapsdk from '../../static/qqmap-wx-jssdk.js' //引入下载的js
const QQMapWX = new qqmapsdk({
key: 'VNBBZ-SKMRW-U5TR5-OIYQZ-VEOMF-IABLP' //之前在腾讯位置服务添加的key
});
export default {
data() {
return {
latitude: 0,
longitude: 0,
}
},
onLoad() {
uni.getLocation({
type: 'wgs84',
geocode: true,
success: (res) => {
console.log("获取经纬度成功");
this.latitude = res.latitude;
this.longitude = res.longitude;
},
fail: () => {
console.log("获取经纬度失败");
},
complete: () => {
// 解析地址
QQMapWX.reverseGeocoder({
location: {
latitude: this.latitude,
longitude: this.longitude
},
success: function(res) {
console.log("解析地址成功");
console.log(res);
// 省
let province = res.result.ad_info.province;
// 市
let city = res.result.ad_info.city;
console.log(province);
console.log(city);
},
fail: function(res) {
uni.showToast({
title: '定位失败',
duration: 2000,
icon: "none"
})
console.log(res);
},
complete: function(res) {
console.log(res);
}
})
}
})
},
methods: {
}
}
</script>
<style>
.map {
width: 100vw;
height: 100vh;
}
</style>
版权声明:本文为m0_66482551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。