uniapp 微信对接地图的三种操作

article/2025/10/21 0:10:28

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

1.uni.getLocation 获取当前经维度

 先上代码

  let that = this// 获取用户是否开启 授权获取当前的地理位置、速度的权限。uni.getSetting({success (res) {console.log(res)// 如果没有授权if (!res.authSetting['scope.userLocation']) {// 则拉起授权窗口uni.authorize({scope: 'scope.userLocation',success () {//点击允许后--就一直会进入成功授权的回调 就可以使用获取的方法了uni.getLocation({type: 'wgs84',success: function (res) {that.longitude = res.longitudethat.latitude = res.latitudelet jinweidu = {longitude: res.longitude,latitude: res.latitude,}uni.setStorageSync('jinweidu', jinweidu);console.log(res)console.log('当前位置的经度:' + res.longitude)console.log('当前位置的纬度:' + res.latitude)that.getlist()}, fail (error) {uni.showToast({title: '获取地址失败,请检查手机是否打开定位功能,未打开将导致部分功能不可用',icon:'none'});}})},fail (error) {//点击了拒绝授权后--就一直会进入失败回调函数--此时就可以在这里重新拉起授权窗口console.log('拒绝授权', error)uni.showModal({title: '提示',content: '若点击不授权,将无法使用位置功能',showCancel: false,// cancelText: '不授权',// cancelColor: '#999',confirmText: '授权',confirmColor: '#f94218',success (res) {console.log(res)if (res.confirm) {// 选择弹框内授权uni.openSetting({success (res) {console.log(res.authSetting)}})} else if (res.cancel) {// 选择弹框内 不授权console.log('用户点击不授权')}}})}})} else {// 有权限则直接获取uni.getLocation({type: 'wgs84',success: function (res) {that.longitude = res.longitudethat.latitude = res.latitudelet jinweidu = {longitude: res.longitude,latitude: res.latitude,}uni.setStorageSync('jinweidu', jinweidu);console.log(res)console.log('当前位置的经度1:' + res.longitude)console.log('当前位置的纬度1:' + res.latitude)that.getlist()}, fail (error) {uni.showToast({title: '获取地址失败,请检查手机是否打开定位功能,未打开将导致部分功能不可用',icon:'none'});console.log('失败', error)}})}}})}

将此方法放到onLoad生命周期内,第一次进入页面会出现授权弹窗(如下图)

  点击允许就可以获取到经纬度了

 如果拒绝授权位置信息的话就会出现弹窗进行提醒,提醒内容可以自己更改。

 这个时候点击弹窗的授权会进入设置页面,允许位置信息再返回就可以获取到经纬度了

特别注意:

uni.openSetting调起客户端小程序设置界面,返回用户设置的操作结果,此api只能在小程序中使用

uni.authorize查看是否已授权api只能在微信、百度、字节、飞书、快手、QQ小程序中使用。

且需要在微信平台开通,并在配置文件里设置

		"usingComponents": true,"permission": {"scope.userLocation": {"desc": "你的位置信息将用于和门店的距离长度"}},"requiredPrivateInfos": ["getLocation","chooseLocation"]

2.uni.chooseLocation 调起微信小程序 获取详细地址

先看代码

getMapLocation(){uni.chooseLocation({success:(res)=> {console.log(res);// this.getRegionFn(res);},fail:()=>{// 如果用uni.chooseLocation没有获取到地理位置,则需要获取当前的授权信息,判断是否有地理授权信息uni.getSetting({success: (res) => {console.log(res);var status = res.authSetting;if(!status['scope.userLocation']){// 如果授权信息中没有地理位置的授权,则需要弹窗提示用户需要授权地理信息uni.showModal({title:"是否授权当前位置",content:"需要获取您的地理位置,请确认授权,否则地图功能将无法使用",success:(tip)=>{if(tip.confirm){// 如果用户同意授权地理信息,则打开授权设置页面,判断用户的操作uni.openSetting({success:(data)=>{// 如果用户授权了地理信息在,则提示授权成功if(data.authSetting['scope.userLocation']===true){uni.showToast({title:"授权成功",icon:"success",duration:1000})// 授权成功后,然后再次chooseLocation获取信息uni.chooseLocation({success: (res) => {console.log("详细地址",res);// this.getRegionFn(res);}})}else{uni.showToast({title:"授权失败",icon:"none",duration:1000})}}})}}})}},fail: (res) => {uni.showToast({title:"调用授权窗口失败",icon:"none",duration:1000})}})}});
},

授权成功后,就可以进入到uniapp自带的选择地点的页面了,可以直接选取/拖动地图选取/搜索地点选取等多种方式实现地点的选择,页面真的是很好看啊。完全长在了我的审美点上。哈哈。

唯一的缺点就是,这个默认使用的腾讯地图,但是腾讯地图检索不是很精确,不如高德。

注意:使用uni.chooseLocation时,地图加载但附近地址列表不加载问题

 

 与应用的sha1一致

3.uni.openLocation 调起微信小程序 打开详细地址

先上代码

//查看内置地图 (导航)  注意:经纬度必须转换为number类型,不然就...哈哈哈
goMap(item){// console.log(item) uni.openLocation({latitude: Number(item.take.mer_take_location[0]), longitude: Number(item.take.mer_take_location[1]),name: item.take.mer_take_address,success() {console.log('success');}});}

使用后效果如下

本文部分转载于:

https://blog.csdn.net/lovewangyage/article/details/127660148

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 


http://chatgpt.dhexx.cn/article/afHfNBye.shtml

相关文章

微信地图多边形算法及判断点位是否在多边形中

最新一个小项目,需要用到地图定义自由区域,并判断选点是否落在此区域内,思路是通过map的polygons中的points来定义多边形边界,通过polygons的fillColor 、 strokeColor、strokeWidth来进行选区颜色的渲染。 然后再通过地图中心点位的移动来确定需要判断的选点(因为小程序地…

【微信小程序】打开微信内置的地图

前言 略 打开微信内置的地图 wx.openLocation({latitude: 38.043622, /*纬度,使用 gcj02 国测局坐标系*/longitude: 114.514746, /*经度,使用 gcj02 国测局坐标系*/scale: 18, /*缩放比例,范围5~18*/name: 石家庄市长安公园人民广场, /*这…

小程序 – 调用微信地图功能小记 + 滑动事件

学习文献官方API对 location 地图 API的具体分析日历插件 - github 2-有回调事件小程序滚动问题小程序上下滑动事件小程序map地图上显示多个marker wx.getLocation(Object object) -获取当前的地理位置、速度。并且能打印出地址消息; wx.openLocation() – 是使用…

微信地图wgs84坐标,gcj02坐标,bd09坐标转换

微信小程序三种常见经纬度坐标系的转化 遇见问题:在其它端点位显示正常,在小程序上点位发生偏移,微信小程序是gcj02坐标,就是xxToGcj02,具体情况具体分析 我们常用的地图api坐标系有wgs84坐标系,gcj02坐标…

Android仿微信地图定位和位置选择(上)

一、地图集成 集成腾讯地图SDK,https://lbs.qq.com/,申请AppKey。 1、dependencies implementation com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.2.6 implementation com.tencent.map:tencent-map-vector-sdk:4.3.4 2、AndroidMa…

微信公众号h5界面获取展示微信内置地图与地图坐标间的转换 — 微信地图(gcj02)转为百度地图

此文章中实例用测试号进行演示 。getLocation openLocation 主要运用微信JS-SDK,微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能…

微信小程序地图功能

一&#xff0c;显示地图 <map id"map" longitude"{{longitude}}" latitude"{{latitude}}" scale"14" controls"{{controls}}" bindcontroltap"controltap" markers"{{markers}}" bindmarkertap"…

微信小程序---高德地图API

本文章介绍微信小程序调用高德地图API的过程&#xff0c;使用高德定位功能做演示。微信小程序目前支持百度地图、高德地图、腾讯地图。用法可以说是基本完全一样&#xff0c;本文章以高德为例&#xff0c;简单说一下他们的区别&#xff0c;高德地图精度应该是最准确的&#xff…

微信小程序地图控件Map的使用

本文介绍微信小程序map控件的使用 map为原生控件之一…… 介绍完map控件之后下面直接来看代码怎么实现吧 和往常一样&#xff0c;这些代码贴过去就可以直接通用的 首先wxml文件(极简)&#xff1a; <map id"map" scale"16" controls"{{controls}}&…

微信小程序地图导航实例讲解

微信小程序地图导航实例讲解 先上演示视频准备工作如下在app.json中添加 watch页面代码watch.wxmlwatch.wxsswatch.js connect导航页面使用在腾讯位置服务需要获取key地图选点当用户未点击选址时&#xff0c;默认传入用户当前地址&#xff0c;可以在onShow方法中定义 代码解读 …

微信小程序——地图(定位,多个标记点)

效果图 指定为位置 Page({data: {longitude: 113.14278, //地图界面中心的经度latitude: 23.02882, //地图界面中心的纬度markers: [ //标志点的位置//位置0{id: 0,iconPath: "../images/1.png",latitude: 23.04308268848755,longitude: 113.13562655285273,width: …

Poi读取Excel时的日期操作(原创)

在java读取excel获取数据存入数据库时&#xff0c;经常会遇到多种日期类型和时间类型混用的情况 比如这样&#xff0c;一边是纯日期&#xff0c;一边是“年月日 时分秒”形式&#xff0c; 很多时候我们需要直接根据内容来区分二者&#xff0c;从而将取到的时间值转换成与excel…

Java用poi实现读取Excel文件内容

使用poi读取Excel文件 前言 用户可以直接读取本地文件&#xff0c;也可以通过上传文件的形式读取excel 注意&#xff1a;poi对于读取到空白行的时候&#xff0c;会默认的认为是最后一行&#xff0c;将不会再读取空白行下面的数据 第一步 导入依赖 <dependency><gro…

使用poi读取Excel中的数据到数据库

大家好今儿给大家带来的是使用poi读取Excel中的数据到数据库 目录 大家好今儿给大家带来的是使用poi读取Excel中的数据到数据库1.poi简单介绍2.poi操作excel3.代码部分(可直接用)4.测试5.总结 1.poi简单介绍 POI是Apache出品的一个开源的专门用来操作我们Microsoft Office格式…

POI读取Excel浅谈

POI读取Excel浅谈 博客分类&#xff1a; J2EEJava开源Servlet/Jsp设计模式 Excel Ruby Office Apache Microsoft 先看代码&#xff0c;挨句解释&#xff1a; 一般遍历使用两种方式&#xff0c;1&#xff1a;得到总的行数和每行的列数&#xff0c;然后循环。2&#xff1a;使用…

【Java】POI读取Excel的两种模式

用户模式 基本使用 usermodel相关包&#xff0c;对用户友好&#xff0c;在ss包下有统一的接口&#xff0c;但它是把整个文件读取到内存中&#xff0c;对于大量数据很容易内存溢出&#xff0c;所以只能用来处理小量数据 示例代码 public static List<Map<String, Stri…

使用POI读取EXCEL中的所有Sheet表

使用POI读取EXCEL中的所有Sheet表 最近接触到了多sheet页的导入导出功能&#xff0c;现举例如何 使用POI&#xff0c;通过多个循环读取EXCEL中的所有Sheet表内容。 package poitest; import java.io.File; import java.io.FileInputStream; import org.apache.poi.hssf.u…

poi读取Excel文档(.xls .xlsx)包含合并单元格

例子&#xff1a; 结果&#xff1a; 开始&#xff1a;----------------------------------- 导入的poi <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</ar…

Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理)

Java教程&#xff1a;使用POI读取excel文档&#xff08;根据BV1bJ411G7Aw整理&#xff09; 最近公司需要我做一个导出Excel表格的功能&#xff0c;为此来学习一下POI&#xff0c;在这里记录一下学习笔记。B站直接搜BV1bJ411G7Aw就能找到视频。 一、简介 poi如何操作表格 二…

poi读取excel模板,并填充数据

一、POI介绍 Apache POI是Apache软件基金会的开放源码函式库&#xff0c;POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 基本功能&#xff1a; HSSF &#xff0d; 提供读写Microsoft Excel格式档案的功能。 XSSF &#xff0d; 提供读写Microsoft Excel OOXM…