注:前置处理参考文档: https://blog.csdn.net/cherishSpring/article/details/149462101
1、 腾讯位置服务文档:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview
2、安装qqmap-wx-jssdk.js:https://www.npmjs.com/package/qqmap-wx-jssdk
bash
//注意taobao镜像已经不能使用了,npm需要重新设置个镜像
npm install qqmap-wx-jssdk --save
3、注册腾讯位置服务注册账号key:https://lbs.qq.com/login/register/index.html
4、配额分配,不分配调用不了

5、腾讯地图API-逆地址解析[qqmapsdk.reverseGeocoder]和[uni.getLocation]配合自动定位
API接口参考:
https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodReverseGeocoder
https://uniapp.dcloud.net.cn/api/location/location.html#getlocation
效果图:

调用代码,通过uni.getLocation获取经纬度再逆地址解析qqmapsdk.reverseGeocoder得到位置名称
html
<template>
<view class="homePage">
<u-icon size="12" name="arrow-down" :label="address" labelPos="left" @click="citySelect()"></u-icon>
</view>
</template>
<script>
import QQMapWX from "qqmap-wx-jssdk";
let qqmapsdk;
export default {
data() {
return {
address: "选择城市"
}
},
onLoad() {
qqmapsdk = new QQMapWX({
key: this.QQ_MAP_KEY
});
this.getLocation();
},
methods: {
getLocation() {
uni.getLocation({
type: 'wgs84', // 返回可以用于uni.openLocation的经纬度,默认为wgs84的gps坐标
success: (res) => {
console.log(JSON.stringify(res, 2))
this.reverseGeocoder(res);
},
fail: (err) => {
console.error('获取位置失败:', err);
}
});
},
reverseGeocoder(data) {
qqmapsdk.reverseGeocoder({
coord_type: 5, //[默认]腾讯、google、高德坐标
location: data,
success: (res) => {
let addr=res.result.address;
this.address = addr.substring(0,2);
console.log(this.address);
},
fail: (err) => {
console.error('reverseGeocoder失败:', err);
}
});
}
}
};
</script>
<style>
page {
height: 100%;
background: white;
}
.homePage {
padding-bottom: 5px;
}
</style>
逆地址解析res结果
javascript
{
"status": 0,
"message": "query ok",
"request_id": "91279b6f-c398-4903-9d2c-878c9594b7cc",
"result": {
"location": {
"lat": 29.56471,
"lng": 106.55073
},
"address": "重庆市渝中区人民支路96-5号",
"formatted_addresses": {
"recommend": "渝中区上清寺重庆市财政税务局住宅(中山四路东)",
"rough": "渝中区上清寺重庆市财政税务局住宅(中山四路东)",
"standard_address": "重庆市渝中区人民支路96"
},
"address_component": {
"nation": "中国",
"province": "重庆市",
"city": "重庆市",
"district": "渝中区",
"street": "人民支路",
"street_number": "人民支路96-5号"
},
"ad_info": {
"nation_code": "156",
"adcode": "500103",
"phone_area_code": "023",
"city_code": "156500000",
"name": "中国,重庆市,重庆市,渝中区",
"location": {
"lat": 29.552631,
"lng": 106.568914
},
"nation": "中国",
"province": "重庆市",
"city": "重庆市",
"district": "渝中区"
},
"address_reference": {
"business_area": {
"id": "6871151327198599787",
"title": "上清寺",
"location": {
"lat": 29.5606,
"lng": 106.546
},
"_distance": 0,
"_dir_desc": "内"
},
"famous_area": {
"id": "6871151327198599787",
"title": "上清寺",
"location": {
"lat": 29.5606,
"lng": 106.546
},
"_distance": 0,
"_dir_desc": "内"
},
"crossroad": {
"id": "622857",
"title": "人民路/蒲草田(路口)",
"location": {
"lat": 29.56287,
"lng": 106.55495
},
"_distance": 451.1,
"_dir_desc": "西北"
},
"town": {
"id": "500103005",
"title": "上清寺街道",
"location": {
"lat": 29.559856,
"lng": 106.548003
},
"_distance": 0,
"_dir_desc": "内"
},
"street_number": {
"id": "4446242921655447310160",
"title": "人民支路96-5号",
"location": {
"lat": 29.56463,
"lng": 106.55067
},
"_distance": 10.6
},
"street": {
"id": "17284759988724730050",
"title": "中山四路",
"location": {
"lat": 29.563307,
"lng": 106.547394
},
"_distance": 35.1,
"_dir_desc": "东"
},
"landmark_l2": {
"id": "14916175664193811825",
"title": "重庆市财政税务局住宅",
"location": {
"lat": 29.564787,
"lng": 106.550805
},
"_distance": 0,
"_dir_desc": "内"
}
}
}
}