vue3 高德地图标注(飞线,呼吸点)效果

在这里插入图片描述

装下这两个 npm 忘了具体命令了,百度一下就行
“loca”: “^1.0.1”,
“@amap/amap-jsapi-loader”: “^1.0.1”,

<template><div id="map" style="width: 100%;height: 100%;"></div>
</template><script setup>
import AMapLoader from '@amap/amap-jsapi-loader';
import {onMounted, ref, nextTick} from "vue";// const { Loca } = window;const x1 = ref({"type": "FeatureCollection","features": [{"type": "Feature","properties": {"type": 2,"ratio": '事件中?石家庄',"lineWidthRatio": 0},"geometry": {"type": "Point","coordinates": [114.521531,38.048311]}}]}
)
const x2 = ref({"type": "FeatureCollection","features": [{"type": "Feature","properties": {"type": 2,"ratio": '不会吧?',"lineWidthRatio": 0},"geometry": {"type": "LineString","coordinates": [[ // 起点120.1752885,35.9508765],[ // 终点114.521531,38.048311]]}}]}
)const initMap = () => {// AMapLoader.reset()AMapLoader.load({key:"ab15e08b0", // 申请好的Web端开发者Key,首次调用 load 时必填/** 刚开始没有引入下面代码时,会报错: Loca is not defined*  Loca: {version: '2.0.0' // Loca 版本,缺省 1.3.2},而且 JSAPI的version(版本)要和Loca的version(版本)一致才可以,否则也会报错不懂的可以去看官方文档: https://lbs.amap.com/api/loca-v2/intro* */version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15Loca: {version: '2.0.0' // Loca 版本,缺省 1.3.2},plugins:[], // 需要使用的的插件列表,如比例尺'AMap.Scale'等}).then((AMap) => {const { Loca } = window;const map1 = new AMap.Map("map", {resizeEnable: true, // 是否监控地图容器尺寸变化viewMode: '3D',pitch: 48,// 地图俯仰角度,有效范围 0 度- 83 度center:[104.780269, 34.955403], // 地图中心点zoom:5, // 地图显示的缩放级别mapStyle:"amap://styles/grey", // 设置地图的显示样式});// Container: Loca 的核心控制类,可以控制光源、视角变换、图层渲染等。const loca = new Loca.Container({ // 创建一个容器map: map1, // 传入地图实例 还可以这样写: map: map (ES6语法)});// 呼吸点// ScatterLayer: 带有动画效果的图层类型,用于展示散点数据,支持动画效果,如呼吸点、闪烁点等。大地面上的点,可展示三种类型:颜色圆、图标、动画图标const scatter = new Loca.ScatterLayer({ // 创建一个散点图层loca, // 传入容器实例 (相当于把散点图层添加到地图上)zIndex: 10, // 图层层级opacity: 0.6, // 图层透明度visible: true, // 图层是否可见zooms: [2, 22], // 图层显示的缩放级别范围});/** geojson 格式的数据源,一个数据源可以给多个图层同时提供数据。一个geojson数据源可以同时拥有点、线、面的数据类型,每个图层绘制的时候会自动获取 合适的数据类型进行渲染* */// 地点坐标---------------const pointGeo = new Loca.GeoJSONSource({ // 创建一个 GeoJSON 对象// url: 'https://a.amap.com/Loca/static/loca-v2/demos/mock_data/pulselink-china-city-point.json', // 数据源的链接地址,一般是接口地址,返回的数据必须是 geojson 格式data:  x1.value});scatter.setSource(pointGeo); // 给上面创建的散点图层设置数据源scatter.setStyle({ // 设置样式unit: 'meter', // 设置单位为米size: [100000, 100000], // 设置大小范围borderWidth: 0, // 设置边框宽度texture: 'https://a.amap.com/Loca/static/loca-v2/demos/images/breath_red.png', // 设置纹理duration: 2000, // 设置动画时长animate: true, // 设置动画});loca.add(scatter); // 将散点图层(scatter)添加到容器中// 弧线// PulseLinkLayer: 连接飞线图层,可以支持弧度,宽度,过渡色等能力。 并且还支持脉冲动画,可以表达数据的朝向const pulseLink = new Loca.PulseLinkLayer({ // 创建一个弧线图层// loca,zIndex: 10, // 设置图层的层级opacity: 1, // 设置图层的透明度visible: true, // 设置图层是否可见zooms: [2, 22], // 设置图层可见的缩放级别范围depth: true, // 设置是否开启深度检测});// GeoJSONSource: 图层的数据源,可以是本地数据,也可以是远程数据,数据格式必须是 geojson 格式// 线数据---------------const geo = new Loca.GeoJSONSource({ // 创建一个 GeoJSON 对象// url: 'https://a.amap.com/Loca/static/loca-v2/demos/mock_data/data-line-out.json', // 数据源的链接地址,一般是接口地址,返回的数据必须是 geojson 格式data:  x2.value});pulseLink.setSource(geo); // 给上面的弧线图层设置数据源pulseLink.setStyle({ // 设置样式unit: 'meter', // 设置单位为米dash: [40000, 0, 40000, 0], // 设置虚线样式lineWidth: () => { // 设置线宽return [20000, 1000]; // 设置线宽范围},height: (index, feat) => { // 设置高度return feat.distance / 3 + 10; // 设置高度范围},altitude: 1000, // 设置高度smoothSteps: 30, // 设置平滑度speed: (index, prop) => { // 设置速度return 1000 + Math.random() * 200000; // 设置速度范围},flowLength: 100000, // 设置流动长度lineColors: (index, feat) => { // 设置线颜色return ['rgb(255,228,105)', 'rgb(255,164,105)', 'rgba(1, 34, 249,1)']; // 设置线颜色范围},maxHeightScale: 0.3, // 弧顶位置比例headColor: 'rgba(255, 255, 0, 1)', // 设置头部颜色trailColor: 'rgba(255, 255,0,0)', // 设置尾部颜色});loca.add(pulseLink); // 将图层添加到容器中loca.animate.start(); // 开始动画// 点击事件处理const clickInfo = new AMap.Marker({ // 点标记anchor: 'bottom-center', // 设置点标记锚点,可选值:'top-left','top-center','top-right'等详细请看官方文档: https://lbs.amap.com/api/jsapi-v2/documentation#markerposition: [116.396923, 39.918203, 0], // 点标记在地图上显示的位置});clickInfo.setMap(map1); // 将点标记添加到地图上clickInfo.hide(); // 隐藏点标记map1.on("click", function (e) {const feat = pulseLink.queryFeature(e.pixel.toArray());const feat2 = scatter.queryFeature(e.pixel.toArray());console.log('!!!!!!', feat2)if(feat2){ // 点击了呼吸点console.log('点击了')}if (feat) { // 点击了 线clickInfo.show();const props = feat.properties;clickInfo.setPosition(feat.coordinates[1]);clickInfo.setContent(`<div style="text-align: center; height: 20px; width: 150px; color:#fff; font-size: 14px;">${feat.properties.ratio}</div>`);} else {clickInfo.hide();}});/*以下为:样式调试工具,仅用于开发阶段方便调试样式可以将可视化图层添加到调试工具中使用请勿在生产环境中使用* */});
}const companylData = ref([])
const listData = ref([])onMounted(async () => {nextTick( async () => {await initMap();})
})</script><style scoped>
:deep(.arco-btn.arco-btn-size-medium){height: 31px !important;
}
</style>

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

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

相关文章

Cesium 区域高程图

Cesium 区域高程图 const terrainAnalyse new HeightMapMaterial({viewer,style: {stops: [0, 0.05, 0.5, 1],//颜色梯度设置colors: [green, yellow, blue , red],}});

NVIDIA Bluefield DPU上的启动流程4个阶段分别是什么?作用是什么?

文章目录 Bluefield上的硬件介绍启动流程启动流程&#xff1a;eMMC中的两个存储分区&#xff1a;ATF介绍ATF启动的四个阶段&#xff1a; 四个主要步骤&#xff1a;各个阶段依赖的启动文件 一次烧录fw失败后的信息看启动流程综述 Bluefield上的硬件介绍 本文以Bluefield2为例&a…

计算机是如何输入存储输出汉字、图片、音频、视频的

计算机是如何输入存储输出汉字、图片、音频、视频的 为了便于理解&#xff0c;先了解一下计算机的组成。 冯诺依曼计算机的五大组成部分。分别是运算器、控制器、存储器、输入设备和输出设备。参见下图&#xff1a; 一、运算器 运算器又称“算术逻辑单元”&#xff0c;是计算…

SQLI LABS | SQLI LABS 靶场初识

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;SQLI LABS 靶场简介 SQLi-Labs 靶场是一个专门用于学习和测试 SQL 注入漏洞的开源靶场&#xff0c;该靶场提供了多个具有不同漏洞类型和难度级别的 Web 应用程序的环境。这些应用…

Facebook减肥产品广告投放攻略

有不少刚开始投放facebook广告的小伙伴会感到疑惑&#xff0c;为什么别人的减肥产品跑的风生水起&#xff0c;销量羡煞旁人&#xff0c;自己的广告要不就是被拒要不就是没有流量&#xff0c;甚至还可能被封号&#xff0c;如果你也有这样的困扰&#xff0c;那一定要看完这篇文章…

图片颜色通道提取

目录 读取和显示图像分离和合并颜色通道通道分离显示总结 读取和显示图像 import cv2def img_show(name, img):"""显示图片:param name: 窗口名字:param img: 图片对象:return: None"""cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAllWindow…

机器视觉AI场景为什么用Python比C++多?

好多开发者在讨论机在机器视觉人工智能领域的时候&#xff0c;纠结到底是用Python还是C&#xff0c;实际上&#xff0c;Python 和 C 都有广泛的应用&#xff0c;选择 Python而不是 C 可能有以下一些原因&#xff1a; 语言易学性和开发效率 语法简洁&#xff1a; Python 语法简…

基于协同过滤的景区旅游可视化与景区推荐系统(自动爬虫,地点可换)

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍过程展示项目移植每文一语 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 本项目是一个综合性的旅游景区数据管理与分析推荐系统,集成了用…

《深度学习》OpenCV 风格迁移、DNN模块 案例解析及实现

目录 一、风格迁移 1、什么是风格迁移 2、步骤 1&#xff09;训练 2&#xff09;迁移 二、DNN模块 1、什么是DNN模块 2、DNN模块特点 1&#xff09;轻量 2&#xff09;外部依赖性低 3&#xff09;方便 4&#xff09;集成 5&#xff09;通用性 3、流程图 4、图像…

postman变量,断言,参数化

环境变量 1.创建环境变量 正式环境是错误的&#xff0c;方便验证环境变化 2.在请求中添加变量 3.运行前选择环境变量 全局变量 能够在任何接口访问的变量 console中打印日志 console.log(responseBody);//将数据解析为json格式 var data JSON.parse(responseBody); conso…

linux上的smb共享文件夹

需求描述 公司的打印机使用扫描功能的时候&#xff0c;需要发送大量文件。然鹅公司的电脑都是加入了AzureAD的&#xff0c;不能在公司电脑上简单设置共享。好在公司有很多阿里云上的服务器&#xff0c;Linux和Windows的都有&#xff0c;所以就来尝试用阿里云的服务器来进行smb…

科研绘图系列:R语言绘制SCI文章图2

文章目录 介绍加载R包导入数据图a图b图d系统信息介绍 文章提供了绘制图a,图b和图d的数据和代码 加载R包 library(ggplot2) library(dplyr) library(readxl) library(ggpmisc)导入数据 数据可从以下链接下载(画图所需要的所有数据): 百度网盘下载链接: https://pan.baid…

【算法思想·二叉树】用「遍历」思维解题 II

本文参考labuladongsuanfa笔记[【强化练习】用「遍历」思维解题 II | labuladong 的算法笔记] 如果让你在二叉树中的某些节点上做文章&#xff0c;一般来说也可以直接用遍历的思维模式。 270. 最接近的二叉搜索树值 | 力扣 | LeetCode | 给你二叉搜索树的根节点 root 和一个目…

解决新版Android studio不能连接手机的问题

我要说的是一个特例&#xff0c;装了22年的版本AS可以正常连接手机&#xff0c;装了23年以后新版本&#xff0c;AS不能正常连接手机了&#xff0c;但是在CMD控制台可以正常的执行adb命令&#xff0c;并且CMD和AS都是指向D:\android_sdk\platform-tools\adb.exe 一、 为什么会出…

通信工程学习:什么是SDRAM同步动态随机存取存储器

SDRAM&#xff1a;同步动态随机存取存储器 SDRAM&#xff0c;全称为Synchronous Dynamic Random Access Memory&#xff0c;即同步动态随机存取存储器&#xff0c;是一种广泛应用于计算机和嵌入式系统中的内存技术。以下是对SDRAM的详细介绍&#xff1a; 一、SDRAM的定义与特点…

linux线程 | 线程的控制(二)

前言&#xff1a; 本节内容是线程的控制部分的第二个小节。 主要是列出我们的线程控制部分的几个细节性问题以及我们的线程分离。这些都是需要大量的代码去进行实验的。所以&#xff0c; 准备好接受新知识的友友们请耐心观看。 现在开始我们的学习吧。 ps:本节内容适合了解线程…

云轴科技ZStack入选信通院《高质量数字化转型产品及服务全景图》AI大模型图谱

近日&#xff0c;由中国互联网协会中小企业发展工作委员会主办的“2024大模型数字生态发展大会暨铸基计划年中会议”在北京成功召开。会上发布了中国信通院在大模型数字化等领域的多项工作成果&#xff0c;其中重点发布了《高质量数字化转型产品及服务全景图&#xff08;2024上…

前端开发笔记--html 黑马程序员1

文章目录 前端开发工具--VsCode前端开发基础语法VsCode优秀插件Chinese --中文插件Auto Rename Tag --自动重命名插件open in browserOpen in Default BrowserOpen in Other Browser Live Server -- 实时预览 前端开发工具–VsCode 轻量级与快速启动 快速加载&#xff1a;VSCo…

怎么ping网络ip地址通不通

怎么Ping网络IP地址通不通&#xff1f;要检查网络中的IP地址是否连通&#xff0c;可以使用‌Ping命令。Ping命令通过发送ICMP&#xff08;Internet Control Message Protocol&#xff0c;因特网控制消息协议&#xff09;Echo请求报文并等待回应&#xff0c;来判断目标主机是否可…

微知-Mellanox网卡如何导出firmware中的config文件以及文件中有些什么?(ini配置文件,8个区)

背景 Mellanox网卡早期版本以及Engineer simple的DPU支持导出配置文件&#xff0c;该配置文件就是用来告诉firmware的行为。但不是mlxconfig真正设置的文件(mlxconfig -d xxx -e -q应该就是把这个文件读取出来&#xff0c;并且有3个文件&#xff0c;包括默认的&#xff0c;当前…