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.xdnf.cn/news/35826.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门项目:Linux下C++轻量级Web服务器 项目详解(小白篇)

拿到一个项目首先先跑通&#xff0c;然后再慢慢来看代码&#xff0c;关于怎么将这个项目跑通&#xff0c;上一篇已经讲过&#xff0c;感兴趣的小伙伴可以移步下面的链接&#xff0c;或者其他博主的教程。 C入门项目&#xff1a;Linux下C轻量级Web服务器 跑通|运行|测试&#xf…

RuoYi集成Drools,并实现数据库获取规则

Drools是一个开源的业务规则管理系统&#xff08;BRMS&#xff09;和规则引擎&#xff0c;它允许开发者以接近自然语言的形式定义业务规则&#xff0c;并将这些规则应用到应用程序中&#xff0c;实现业务逻辑的自动化和决策过程的优化。Drools基于Java语言开发&#xff0c;使用…

什么是API接口?如何调用API接口?

一、什么是 API 接口 定义 API&#xff08;Application Programming Interface&#xff09;即应用程序编程接口。它是一组定义好的规则和协议&#xff0c;允许不同的软件应用程序之间进行通信和交互。可以把 API 想象成是餐厅的服务员&#xff0c;当顾客&#xff08;一个软件应…

BurpSuite-6(验证码识别)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;burp(6)暴力破解与验证码识别绕过_哔哩哔哩_bilibili 一、下载 github地址&#xff1a;GitHub - f0ng/captcha-killer-modified: captcha-killer…

【JavaEE】多线程(7)

一、JUC的常见类 JUC→java.util.concurrent&#xff0c;放了和多线程相关的组件 1.1 Callable 接口 看以下从计算从1加到1000的代码&#xff1a; public class Demo {public static int sum;public static void main(String[] args) throws InterruptedException {Thread …

Go 程序编译的步骤

Go程序编译的步骤 词法分析&#xff08;Lexical Analysis&#xff09; Go编译器首先对源代码进行词法分析&#xff0c;将代码拆分成标记&#xff08;tokens&#xff09;&#xff0c;这些标记是编程语言的最小单位&#xff0c;如关键字、变量名、操作符等。 作用&#xff1a;生…

SD-WAN服务商应该怎么挑选?

随着企业对高效、灵活网络的需求不断增长&#xff0c;SD-WAN技术逐渐成为市场热点。然而&#xff0c;面对众多服务商的多样化方案&#xff0c;如何选择最适合自己企业的服务商是一个重要的问题。SD-WAN服务商之间在技术、功能和服务等方面存在差异&#xff0c;企业需要根据自身…

三相LCL并网逆变器--仿真验证

根据前面的博客的讲解&#xff0c;确定主电路参数如下 名称/单位 值 名称/单位 值 额定功率P/kW 20 开关频率fsw/kHz 10 母线电压Udc/V 720 逆变器侧电感L1/mH 1.8 额定电流Ireated/A 30 并网测电感L2/mH 0.4 PCC电压/Us/V 220 滤波电容C/uF 4.7 电网频率f…

基于SpringBoot+Vue的服装生产管理系统-无偿分享 (附源码+LW+调试)

目录 1. 项目技术 2. 功能菜单 3. 部分功能截图 4. 研究背景 5. 设计原则 6. 可行性分析 6.1 技术可行性 6.2 经济可行性 6.3 操作可行性 7. 系统设计 7.1 系统流程和逻辑 7.2 系统结构 8. 数据库设计 8.1 数据库ER图 &#xff08;1&#xff09;管理员实体属性图…

告别充电焦虑:移动充电机器人的革命性解决方案

移动充电机器人作为新能源汽车领域的黑科技&#xff0c;正逐渐崭露头角。它的出现为电动汽车充电带来了全新的解决方案&#xff0c;解决了传统充电方式的诸多痛点。 新能源汽车具有诸多优点&#xff0c;如科技含量高、噪音小、使用成本低等&#xff0c;但 “续航焦虑”“充电焦…

【启明智显分享】ESP32-P4方案4.3寸触摸屏来袭!支持MIPI CSI摄像头接口

家人们&#xff0c;你们一直在等的ESP32-P4方案4.3寸触摸屏它来了&#xff01; 启明智显全新推出的ESP32-P4 4.3寸IPS触摸屏&#xff0c;搭载强大的双核400MHz RISC-V处理器&#xff0c;配备32MB PSRAM和16MB FLASH&#xff0c;分辨率800*480&#xff0c;性能和视觉体验再次突…

国内管理咨询公司哪家落地辅导做的好?

在当今快速变化的市场环境中&#xff0c;企业面临着前所未有的竞争压力与转型挑战。为了在这场没有硝烟的战争中脱颖而出&#xff0c;许多企业开始寻求外部专业力量的帮助&#xff0c;以期通过科学的管理咨询实现战略升级和业绩突破。而在众多的管理咨询公司中&#xff0c;思博…

【力扣】824.山羊拉丁文

问题描述 思路解析 首先把字符串通过空格分隔开来&#xff0c;用一个字符串数组来接收。因为要经常加上字符&#xff0c;所以使用 StringBuilder &#xff0c;最后再进行转化然后检验首字母是否为元音&#xff0c;因为元音字母加上其大小写比较多&#xff0c;所以用一个字符串…

二叉树OJ题

带值的多层递归 对二叉树的递归性质做一个更好的补充。 提到二叉树的递归&#xff0c;我们首相想到的就是二叉树的深度优先遍历&#xff08;根遍历&#xff09;。对于求二叉树结点的个数&#xff0c;同样可以用递归来实现&#xff08;带值的多层递归&#xff09;。 1、二叉树的…

算法刷题Day11: BM33 二叉树的镜像

点击题目链接 思路 转换为子问题&#xff1a;左右子树相反转。遍历手法&#xff1a;后序遍历 代码 class Solution:def Transverse(self,root: TreeNode):if root None:return rootnewleft self.Transverse(root.left)newright self.Transverse(root.right)# 对root节点…

leetcode104.二叉树的最大深度

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,null,2] 输出…

一体式远程IO(三格电子)

一、功能概述 1.1 设备结构 本产品是三格电子研发生产的一体式远程 IO 。通信有 Profinet 、EtherCAT、 EtherNet/IP 三种。IO 接口有&#xff1a;32 路数字量输入、32 路数字量输出 NPN、32 路数字量输出 PNP、16 路数字量输入 16 路数字量输出 NPN、16 路数字量输入 16 路数…

零碳新墅居 | 重新定义零碳美学,阳光新能源打开高端品智生活新可能

当下人们对于居住生活的期待&#xff0c;不再仅限于实用与舒适&#xff0c;更追求绿色、低碳、美观与智能的结合。在这一趋势下&#xff0c;零碳墅居生活正成为引领高端生活风尚的新范式。 11月初&#xff0c;PChouse太平洋家居网携手阳光家庭能源官宣成立的“零碳新墅居设计智…

库存看板在现代企业管理中的作用:如何通过看板系统提升库存流动性与效率?

库存管理是现代企业管理中的重要环节&#xff0c;尤其对于制造业、零售业及电商平台等行业&#xff0c;如何高效、精准地管理库存&#xff0c;避免过度库存积压或库存不足的情况&#xff0c;直接影响到公司的运营成本、资金周转、客户满意度等多个方面。而在众多库存管理方法中…