当前位置: 首页 > news >正文

uniapp小程序,使用腾讯地图获取定位

本篇文章分享一下在实际开发小程序时遇到的需要获取用户当前位置的问题,在小程序开发过程中经常使用到获取定位功能。uniapp官方也提供了相应的API供我们使用。
官网地址:uni.getLocation(OBJECT))
官网获取位置的详细介绍这里就不再讲述了,大家可以点击上方链接去官网查看。
我们本次开发的是小程序,需要注意的是,小程序获取定位使用的是腾讯位置服务,所以需要申请腾讯位置服务的SDK。

腾讯位置服务平台申请密钥和下载SDK

申请步骤:详细文档https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview
在这里插入图片描述

1、申请开发者秘钥

点击文档中的申请秘钥链接,跳转至腾讯位置服务平台,如下图所示申请即可。(没有账号的先注册账号)
在这里插入图片描述

2、开通webServiceAPI服务

开通webserviceAPI服务:控制台 ->应用管理 -> 我的应用 ->添加key-> 勾选WebServiceAPI -> 保存
(小程序SDK需要用到webserviceAPI的部分服务,所以使用该功能的KEY需要具备相应的权限)

1、申请key
在这里插入图片描述
2、复制申请好的Key值等待使用
在这里插入图片描述

3、下载微信小程序JavaScriptSDK

微信小程序JavaScriptSDK下载地址(点击文字即可跳转)
在这里插入图片描述
下载好解压完成后,我们一般放在根目录下面的common目录下(如下图)
在这里插入图片描述

4、安全域名设置

安全域名设置,在小程序管理后台 -> 开发 -> 开发管理 -> 开发设置 -> “服务器域名” 中设置request合法域名,添加https://apis.map.qq.com
在这里插入图片描述
到这一步算是申请完成,再配置一下就好了

配置manifest.json文件

在这里插入图片描述
在这里插入图片描述
勾选之后,视图源码会自动加上这此段代码,如果没有可以直接复制手动加上。

 "permission" : {"scope.userLocation" : {"desc" : "为了您更好的体验,请确认获取您的位置"}
}	"requiredPrivateInfos": ["getLocation", "chooseLocation"]

示例代码演示

//引入下载好的SDK
import QQMapWX from "../../common/qqmap-wx-jssdk.js"//获取定位函数示例methods: {//获取位置信息async getLocationInfo() {return new Promise((resolve) => {//位置信息默认数据let location = {longitude: 0,latitude: 0,province: "",city: "",area: "",street: "",address: "",};uni.getLocation({type: "gcj02",success(res) {location.longitude = res.longitude;location.latitude = res.latitude;// 腾讯地图Apiconst qqmapsdk = new QQMapWX({key: 'XXXXXXXXXXXXXXXXXXXXXXXX'  //这里填写自己申请的key});qqmapsdk.reverseGeocoder({location,success(response) {let info = response.result;console.log(info);location.province = info.address_component.province;location.city = info.address_component.city;location.area = info.address_component.district;location.street = info.address_component.street;location.address = info.address;resolve(location);},});},fail(err) {console.log(err)resolve(location);},});});}}//调用函数
//函数调用可以自己去选择在页面加载的时候加载,或者有一个触发条件。(我是用的页面加载,所以放在了onload方法中)。async onLoad() {const location = await this.getLocationInfo();this.position = location.address
},
//注意:这里使用的this.position,是在data中定义的,代码示例中没有写。需要自己在data方法中定一个position变量//页面渲染
<view style="margin-top: 40rpx;margin-left: 16rpx;color:red;">当前定位:{{position}}
</view>

到此该功能完整实现!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue组件:依赖注入provide和inject的使用
  • Python中的单例模式:从入门到精通
  • 【秋招笔试】9.09阿里国际秋招(已改编)-三语言题解
  • Hadoop Pig
  • Vue3+setup+el-pagination+el-select封装下拉分页及懒加载
  • git:分支管理
  • 如果java垮了其他语言社区就遭殃了,这个说法可信吗?
  • ffmpeg编译连接报错 undefined reference to `uncompress‘
  • 安全工具 | 使用Burp Suite的10个小tips
  • CANFD和CAN最主要的区别
  • 查找算法--python
  • Qt 实现自定义截图工具
  • 二维码的原理以及Java生成二维码【中间带图片】
  • 计算机网络(四) —— 简单Tcp网络程序
  • 使用 Lodash 提供的 isNil 和 omitBy 实现对象空属性的过滤
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Computed property XXX was assigned to but it has no setter
  • javascript从右向左截取指定位数字符的3种方法
  • JS变量作用域
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js算法-归并排序(merge_sort)
  • Linux链接文件
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • ReactNative开发常用的三方模块
  • Twitter赢在开放,三年创造奇迹
  • Vue2.0 实现互斥
  • windows下使用nginx调试简介
  • 给新手的新浪微博 SDK 集成教程【一】
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 与 ConTeXt MkIV 官方文档的接驳
  • 在weex里面使用chart图表
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ## 1.3.Git命令
  • #### golang中【堆】的使用及底层 ####
  • #07【面试问题整理】嵌入式软件工程师
  • (+4)2.2UML建模图
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (十六)视图变换 正交投影 透视投影
  • (四)鸿鹄云架构一服务注册中心
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • .gitignore文件_Git:.gitignore
  • .java 9 找不到符号_java找不到符号
  • .net core 6 redis操作类
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 中让 Task 支持带超时的异步等待
  • .net(C#)中String.Format如何使用
  • .net程序集学习心得
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET是什么
  • /usr/bin/env: node: No such file or directory
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?