vue+leaflet笔记之热力图

news2024/9/29 1:15:53

vue+leaflet笔记之热力图

文章目录

  • vue+leaflet笔记之热力图
    • 开发环境
    • 代码简介
      • 插件简介与安装
      • 使用简介
    • 详细源码(Vue3)

本文介绍了Web端使用 Leaflet开发库展示热力图方法 (底图来源:天地图),结合leaflet.heat插件可以很容易的做出热力图,通过调整其配置参数可以优化热力图的显示,以达到最佳的可视化效果,显示效果如下图所示。


开发环境

Vue开发库:3.2.37 & Leaflet开发库:1.9.3

Leaflet主要插件:leaflet.heat


代码简介

插件简介与安装

Leaflet.heat是 一个小巧,简单,快速的Leaflet热图插件。

官方文档 https://github.com/Leaflet/Leaflet.heat

# 插件安装
npm i leaflet.heat
# 引入热力图插件
import 'leaflet.heat'

使用简介

let heatDataList = []
// 构造热力图数据
HeatData.features.forEach((v) => {
    // 纬度、经度、阈值
    let group = [v.properties.lat, v.properties.lon, v.properties.valve]
    heatDataList.push(group)
})
// 生成热力图图层,并添加到地图中
let heat = L.heatLayer(heatDataList, {
    radius: 12, 
    minOpacity: 0.2,
    gradient: { // 自定义渐变颜色,区间为 0~1 之间(也可以不指定颜色,使用默认颜色)
      '0.2': "#00f",
      '0.3': "#0ff",
      '0.5': "#0f0",
      '0.7': "#ff0",
      '1': "#f00"
    }
}).addTo(map);

此外,Leaflet.heat插件还提供了几个别的方法:

方法说明
setOptions(options)设置新的热力图heatmap属性并重新绘制
addLatLng(latlng)向热力图heatmap动态添加数据并重新绘制
setLatLngs(latlngs)重置热力图heatmap数据并重新绘制
redraw()重绘热力图

详细源码(Vue3)

<template>
  <div class="app-contain">
    <!-- leaflet 地图容器 -->
    <div id="myMap"></div>
  </div>
</template>

<script setup>
// 引入热力图数据点状geojson
import HeatData from '/@/assets/mapData/heatData.json'
// 引入样式
import { onMounted } from 'vue'
import L from 'leaflet';
import 'leaflet/dist/leaflet.css'
// 热力图
import 'leaflet.heat'
// 天地图TK
let tdtKey = 'YOURS_TK'
const initMap = () => {
  // 影像地图
  const sourceMap = L.tileLayer(`https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}`)
  // 天地图注记
  const tiandituText = L.tileLayer(`http://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${tdtKey}`)
  const layers = L.layerGroup([sourceMap, tiandituText])
  let map = L.map('myMap', {  //需绑定地图容器div的id
    center: [25.67052, 121.99804], //初始地图中心
    zoom: 12, //初始缩放等级
    maxZoom: 20,
    minZoom: 2,
    zoomControl: true, //缩放组件
    attributionControl: false, //去掉右下角logol
    scrollWheelZoom: true, //默认开启鼠标滚轮缩放
    // 限制显示地理范围
    maxBounds: L.latLngBounds(L.latLng(-90, -180), L.latLng(90, 180)),
    layers: [layers] // 图层
  })
  // 添加比例尺要素显示
  L.control.scale({ maxWidth: 200, metric: true, imperial: false }).addTo(map)
  /** 热力图 */
  let heatDataList = []
  HeatData.features.forEach((v) => {
    let group = [v.properties.lat, v.properties.lon, v.properties.valve]
    heatDataList.push(group)
  })
  // 生成热力图图层,并添加到地图中
  let heat = L.heatLayer(heatDataList, {
    radius: 12, minOpacity: 0.2,
    /*
    gradient: { // 自定义渐变颜色,区间为 0~1 之间
      '0.2': "#00f",
      '0.3': "#0ff",
      '0.5': "#0f0",
      '0.7': "#ff0",
      '1': "#f00"
    }
     */
  }).addTo(map);

}
onMounted(() => {
  initMap()
})
</script>

<style scoped>
#myMap {
  width: 92vw;
  height: 92vh;
}
</style>

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

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

相关文章

旧系统重构遇到的种种问题

首先我将原来springboot版本升级到2.7.9&#xff0c;spring的docker分层和启动受到了影响&#xff0c;这个在docker镜像大小问题已经讲过&#xff0c;不再赘述&#xff0c;因为维护的人变成为一个人&#xff0c;因此我需要将各代码的版本进行统一&#xff0c;方便维护。 5 sun.…

数据治理(数据模型,数据规范,数据安全,数据成本,元数据,数据质量等)

数据治理是什么?为什么要做数据治理?关于数据治理我们需要做什么? 数据治理无论是在数仓建设过程中还是数仓建设完成之后都是及其重要的,是数据部门基础建设的必经之路,是降本提效,形成企业数据资产的关键一环 一 数据质量管理 1.1 数据质量基本概念 ●数据质量管理(Dat…

【Java-SpringBoot+Vue+MySql】Day3.1-SpringBoot Web开发

目录 前期回顾——SpringBoot与Maven 一、web入门 1、知识点密集区 &#xff08;1&#xff09;spring web依赖 &#xff08;2&#xff09;控制器 ​ (3)路由映射 &#xff08;4&#xff09;URL映射 &#xff08;5&#xff09;Method匹配​编辑 &#xff08;6&#xff09…

一种基于FPGA的雷达综合显示模块技术方案

一、项目整 这是我们做过的一个项目&#xff0c;若有需求&#xff0c;请联系我。开放PCB和软件技术。 以FPGA为核心&#xff0c;开发设计具有多路图像/视频采集、处理、传输、显示等功能的嵌入式视频模块。可对多路SerDes接口输入的高速串行视频流数据进行解析&#xff0c;将…

NSSCTF MOBILE [SWPU 2019]easyapp 详细题解

文章目录 一. 前言二. 安装安卓SDK三. 安装安卓模拟器(推荐夜神模拟器)四. 安装frida和objection五. 解题过程六. 总结 一. 前言 题目地址:[SWPU 2019]easyapp大佬题解[SWPU 2019]easyapp pwjcw的WriteUp 大佬的题解很简单,直接hook就可以看到返回值,但是我看了半天没看明白是…

通过源码分析为什么不推荐使用Executors线程池

线程池是 Java 并发编程中不可缺少的一部分。JDK 提供了一个方便快捷的线程池工具类 Executors&#xff0c;提供了多种创建线程池的静态方法&#xff0c;但是在实际使用中&#xff0c;我们不建议直接使用 Executors 提供的线程池工具类。本篇博客将通过分析 Executors 源码&…

【高性能计算】基于K均值的划分聚类实验

【高性能计算】基于K均值的划分聚类实验 实验目的实验内容实验步骤1、k均值聚类算法1.1 k均值聚类算法的基本思想1.2 k均值聚类算法的聚类过程1.3 k均值聚类算法的算法叙述 2、使用Python语言编写k均值聚类算法的源程序代码并分析其分类原理2.1 读取文件数据并进行可视化2.2 利…

推荐系统中的EE算法

人生中有很多选择问题&#xff0c;当每天中午吃饭的时候&#xff0c;需要选择吃饭的餐馆&#xff0c;那么就面临一个选择&#xff0c;是选择熟悉的好吃的餐馆呢&#xff0c;还是冒风险选择一个没有尝试过的餐馆呢。同样的&#xff0c;推荐系统处处也面临着这样的选择&#xff0…

操作系统 复习-计算题

一. 计算题&#xff08;共5题&#xff0c;100分&#xff09; 1.(计算题) 假设有4个进程需要在单CPU上运行&#xff0c;它们的执行时间如下表所示&#xff1a; 进程ID执行时间P18P25P32P44 现在我们需要按照抢占式优先级调度算法来安排这些进程的执行顺序。其中&#xff0c;进…

云原生之深入解析Kubernetes应用包管理器Helm的保姆级教程和实战

一、Helm 简介 ① 什么是 Helm&#xff1f; 我们可以将 Helm 看作 Kubernetes 下的 apt-get/yum&#xff0c;Helm 是 kubernetes 的包管理器&#xff0c;Helm 仓库里面只有配置清单文件&#xff0c;而没有镜像&#xff0c;镜像还是由镜像仓库来提供&#xff0c;比如 hub.dock…

【新星计划·2023】Linux内核、发行版讲解,它们有什么区别?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、Linux内核版 二、Linux发行版 1、Debian 2、Slackware 3、Red Hat 4、Gentoo 三、内核版和发行版的区别 1、内核版 2、发行…

【Java高级语法】(十一)枚举类:还在因为使用了魔法数而被老大怼吗,一起来看看枚举器的作用吧!~

Java高级语法详解之枚举类 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用&#x1f50d; Enum类的常用方法 4️⃣ 特征5️⃣ 应用场景&#x1f33e; 总结 1️⃣ 概念 Java枚举类&#xff08;Enumerator&#xff09;是在Java 5中引入的新特性&#xff0c;以提供一种更好的方式来表示固定…

TestOne自动化测试日志自动分类算法,帮助用户快速处理执行错误!

自动化测试的每次执行&#xff0c;都会产生大量的日志信息。特别是当执行发生错误&#xff0c;比如数据库异常、通讯异常等情况的时候&#xff0c;大量执行的自动化测试用例会报错。 实际上&#xff0c;很多错误的类型是比较类似的&#xff0c;但由于测试用例的数量很大&#x…

Goby 漏洞发布|泛微E-office协同办公系统 download.php 文件 filename 参数文件读取漏洞

漏洞名称&#xff1a;泛微E-office协同办公系统 download.php 文件 filename 参数文件读取漏洞 English Name&#xff1a;maxView Storage Manager dynamiccontent.properties.xhtml RCE CVSS core: 5.0 影响资产数&#xff1a;4971 漏洞描述&#xff1a; 泛微E-office协同…

餐饮点餐外卖小程序软件开发

餐饮点餐外卖小程序是一种基于微信平台的&#xff0c;提供在线点餐、外卖配送等服务的应用程序。以下是可能有助于餐饮点餐外卖小程序软件开发的功能&#xff1a; 商品展示&#xff1a;提供菜品分类、搜索、详情等功能&#xff0c;让用户可以方便快捷地查看商品信息。 …

研发效能平台的“双流”模型

本文摘于《软件研发效能权威指南》——第 9 章 核心观点 开发人员在多个“单点式”工具平台之间的来回切换是很耗费时间和精力的。“一站式”是指把研发各个环节的软件工程能力集成在一个统一的平台上&#xff0c;对新人友好&#xff0c;对老人提效。“一键式”是指让研发工程…

【流光溢彩】物联网入门 - ESP8266 + WS2812B 制作流光溢彩灯带

一、硬件准备 ESP8266 模块 x1WS2812B 灯带&#xff08;60/米&#xff0c;根据显示器四周长度买即可&#xff09; x1杜邦线 若干DC 电源 x1 二、软件准备 1. ESP8266 串口驱动 一般购买详情页都会有写&#xff0c;没有就找商家要一个。 一般是 CH340 或者 CP2102&#xff0c…

在 C4D 和 Redshift 中设置程序变形鸡尾酒动画

今天瑞云渲染小编给大家带来动画设计师 Victor V. 分享的 Pick Your Weapon 项目背后的工作流程&#xff0c;展示了 Cinema 4D 工作流程&#xff0c;并解释了动画是如何在 Redshift 中渲染的。 介绍 我是 Victor&#xff0c;我是居住在意大利的智利动画设计师&#xff0c;一年…

Xcode 14.3.1 (14E300c) 下载 - Apple 平台 IDE

Xcode 14.3.1 (14E300c) 下载 - Apple 平台 IDE Command Line Tools for Xcode 14, tvOS 16 & watchOS 9 Simulator Runtime 请访问原文链接&#xff1a;https://sysin.org/blog/apple-xcode-14/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页…

基于Confluent Kafka部署Kafka Connect集群,Kafka Connect集群加载debezium插件

基于Confluent Kafka部署Kafka Connect集群&#xff0c;Kafka Connect集群加载debezium插件 一、下载Confluent Kafka二、配置文件connect-distributed.properties三、启动脚本connect-distributed四、启动Kafka Connect集群五、加载debezium插件六、总结和延伸 一、下载Conflu…