Uniapp的App环境下使用Map获取缩放比例

概述

  1. 目前我试过的就是你用vue后缀是拿不到比例的你可以用nvue当然uniapp的uvue应该是更加可以的
  2. 我使用的是高德所以你得在高德的后台声请原生的Android的key才可以
  3. 如果是vue3的开发模式的话不用使用this来获取当前对象
  4. 使用scale对象来接受和改变缩放比例会比较友好
  5. 然后直接走uniapp的api通过uni来操作获取对象就可以了

操作

1. 后缀名解释

可以查看我这篇文章 Uniapp的vue、nvue、uvue后缀名区别

2. 申请高德的key和配置uniapp解析Map

可以查看这里官方解释:官方说明
在这里插入图片描述

3. 放弃使用this

在您的uni-app项目中,您试图通过uni.createMapContext来获取地图的缩放比例,但是遇到了问题。从您提供的代码和描述来看,可能存在几个问题,下面我将逐一分析和提供解决方案:

this上下文问题: 在Vue 3的组合式API中,您不应该使用this关键字,因为它在组合式API中未定义。您应该直接使用ref定义的响应式变量。

地图上下文创建: 在getMapScale函数中,您应该直接使用uni.createMapContext(‘mapBoday’)来创建地图上下文,而不是传入this。

4. 绑定scale

这里的主要的目的是动态获取缩放的比例

5. 使用uniapp给的地图api直接拿取地图api就可以了

省略哈

代码解释

<template><view style="" class="mapBox"><map id="mapBoday" class="mapBoday" ref="mapBoday"style="width: 800rpx; height: 800rpx; z-index: 1;position: absolute;" :show-compass="showCompass":latitude="latitude" :longitude="longitude" @markertap="onMarkerTap" :markers="markers" @click="getclick":scale="scale" @regionchange="onRegionChange"></map></view>
</template><script setup>import {ref,onMounted} from 'vue'// 定义经纬度状态const latitude = ref(28.009883);const longitude = ref(111.126059);const markers = ref([]); //地图的地址const showCompass = ref(true)const mapPlan = ref(true)const address = ref('')const scale = ref(1)const mapBoday = ref()const getclick = (e) => {console.log(e)}const onMapFinish = (e) => {console.log("更新事件", e)}const onRegionChange = (event) => {// 监听地图缩放,获取当前缩放级别console.log("监听到缩放", event, event.detail)if (event.type === 'end') {// console.log('当前缩放级别:', event.detail);// scale.value = event.detail.scale;getMapScale()}};// 获取当前缩放比例const getMapScale = () => {const mapContext = uni.createMapContext('mapBoday');mapContext.getScale({success(res) {console.log('当前缩放比例:', res.scale);scale.value = res.scale;},fail(err) {console.error('获取缩放比例失败:', err);}});};// 获取当前位置信息const getLocation = () => {uni.getLocation({type: 'gcj02', // 使用 gcj02 坐标系success: (res) => {// latitude.value = res.latitude;// longitude.value = res.longitude;address.value = res.address;// 设置标记(marker)markers.value = [{id: 1,latitude: res.latitude,longitude: res.longitude,iconPath: '../../static/icon/location.png', // 可自定义图标路径width: 10,height: 10},{id: 2,latitude: 28.009883, // 标记的经度longitude: 111.126059, // 标记的纬度iconPath: '../../static/icon/destination.png', // 自定义图标width: 10,height: 10,callout: {content: '点击导航到这里',color: '#000',fontSize: 12,borderRadius: 5,bgColor: '#fff',padding: 5,display: 'ALWAYS'}}];},fail: (err) => {console.log('获取定位失败:', err);}});};// 点击标记时的处理函数const onMarkerTap = (event) => {const markerId = event.id;const selectedMarker = markers.value.find(marker => marker.id === markerId);console.log(event, markerId, selectedMarker)if (selectedMarker) {// 打开高德地图进行导航uni.openLocation({latitude: selectedMarker.latitude,longitude: selectedMarker.longitude,name: '导航目的地', // 可选,显示在高德地图上的目的地名称address: '这里是目的地地址', // 可选,显示在高德地图上的详细地址success() {console.log('导航成功');},fail(err) {console.error('导航失败:', err);}});}};//切换视图const openMapPlan = () => {}// 组件挂载时获取地理位置onMounted(() => {getLocation();});
</script><style lang="scss" scoped>.mapBox {height: 800rpx;width: 800rpx;border: 1px solid red;}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/485234.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何利用Java爬虫获得商品类目

在当今数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。获取和分析数据的能力对于任何希望在市场上保持竞争力的企业来说都是至关重要的。对于电子商务平台和市场研究公司而言&#xff0c;获取商品类目数据尤为重要&#xff0c;因为这些数据可以帮助他们更好地理解市场…

筑起厂区安全--叉车安全防护装置全解析

在繁忙的工业生产领域中&#xff0c;叉车作为搬运工&#xff0c;穿梭于仓储与生产线之间。然而&#xff0c;叉车的高效运作背后&#xff0c;也隐藏着诸多安全风险&#xff0c;尤其是在那些空间狭小、物流繁忙的环境中。为了降低这些潜在的危险&#xff0c;叉车安全防护装置便成…

AI新动向:豆包文生图升级,文心一言领先市场

在今日的AI资讯中&#xff0c;我们关注到了几个重要的行业动态&#xff0c;其中包括字节跳动AI助手豆包的功能升级&#xff0c;以及百度文心一言在生成式AI市场的领先地位。 字节跳动旗下的智能AI助手豆包近期对其文生图能力进行了显著提升&#xff0c;用户现在可以通过一键操…

【深度学习】手机SIM卡托缺陷检测【附链接】

一、手机SIM卡托用途 SIM卡托是用于固定和保护SIM卡的部件&#xff0c;通过连接SIM卡与手机主板的方式&#xff0c;允许设备访问移动网络&#xff0c;用户可以通过SIM卡进行通话、发送短信和使用数据服务。 二、手机SIM卡托不良影响 SIM卡接触不良&#xff0c;造成信号中断&…

PDF文件打开之后不能打印,怎么解决?

正常的PDF文件是可以打印的&#xff0c;如果PDF文件打开之后发现文件不能打印&#xff0c;我们需要先查看一下自己的打印机是否能够正常运行&#xff0c;如果打印机是正常的&#xff0c;我们再查看一下&#xff0c;文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…

JUC:读写锁和邮戳锁

1. 面试题 你知道Java里面有那些锁你说说你用过的锁&#xff0c;锁饥饿问题是什么&#xff1f;有没有比读写锁更快的锁StampedLock知道吗&#xff1f;&#xff08;邮戳锁/票据锁&#xff09;ReentrantReadWriteLock有锁降级机制&#xff0c;你知道吗&#xff1f; 2. 读写锁&a…

「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果

本篇将带你实现一个带有闪烁动画的按钮交互效果。通过动态改变按钮颜色&#xff0c;用户可以在视觉上感受到按钮的闪烁效果&#xff0c;提升界面互动体验。 关键词 UI互动应用闪烁动画动态按钮状态管理用户交互 一、功能说明 闪烁按钮效果应用实现了一个动态交互功能&#xf…

MongoDB的简单使用

MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档&#xff1a;SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法&#xff1a; db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…

chromedriver.exe编译

使用例子参考官网 ChromeDriver 使用入门 | Chrome for Developers Chrome for Testing availability 注意&#xff1a;chromedriver版本要与chromium版本号对应。 如何编译chromedriver chrome\test\chromedriver\BUILD.gn 1、ninja -C out/debug chromedriver_server…

基于MinIO打造高可靠分布式“本地”文件系统

MinIO是一款高性能的对象存储服务&#xff0c;而S3协议是由亚马逊Web服务&#xff08;AWS&#xff09;制定的一种标准协议&#xff0c;用于云存储服务之间的数据交换。MinIO与S3协议的关系在于&#xff0c;MinIO实现了S3协议的接口&#xff0c;这意味着用户可以使用与AWS S3相同…

Python_Flask02

所有人都不许学Java了&#xff0c;都来学Python&#xff01; 如果不来学的话请网爆我的老师 连接前的准备 安装pymysql 和 flask_sqlalchemy&#xff0c;安装第三下面两个所需要的包才能连接上数据库 pip install pymysql pip install flask_sqlalchemy pymysql是一个Pyth…

python学opencv|读取图像(四)imshow()函数尝试

【1】引言 前述已经学习了opencv读取图像的基本操作&#xff0c;包括下述链接&#xff1a; python学opencv|读取图像-CSDN博客 python学opencv|读取图像&#xff08;二&#xff09;保存彩色图像-CSDN博客 python学opencv|读取图像&#xff08;三&#xff09;放大和缩小图像…

AC高可靠

在真实网络中&#xff0c;一台AC可能要管理上百台AP&#xff0c;因此对与AC的可靠性要求目前有4种解决方案 分别是VRRP双机热备&#xff0c;双链路冷备&#xff0c;双链路热备&#xff0c;N1备份 简述 VRRP双机热备份 主备AC两个独立的IP地址&#xff0c;通过VRRP对外虚拟为同…

docker逃逸总结

一、 检查是否在docker容器中 通过以下两个地方来判断 # 是否存在此文件 ls -al /.dockerenv# 在其中是否包含docker字符串 cat /proc/1/cgroup除了上面两种外还有其他方式判断&#xff0c;如检测mount、fdisk -l查看硬盘 、判断PID 1的进程名等也可用来辅助判断。 容器逃逸…

第十七章 使用 MariaDB 数据库管理系统

1. 数据库管理系统 数据库是指按照某些特定结构来存储数据资料的数据仓库。在当今这个大数据技术迅速崛起的年代&#xff0c;互联网上每天都会生成海量的数据信息&#xff0c;数据库技术也从最初只能存储简单的表格数据的单一集中存储模式&#xff0c;发展到了现如今存储海量…

六、Prompt工程——进阶迭代

Prompt工程——进阶迭代 一、Prompt样本提示零样本提示(Zero-shot Prompting)少量样本提示(Few-shot Prompting) 自洽性/自一致性(Self-Consistency)Prompt生成知识提示生成知识提示(Generate Knowledge Prompting) 这些都是业界总结出来的一些方法论&#xff0c;大家主要是学习…

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 一、效果展示 **博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a;我的百宝工具箱 二、示例代码 1.1、在自己的小程序中创建组件 1.2、组件…

AWS 机器学习,推动 AI 技术的健康发展

目录 一、AI 正在改变生产方式二、从炒作走向务实1、选对场景2、重视数据3、产品思维4、持续优化 三、人才是最稀缺的资源四、负责任的 AI 开发五、未来已来六、启示与思考七、结语 如果说传统软件开发是手工作坊&#xff0c;那么 AI 就像工业革命带来的机器生产。 在最新的一…

【计算机网络】实验15:VLAN间通信的实现方法“单臂路由”

实验15 VLAN间通信的实现方法“单臂路由” 一、实验目的 加深对VLAN间通信的实现方法“单臂路由”的理解。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑&#xff0c;并配置好主机的IP地址、子网掩码、默认网关&#xff0c;如图1&#xff0c;2所…

11.20[JAVAEXP3]重定向细究【DEBUG】

设置了根域名访问为testServlet,让他重定向到首页为test.jsp&#xff0c;事实上也都触发了&#xff0c;但是最后显示的为什么不是test.jsp生成页面&#xff0c;依然还是index.jsp生成的页面&#xff1f;&#xff1f; 重定向是通过Dispatcher进行的&#xff0c;而不是sendRedir…