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

Vue3+Element-plus+setup使用vuemap/vue-amap实现高德地图API相关操作

首先要下载依赖并且引入

npm安装

// 安装核心库
npm install @vuemap/vue-amap --save// 安装loca库
npm install @vuemap/vue-amap-loca --save// 安装扩展库
npm install @vuemap/vue-amap-extra --save

cdn

<script src="https://cdn.jsdelivr.net/npm/@vuemap/vue-amap/dist/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@vuemap/vue-amap/dist/style.css"></script>
<script src="https://cdn.jsdelivr.net/npm/@vuemap/vue-amap-loca/dist/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@vuemap/vue-amap-extra/dist/index.min.js"></script>

任选其一安装后引入依赖,记得换成自己注册的高德地图安全密钥和key

 npm

import App from './App.vue'
import VueAMap, {initAMapApiLoader} from '@vuemap/vue-amap';
// import VueAMapLoca from '@vuemap/vue-amap-loca';
// import VueAMapExtra from '@vuemap/vue-amap-extra';
import '@vuemap/vue-amap/dist/style.css'
initAMapApiLoader({key: 'YOUR_KEY',securityJsCode: 'securityJsCode', // 新版key需要配合安全密钥使用//Loca:{//  version: '2.0.0'//} // 如果需要使用loca组件库,需要加载Loca
})createApp(App).use(VueAMap)//.use(VueAMapLoca)//.use(VueAMapExtra).mount('#app')

cdn

window.VueAMap.initAMapApiLoader({key: 'YOUR_KEY',
});

老规矩,先上效果图

 

 

每个marker标记点对应图标和数据状态不同

代码

<el-amap:vid="'amap-demo'":zoom="zoom":center="center"style="width: 100%; height: 100%; position: relative"><el-amap-markerv-for="(marker, index) in markers":key="marker.id":position="[marker.lng, marker.lat]":icon="marker.icon"@mouseover="showInfoWindow(index)"@mouseout="hideInfoWindow"></el-amap-marker><el-amap-info-windowv-if="currentInfoWindowIndex !== null":position="[markers[currentInfoWindowIndex].lng,markers[currentInfoWindowIndex].lat,]":visible="infoWindowVisible":offset="[0, -30]"><template #default><div><strong>事故名称:</strong>{{ markers[currentInfoWindowIndex].accidentName }}<br /><strong>事故类型:</strong>{{markers[currentInfoWindowIndex].accidentType == "HSP"? "热源厂": markers[currentInfoWindowIndex].accidentType == "HPPL"? "热电厂": markers[currentInfoWindowIndex].accidentType == "IWHT"? "工业余热": markers[currentInfoWindowIndex].accidentType == "CE"? "清洁能源": markers[currentInfoWindowIndex].accidentType == "PHNW"? "供热一级网": markers[currentInfoWindowIndex].accidentType == "SHNW"? "供热二级网": markers[currentInfoWindowIndex].accidentType == "CHNW"? "庭院供热官网": markers[currentInfoWindowIndex].accidentType == "HES"? "换热站": "单元立杠及入户管"}}</div><el-stepsstyle="width: 200px; height: 300px"direction="vertical":active="markers[currentInfoWindowIndex].accidentStatus == 'IR'? 1: markers[currentInfoWindowIndex].accidentStatus == 'CR'? 2: markers[currentInfoWindowIndex].accidentStatus == 'MA'? 3: 4"><el-step:title="'事故上报 '":description="markers[currentInfoWindowIndex].accidentDesc"/><el-step:title="'确认原因 '":description="markers[currentInfoWindowIndex].reasonDesc"/><el-step:title="'物资到场 '":description="markers[currentInfoWindowIndex].situationDesc"/><el-step:title="'抢修完成 '":description="markers[currentInfoWindowIndex].summaryReportContent"/></el-steps></template></el-amap-info-window><divstyle="position: absolute;right: 0;bottom: 0;width: 120px;height: 130px;background-color: #fff;"><div style="height: 30px; line-height: 30px; text-align: center"><imgstyle="width: 20px; height: 20px; vertical-align: middle"src="../../../public/sgsb.png"/>事故上报</div><div style="height: 30px; line-height: 30px; text-align: center"><imgstyle="width: 20px; height: 20px; vertical-align: middle"src="../../../public/qryy.png"/>确认原因</div><div style="height: 30px; line-height: 30px; text-align: center"><imgstyle="width: 20px; height: 20px; vertical-align: middle"src="../../../public/wzdc.png"/>物资到场</div><div style="height: 30px; line-height: 30px; text-align: center"><imgstyle="width: 20px; height: 20px; vertical-align: middle"src="../../../public/qxwc.png"/>抢修完成</div></div></el-amap>

下面是接口返回的数据格式 

{"errorcode": 0,"message": "success","data": [{"id": 574926636965957,"orgId": "35194607","accidentName": "第一个事故","accidentType": "CE","accidentStatus": "IR","address": "辽宁省抚顺市抚顺县石文镇肖庆江采摘园","areaId": "210000-210400-210421","areaInfo": "辽宁省-抚顺市-抚顺县","cityCode": "210421","lng": 123.932566,"lat": 41.664697,"findTime": 1722499341000,"accidentDesc": "第一个事故描述","reasonDesc": null,"situationDesc": null,"summaryReportContent": null},{"id": 574927337517125,"orgId": "35194607","accidentName": "2","accidentType": "HPPL","accidentStatus": "CR","address": "黑龙江省鹤岗市向阳区南翼街道地矿街","areaId": "230000-230400-230402","areaInfo": "黑龙江省-鹤岗市-向阳区","cityCode": "230402","lng": 130.306295,"lat": 47.338636,"findTime": 1722499511000,"accidentDesc": "2","reasonDesc": "第二个原因描述","situationDesc": null,"summaryReportContent": null},{"id": 574927455924293,"orgId": "35194607","accidentName": "3","accidentType": "IWHT","accidentStatus": "ERC","address": "北京市东城区龙潭街道必胜客(新光明楼店)北京天坛东门站希尔顿花园酒店","areaId": "110000-110100-110101","areaInfo": "北京市-市辖区-东城区","cityCode": "110101","lng": 116.433858,"lat": 39.883466,"findTime": 1722499542000,"accidentDesc": "3","reasonDesc": "33","situationDesc": "第三个情况描述","summaryReportContent": "22"},{"id": 575179564855365,"orgId": "35194607","accidentName": "4","accidentType": "CE","accidentStatus": "ERC","address": "内蒙古自治区锡林郭勒盟西乌珠穆沁旗巴彦花镇","areaId": "150000-152500-152526","areaInfo": "内蒙古自治区-锡林郭勒盟-西乌珠穆沁旗","cityCode": "152526","lng": 118.659128,"lat": 44.532406,"findTime": 1722561086000,"accidentDesc": "4","reasonDesc": "4","situationDesc": "4","summaryReportContent": "第三个总结汇报"},{"id": 577020505301061,"orgId": "35194607","accidentName": "测试","accidentType": "HPPL","accidentStatus": "IR","address": "辽宁省沈阳市新民市前当堡镇码头路","areaId": "210000-210100-210181","areaInfo": "辽宁省-沈阳市-新民市","cityCode": "210181","lng": 122.907173,"lat": 41.756281,"findTime": 1723010535000,"accidentDesc": "测试描述","reasonDesc": null,"situationDesc": null,"summaryReportContent": null}]
}
const data: any = ref([]);
// 地图配置
const zoom = ref(5);
const center = ref([116.397428, 39.90923]); // 初始中心坐标(北京)
const infoWindowVisible = ref(false);
const currentInfoWindowIndex: any = ref(null);
const get_report_list = () => {appAxios.get(`/emergency-repair-report/map?orgId=${orgId}&startTime=${startTime.value}&endTime=${endTime.value}`).then((res: any) => {if (res.data.errorcode == 0) {data.value = res.data.data;}});
};
// 显示信息窗体
function showInfoWindow(index: any) {currentInfoWindowIndex.value = index;infoWindowVisible.value = true;
}// 隐藏信息窗体
function hideInfoWindow() {infoWindowVisible.value = false;
}
const markers: any = ref([]);
watch(data,(newData) => {markers.value = newData.map((item: any) => ({...item,icon:item.accidentStatus == "IR"? "../../../public/sgsb.png": item.accidentStatus == "CR"? "../../../public/qryy.png": item.accidentStatus == "MA"? "../../../public/wzdc.png": "../../../public/qxwc.png",}));},{ immediate: true }
);

数据中的lng和lat对应markers定位点的经纬度来确定位置,其他的数据可以在窗体信息组件中进行自定义设置遍历渲染,其他具体相关配置项可以自行到官网查看地址如下简介 | @vuemap/vue-amap (guyixi.cn) 

注意这里涉及到map遍历的时候接口还没返回数据的异步问题,可以用watch,settimeout及其他方法解决相关问题。第二点是markers数组中的icon配置可以换成自己本地或者是http的url图片再或者其他的图标,按照需求来设置,不设置默认是蓝色水滴样式。

相关文章:

Vue3+Element-plus+setup使用vuemap/vue-amap实现高德地图API相关操作

首先要下载依赖并且引入 npm安装 // 安装核心库 npm install vuemap/vue-amap --save// 安装loca库 npm install vuemap/vue-amap-loca --save// 安装扩展库 npm install vuemap/vue-amap-extra --save cdn <script src"https://cdn.jsdelivr.net/npm/vuemap/vue-a…...

Windows配置开机直达桌面并跳过锁屏登录界面在 Windows 10 中添加在启动时自动运行的应用

目录 Win10开机直达桌面并跳过锁屏登录界面修改组策略修改注册表跳过登录界面 在 Windows 10 中添加在启动时自动运行的应用设置系统级别服务一、Windows下使用sc将应用程序设置为系统服务1. 什么是sc命令&#xff1f;2. sc命令的基本语法3. 创建Windows服务的步骤与示例创建服…...

pythonUI自动化007::pytest的组成以及运行

pytest组成&#xff1a; 测试模块&#xff1a;以“test”开头或结尾的py文件 测试用例&#xff1a;在测试模块里或测试类里&#xff0c;名称符合test_xxx函数或者示例函数。 测试类&#xff1a;测试模块里面命名符合Test_xxx的类 函数级&#xff1a; import pytestclass Test…...

开放式耳机哪个品牌好用又实惠?五大口碑精品分享

如今开放式耳机市场日益火爆&#xff0c;不少知名品牌都在对产品进行升级迭代&#xff0c;那么如何在一众品牌型号中选择到自己最满意的那一款呢&#xff1f;开放式耳机哪个品牌好用又实惠&#xff1f;这就需要更专业的选购攻略&#xff0c;因此笔者专门整理出了专业机构的开放…...

代码随想录算法训练营day39||动态规划07:多重背包+打家劫舍

多重背包理论 描述&#xff1a; 有N种物品和一个容量为V 的背包。 第i种物品最多有Mi件可用&#xff0c;每件耗费的空间是Ci &#xff0c;价值是Wi 。 求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量&#xff0c;且价值总和最大。 本质&#xff1a; …...

WebSocket革新:用PHP实现实时Web通信

标题&#xff1a;WebSocket革新&#xff1a;用PHP实现实时Web通信 在现代Web应用中&#xff0c;实时通信是一个不可或缺的功能。WebSocket作为一种在单个TCP连接上进行全双工通信的协议&#xff0c;它允许服务器主动向客户端推送数据&#xff0c;极大地简化了客户端和服务器之…...

Python教程(十三):常用内置模块详解

目录 专栏列表1. os 模块2. sys 模块3. re 模块4. json 模块5. datetime 模块6. math 模块7. random 模块8. collections 模块9. itertools 模块10. threading 模块11. 加密 模块 总结 专栏列表 Python教程&#xff08;十&#xff09;&#xff1a;面向对象编程&#xff08;OOP…...

Linux 下的进程状态

文章目录 一、运行状态运行队列运行状态和运行队列 二、睡眠状态S状态D状态D状态产生的原因 三、暂停状态T状态t 状态 四、僵尸状态为什么有僵尸状态孤儿进程 一、运行状态 R状态&#xff1a;进程已经准备好随时被调度了。 运行队列 每个 CPU 都会维护一个自己的运行队列&am…...

【设计模式】六大基本原则

文章目录 开闭原则里氏替换原则依赖倒置原则单一职责原则接口隔离原则迪米特原则总结 开闭原则 核心就一句话&#xff1a;对扩展开放&#xff0c;对修改关闭。 针对的目标可以是语言层面的类、接口、方法&#xff0c;也可以是系统层面的功能、模块。当需求有变化的时候&#…...

Selenium网页的滚动

网页滚动功能实现 网页的滚动 如果需要对网页进行滑动操作&#xff0c;可以借助浏览器对象调用execute_script()方法来执行js语句&#xff0c;从而实现网页中的滚动下滑操作。 使用js语法实现网页滚动&#xff1a; # 根据x轴和y轴的值来定向滚动对应数值的距离 window.scrol…...

图算法系列1: 图算法的分类有哪些?(上)

大约在公元9世纪上半叶&#xff0c;来自中亚古国花剌子模的波斯数学家花剌子米(al-Khwarizmi)先后出版了两本对数学界有深远影响的书籍《印度数字算术》与《代数学》​&#xff0c;前者在12世纪被翻译为拉丁文传入欧洲&#xff0c;十进制也因此传入欧洲&#xff0c;最终所形成的…...

零样本学习——从多语言语料库数据中对未学习语言进行语音识别的创新技术

引言 在全球众多的语言中&#xff0c;只有极少数的语言在语音识别领域取得了显著的进展。这种不平衡现象的主要原因是&#xff0c;现有的语音识别模型往往依赖于大量的标注语音数据&#xff0c;而这些数据对于许多语言来说难以获得。 近年来&#xff0c;尽管语音识别技术取得…...

ViewStub的原理

**ViewStub是Android开发中的一个轻量级控件&#xff0c;主要用于懒加载布局以提高应用程序的性能和响应速度。**其原理和工作方式如下&#xff1a; 定义与特点 轻量级与不可见&#xff1a;ViewStub是一个不可见的、不占布局位置的轻量级View&#xff0c;它在初始化时不会实例…...

十一、Spring AOP

十一、Spring AOP 1. AOP概述2. Spring AOP快速⼊⻔2.1 引⼊AOP依赖2.2 编写AOP程序 3. Spring AOP 详解3.1 Spring AOP核⼼概念3.1.1 切点(Pointcut) Around 哪个包3.1.2 连接点(Join Point) 包下面的方法3.1.3 通知(Advice) 就是要执行的方法3.1.4 切⾯(Aspect) 3.2 通知类型…...

【网络】IP的路径选择——路由控制

目录 路由控制表 默认路由 主机路由 本地环回地址 路由控制表的聚合 网络分层 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 路由控制表 在数据通信中&#xff0c;IP地址作为网络层的标识&#xff0c;用于指定数据包的目标位置。然而&#xff0c;仅有IP地址并不足以确…...

Unity动画模块 之 2D IK(反向动力学)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​ 1.什么是IK 反向动力学 IK&#xff08;Inverse Kinematics&#xff09;是一种方法&#xff0c;可以根据某些子关节的最…...

关于kickstart自动安装脚本以及dhcp的设置

我将在rhel7.9内进行本次实验&#xff0c;需要安装并启动图形界面 hostnamectl查看是否有图形界面 没有的话 可以使用yum group list 查看&#xff0c;并安装server with GUI yum group install "server with GUI" -y安装完成后可以使用init 5启动 安装kickstart自…...

AWS云服务器选择最佳区域

2024年&#xff0c;随着全球云计算的持续发展和AWS在全球不断扩展的数据中心网络&#xff0c;选择合适的AWS云服务器区域成为了企业和开发者需要认真考虑的问题。九河云告诉你在做出选择之前&#xff0c;需要考虑以哪些关键因素&#xff1a; 地理位置和用户分布 选择AWS云服务…...

Unity Android端截图保存并获取展示

截屏保存方法 public static IEnumerator ScreenShot(string filePath, string fileName){yield return new WaitForEndOfFrame();Rect rect new Rect(0, 0, Screen.width, Screen.height);Texture2D screenShot new Texture2D(Screen.width, Screen.height, TextureFormat.R…...

linux高级编程——文件IO

linux高级编程——文件IO 标准IO&#xff1a;stdio.h 标准IO&#xff1a;stdio.h IO也就是输入input和输出output&#xff1b; I&#xff1a; 键盘是标准输入设备&#xff0c;默认输入就是指键盘 /dev/input&#xff1b; O&#xff1a; 显示器是标准输出设备&#xff0c;默认输…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...