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

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>

相关文章:

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

装下这两个 npm 忘了具体命令了&#xff0c;百度一下就行 “loca”: “^1.0.1”, “amap/amap-jsapi-loader”: “^1.0.1”, <template><div id"map" style"width: 100%;height: 100%;"></div> </template><script setup> …...

程序员成长秘籍:是迈向管理巅峰,还是深耕技术架构?

专业在线打字练习平台-巧手打字通&#xff0c;只输出有价值的知识。 一 管理和架构 做技术的同学一般有两条职业发展路径&#xff0c;横向的管理路线和纵向的技术路线。管理路线对应的是管理岗&#xff0c;讲究的是排兵布阵&#xff0c;通过各种资源的优化配置发挥价值。技术路…...

xargs的参数及常用命令

1. xargs 命令简介 xargs 是一个非常有用的工具&#xff0c;它用于从标准输入&#xff08;stdin&#xff09;构建和执行命令行。xargs 可以将标准输入中以空格或换行符分隔的数据&#xff0c;转化为命令的参数传递给其他命令。 使用场景&#xff1a; 当某些命令不支持使用管…...

FLASK 数据库建立以及部署和表的创建

首先安装flask-sqlalchemy db SQLAlchemy(app) 一 Mmeber、User模型类的创建 # coding: utf-8 from app import db, appclass Member(db.Model):__tablename__ memberid db.Column(db.Integer, primary_keyTrue)membername db.Column(db.String(100), uniqueTrue, index…...

微信小程序的面试题

简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch() 区别 &#xff1f; wx.navigateTo() : 保留当前页面&#xff0c;跳转到应用内的某个页面。但是不能跳到 tabbar 页面 wx.redirectTo() : 关闭当前页面&#xff0c;跳转到应用内的…...

udp c语言实现组播的例子

一、组播与广播的区别 1、组播地址和广播地址是不同的概念 组播地址&#xff1a;用于将数据包发送到一组特定的接收者&#xff0c;只有加入该组播地址的设备才能接收数据。它提高了网络效率&#xff0c;因为发送者只需发送一份数据。 广播地址&#xff1a;用于将数据包发送到…...

ffmpeg面向对象——AVInputFormat与URLProtocol啥关系

《ffmpeg面向对象-rtsp拉流相关对象》和《ffmpeg面向对象——拉流协议匹配机制探索》探索过了输入格式匹配和底层协议匹配&#xff0c;且ffmpeg拉流是先是匹配输入格式——抽象为AVInputFormat类&#xff0c;然后再匹配url协议类——抽象为URLProtocol类。 它们是啥关系&#…...

【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油&#xff01;二叉搜索树 大家好&#xff0c;这里是店小二&#xff01;今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树&#xff0c;可以看作是对传统二叉搜索树的优化版本。如果你对数据结…...

中级软考软件设计师真题+模拟题+课件讲解+机考讲解模拟+笔记分享

软考真题分享 下载链接⬇️⬇️&#xff1a; 下载链接...

MySQL—视图

前言&#xff1a; 视图是一个虚拟的表&#xff0c;是基于一个或多个基本表或其他视图的查询结果集。视图本身不占据物理储存空间&#xff0c;仅仅只是一个查询的逻辑表示&#xff0c;物理上依赖于数据表的数据。 视图具有简单&#xff0c;安全&#xff0c;逻辑数据独立&#…...

鸿蒙OS启动流程

启动流程(基于openharmony4.1) 系统上电加载内核后&#xff0c;按照以下流程完成系统各个服务和应用的启动&#xff1a; 内核加载init进程&#xff0c;一般在bootloader启动内核时通过设置内核的cmdline来指定init的位置。init进程启动后&#xff0c;会挂载tmpfs&#xff0c;…...

服务器数据恢复—EMC存储RAID5磁盘阵列数据恢复案例

服务器数据恢复环境&#xff1a; 一台EMC某型号存储设备&#xff0c;该存储中有一组由12块&#xff08;包括2块热备盘&#xff09;STAT硬盘组建的raid5阵列。 服务器故障&#xff1a; 该存储在运行过程中突然崩溃&#xff0c;raid瘫痪。数据恢复工程师到达现场对故障存储设备进…...

使用 `netcat`(nc)工具进行TCP数据发送和接收

Netcat&#xff08;通常缩写为nc&#xff09;是一个功能强大的网络工具&#xff0c;常被称为“瑞士军刀”的网络工具。它用于在网络上进行各种操作&#xff0c;比如读写网络连接、调试和分析网络服务等。以下是关于Netcat的一些详细介绍&#xff1a; ### 主要功能 1. **TCP/U…...

Linux虚拟化技术嬗变综述

在信息技术飞速发展的今天&#xff0c;虚拟化技术已经成为数据中心、云计算和企业IT基础设施中不可或缺的一部分。Linux操作系统作为开源和灵活的代表&#xff0c;在虚拟化技术的发展中扮演了重要角色。本文将综述Linux虚拟化技术的演变&#xff0c;探讨其优势、应用场景&#…...

.NET 通过C#设置Excel工作表的页面设置

Excel文件数据准备就绪并需要以报告形式呈现时&#xff0c;调整Excel文件的页面设置变得尤为重要&#xff0c;不仅关乎文档的专业外观&#xff0c;还直接影响到打印或电子分享时的可读性和实用性。通过C#来自动化这一过程&#xff0c;不仅可以节省大量手动配置的时间&#xff0…...

Excel日期导入数据库变为数字怎么办

在Excel导入到数据库的过程中&#xff0c;经常会碰到Excel里面的日期数据&#xff0c;导进去过后变成了数字。 如下图&#xff1a; 使用navicate等数据库编辑器导入数据库后&#xff1a; 原因分析&#xff1a;这是因为日期和时间在excel中都是以数字形式存储的&#xff0c;这个…...

SSL---SSL certificate problem

0 Preface/Foreword 0.1 SSL certificate problem 开发过程中&#xff0c;gitlab-runner连接gitlab时候出现SSL 证书问题。 场景&#xff1a;公司的gitlab runner服务器引入了SSL证书&#xff0c;每年都会主动更新一次。当前的gitlab-runner运行在PC机器上&#xff0c;但是g…...

linux tar 打包文件去掉文件所在路径

一、准备目录 /root/tmp/images /root/tmp/images2 执行命令打包目录/root/tmp/images 到 /root/tmp/images.tar.gz 再解压到/root/tmp/images2 cd /root/tmp/images && tar -cvzf images.tar.gz * && mv images.tar.gz /root/tmp/ tar -C /root/tmp/image…...

MQ快速入门【详细】个人笔记 讲解通俗易懂

1.同步通讯和异步通讯 同步通讯&#xff1a;如果举个例子来说&#xff0c;同步通讯就像是两个人在打电话&#xff0c;一方说的话&#xff0c;能够立马传给另一方&#xff0c;消息的时效性非常高&#xff0c;但是相对的&#xff0c;只能是给一个人通讯&#xff0c;如果这个时候&…...

react实现实时计时的最简方式

js中时间的处理&#xff0c;不借助于moment/dayjs这样的工具库&#xff0c;原生获取格式化的时间&#xff0c;最简单的实现方式可以参考下面这样。 实现效果 代码实现 封装hooks import { useState, useEffect } from "react";export function useCountTime() {c…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...