文章目录

  • 一、思路
  • 二、逆地址解析
    • 2.1. app.json
    • 2.2. 页面加入
    • 2.3. 后台代码
  • 三、地图插件调用
    • 3.1. app.json加入
    • 3.2. js页面加入
    • 3.3. wxml页面
    • 成功截图:

腾讯位置服务官网: https://lbs.qq.com

一、思路

通过 wx.getLocation 返回经纬度传到后台,后台调用腾讯地图提供的逆地址解析返回用户位置;
给个按钮让用户点击调用腾讯地图选点插件,自己选择位置修改

二、逆地址解析
2.1. app.json

.小程序页面代码
app.json必须加入

"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}}
2.2. 页面加入
onLoad: function (options) {let that = this;that.authodAdress();}authodAdress() {//是否授权获取地址let that = this;wx.getSetting({success: (res) => {if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {wx.showModal({title: '是否获取当前位置',content: '需要获取您的地理位置,请确认授权,否则无法获取您所需数据',success: function (res) {if (res.cancel) {wx.showModal({title: '授权失败',icon: 'success',duration: 1000})} else if (res.confirm) {wx.openSetting({success: function (dataAu) {if (dataAu.authSetting["scope.userLocation"] == true) {wx.showModal({title: '授权成功',icon: 'success',duration: 1000})that.getAddress();} else {wx.showModal({title: '授权失败',icon: 'success',duration: 1000})}}})}}})} else if (res.authSetting['scope.userLocation'] == undefined) {that.getAddress();} else {that.getAddress();}}})},getAddress() {//获取地址let that = this;wx.getLocation({type: 'wgs84',isHighAccuracy: true,//开启高精度定位success(res) {console.log("获取地理位置----------")console.log(res)//这里改成自己封装好调用后台的apilocationApi.getLocationConvert(res).then((apiRes) => {console.log("调用后台返回地址--------")console.log(apiRes)})}})},
2.3. 后台代码
//逆地址解析url
private static final String locationUrl = "https://apis.map.qq.com/ws/geocoder/v1/";/*** 逆地址解析** @param lat 纬度* @param lng 经度**/
public static HttpClientResult convertPosition(String lat, String lng) throws Exception {Map<String, String> param = new HashMap<>(16);param.put("location", String.format("%s,%s", lat, lng));param.put("key", "腾讯地图开发密钥");param.put("output", "json");//改成自己封装好的调用接口HttpClientResult httpClientResult = getHttpClientResult(locationUrl, param);if (!httpClientResult.getContent().isEmpty()) {String all = httpClientResult.getContent().toJSONString().replaceAll("(?<=\"lat\":\\s)(\\d+\\.\\d+)", "\"$1\"").replaceAll("(?<=\"lng\":\\s)(\\d+\\.\\d+)", "\"$1\"");httpClientResult.setContent(JSONObject.parseObject(all));}return httpClientResult;
}

注意:在微信开发工具里,点击取消授权之后在进来点击确定,可能无法进入用户权限设置页面。在真机上调试就没问题
成功实例:

三、地图插件调用
3.1. app.json加入
"plugins": {"chooseLocation": {"version": "1.0.5","provider": "wx76a9a06e5b4e693e"}}
3.2. js页面加入
const chooseLocation = requirePlugin('chooseLocation');//导入插件onShow: function () {let that = this;// 从地图选点插件返回后,在页面的onShow生命周期函数中能够调用插件接口,取得选点结果对象const location = chooseLocation.getLocation();// 如果点击确认选点按钮,则返回选点结果对象,否则返回null}showMap() {//显示地图const key = ""; //使用在腾讯位置服务申请的keyconst referer = '星火之志'; //调用插件的app的名称wx.navigateTo({url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer});//老版本调用// wx.chooseLocation({//   success: function(e) {//     console.log(e)//     t.setData({//       // now_location_name: e.address,//       // now_location_lat: e.latitude,//       // now_location_lng: e.longitude,//       // now_detail_address: e.name//     });//   },//   fail: function(t) {console.log(t)},//   complete: function(t) {console.log(t)}// });}
3.3. wxml页面
<button bindtap="showMap" style="margin-top:10px">选择位置</button>

注:可能在微信开发者工具上调用时会报错,不过在真机上调试就没问题

成功截图:

微信小程序+腾讯地图 获取定位与地图选点插件相关推荐

  1. 微信小程序控制硬件 第14篇 微信小程序腾讯地图控制 4G Cat.1模组 ,安信可CA-01加载定位显示当前位置。

    文章目录 一.前言 通讯协议 技术问题点 二.4G模组业务逻辑 上报基站信息 三.微信小程序控制 另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈! 微信物 ...

  2. 微信小程序使用腾讯位置服务地图选点实现地址的选取|微信小程序腾讯位置服务地图选点请求来源未被授权

    效果图 首先要在微信开放平台的小程序里 添加插件 具体配置,可以参考官方文档 腾讯位置服务地图选点 | 小程序插件 | 微信公众平台 (qq.com) 同时还要申请接口的权限,不然小程序上线的时候不能 ...

  3. 【中级】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 01 - 文件组成详细分析

    1 前言: 本文原创,欢迎转载,但是,务必保持原文并且给出原文链接. 微信小程序 - 腾讯云 - PHP - DEMO 是微信提供的一个微信小程序和腾讯云小程序云服务wafer 进行接口的例子. 本仓 ...

  4. 关闭微信小程序电脑端的位置定位

    关闭微信小程序电脑端的位置定位 关闭微信小程序电脑端的位置定位 1.使用fiddler获取微信小程序获取定位的网址 2.在host文件中将其禁止 3.删除微信小程序的缓存 3.再启动微信小程序即可 关 ...

  5. uni-app 微信小程序 用高德sdk获取地理位置,以及天气信息

    uni-app 微信小程序采用高德sdk获取地理位置和天气信息主要有以下几个步骤: 1. 注册高德开发者,并获取应用key 概述-微信小程序插件 | 高德地图API 在这个网页最下面,按步骤来就可以了 ...

  6. 微信小程序利用echarts实现中国任意行政区域地图

    微信小程序利用echarts实现中国任意行政区域地图 前言 实现 克隆代码 集成 点击事件 点击跳转 代码改造 尾巴 前言 最近微信小程序中需要绘制地图,然后点击地图可以跳转到下一层级.研究了一番,选 ...

  7. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...

  8. php qcloud sdk weapp_微信小程序腾讯云php后台解决方案

    微信小程序腾讯云php后台解决方案 微信小程序前段需要添加必要的文件以配合后端 (1)wafer2-client-sdk sdk提供了几种接口包括登陆,获取用户openid,图片上传等 (2)conf ...

  9. 微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法

    微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法 参考文章: (1)微信小程序首页index.js获取不到app.js中动态设置的globalDat ...

  10. uniapp微信小程序授权登录和获取微信绑定的手机号码

    uniapp微信小程序授权登录和获取微信绑定的手机号码 弹出授权的弹框 <view class="weixinOk" @tap="getUserProfile&qu ...

最新文章

  1. 产品经理要读什么书?怎么读?
  2. 大自然创作的分形艺术
  3. java 边界_Java数组边界问题
  4. sql 精读(六)获取每个类别中最受欢迎的商品
  5. Gevent简明教程
  6. java word 转换 图片_怎样把手机上的图片转换成word?
  7. iOS中 Animation 动画大全 韩俊强的博客
  8. [精品]CSAPP Bomb Lab 解题报告(四)
  9. 前端学习(1141):括号总结
  10. 抖音直播营销实战经验手册
  11. PAT1021. 个位数统计
  12. svr预测出来是一条直线_如何预测股价目标位,涨跌目标预测法之“解消点”帮你寻找...
  13. 使用jQuery获取视口大小
  14. 自动驾驶_高精地图与车辆协同
  15. cart算法 java_决策树学习笔记(三):CART算法,决策树总结
  16. 服务器上怎么开启vt虚拟化功能,如何开启VT虚拟化功能
  17. Java开发面试常见问题总结
  18. galgame序列号怎么查看_国行Switch能完整体验的游戏有哪些?Switch支架掉了怎么办? | Jump指南...
  19. UVa 10608 - Friends(并查集)
  20. Android 拍身份证(自定义相机)

热门文章

  1. Retrace AV推出新型涂料添加剂,可在30分钟内灭杀新冠病毒
  2. 大数据时代,我们必守的三条底线,大数据杀熟,不可忍
  3. XAG拥抱区块链和分布式记账技术标准化时代
  4. 计算机网络背诵笔记,震惊!网络搜索、数字笔记和云盘,让你变笨!!!
  5. 第三代搜索技术展望(转)
  6. 马悦凌:从初级护士到“民间奇医”[6]
  7. SCA(successive convex approximation)学习
  8. java毕业设计——基于java+eclipse+sqlserver的银行帐目管理系统设计与实现(毕业论文+程序源码)——银行帐目管理系统
  9. java中什么是空指针异常以及为什么会产生空指针异常
  10. HPE总裁兼CEO接受《财富》杂志专访