vue+leaflet示例:热力图(附源码下载)

news/2025/3/25 20:50:02/文章来源:https://www.cnblogs.com/giserhome/p/18792304

demo源码运行环境以及配置

  • 运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。
  • 运行工具:vscode或者其他工具。
  • 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令:
    (1)下载demo环境依赖包命令:npm i
    (2)启动demo命令:npm run dev
    (3)打包demo命令: npm run build:release

示例效果

本篇主要参考leaflet官网热力图插件:
https://leafletjs.com/plugins.html#heatmaps

除此之外,还参照以下博客:
https://www.jianshu.com/p/8cc863c4c085
https://www.cnblogs.com/mengjiaxing/p/7766924.html

  • 核心源码
<template><div id="map" ref="mapDiv"></div><div class="titleContainer center"><span>vue+leaflet示例:热力图</span></div>
</template><script setup>
import { onMounted, reactive, ref } from "vue";
import L from "leaflet";// const mapDiv = ref(null);
let map = null;
//数据
const testData = {max: 108,data: [{lat: 39.62117439,lng: 121.9936396,value: 98,},{lat: 39.61809405,lng: 121.9918268,value: 70,},{lat: 39.62066229,lng: 121.9944071,value: 88,},{lat: 39.62037488,lng: 121.9908595,value: 77,},{lat: 39.61839083,lng: 121.9893449,value: 98,},{lat: 39.61808874,lng: 121.9888359,value: 89,},{lat: 39.61929969,lng: 121.9927034,value: 76,},{lat: 39.6193,lng: 121.9926137,value: 45,},{lat: 39.62334245,lng: 121.9935193,value: 23,},{lat: 39.623184,lng: 121.9931208,value: 44,},{lat: 39.62208411,lng: 121.99343,value: 34,},{lat: 39.62305201,lng: 121.9937288,value: 77,},{lat: 39.62353145,lng: 121.9937485,value: 99,},{lat: 39.62009813,lng: 121.9929025,value: 66,},],
};
//配置
const cfg = {radius: 0.0009,maxOpacity: 0.4,scaleRadius: true,useLocalExtrema: true,latField: "lat",lngField: "lng",valueField: "value",
};
onMounted(() => {// 待加载的 JS 文件数组const files = ["./lib/heatmap/heatmap.min.js","./lib/heatmap/leaflet-heatmap.js",];loadScripts(files, function () {console.log("All scripts loaded");initMap();});
});
const loadScripts = (files, callback) => {if (files.length === 0) {callback();return;}const file = files.shift();const script = document.createElement("script");script.onload = function () {loadScripts(files, callback);};script.src = file;document.head.appendChild(script);
};
const initMap = () => {const heatmapLayer = new HeatmapOverlay(cfg);//图层const baseLayer = L.tileLayer("http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",{attribution: "...",maxZoom: 21,});map = new L.Map("map", {center: new L.LatLng(39.62353145, 121.9937485),zoom: 15,layers: [baseLayer, heatmapLayer],});heatmapLayer.setData(testData);
};
</script><style scoped>
#map {width: 100vw;height: 100vh;
}
.titleContainer {position: absolute;top: 0;background: rgba(0, 0, 0, 0.45);height: 50px;width: 100vw;z-index: 999;font-size: 14px;color: #fff;font-size: 28px;
}
.center {display: flex;flex-direction: column;align-items: center;justify-content: center;
}
</style>

下载源码:GIS之家的学习交流圈

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

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

相关文章

vue+leaflet示例:地图全图以及框选截图导出功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:聚合图功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:结合geoserver利用WFS服务实现图层新增功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:结合geoserver利用WFS服务实现图层编辑功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

IDEA使用Docker插件打包+推送+部署

前提条件:在服务器或者虚拟机中已经安装好了Docker1、确认是否安装插件2、配置SSH链接信息3、构建一个简单的SpringBootDemo工程4、编写一点测试代码 @RestController public class HelloController {@GetMapping("/hello")public String hello(){return "<…

蓝桥真题

有奖问答 这种选择导致分支可以使用递归 我个人觉得洛谷的答案错了,如果按能得到洛谷答案的代码,改成求30题对30道,最多对30道的话,得到的是0,应该把限制条件改为能计算答对10道题的方案,因为最多十道题不是不能达到10道题DFS #include <bits/stdc++.h> using name…

day:29 python接口测试——断言、封装、关联接口

一.request断言 1、if断言 代码: if wb["msg"]=="登录成功!":print("ok") else:print("no")案例:import requests s=requests.Session() url1="http://49.233.201.254:8080/cms/manage/loginJump.do" data1={userAccou…

基于光度立体的复杂结构件表面缺陷检测数据集

为解决非平面零部件缺陷检测时,高低起伏的形貌所形成的阴影或表面反光导致的误报和漏检问题,作者提出了一种基于深度学习和光度立体的新型缺陷检测技术。摘要 为解决非平面零部件缺陷检测时,高低起伏的形貌所形成的阴影或表面反光导致的误报和漏检问题,作者提出了一种基于深…

02_Redis之数据类型及操作

本文介绍redis常用数据类型和相关操作。02_Redis之数据类型及操作一、String类型及操作 是二进制安全的,可以存放任意类型的数据。 # 设置与获取值 set k1 value1 get k1# 设置key对应的值为string 类型的value。如果key已存在,返回0,nx 是 not exist 的意思 setnx k1 value…

解析四款功能强大的GIS工具箱软件

随着GIS技术的不断发展,各类专业的GIS工具箱软件不断涌现,帮助专业人士在空间数据分析、地图可视化、三维建模等方面提供强有力的支持。本文将介绍四款GIS工具箱软件,这几款软件专注于GIS切片和GIS数据处理,适用于多个领域的地理信息数据处理,能够帮助用户高效处理和可视化…

什么是「Agentic 工作流程」?丨社区来稿

摘要分享者:Richard 林旅强(RTE 开发者社区联合主理人)什么是「Agentic 工作流程」?它是一种让 AI 智能代理(Agent)更主动、更灵活、更像人的方式来处理复杂任务的系统。刚才读到了一篇言简意赅的文章(链接在文末),我想就基于以下每一张文中的图示,来说说什么是 Agen…

2025中国生命科学与医疗行业调研报告160+份汇总解读|附PDF下载

原文链接:https://tecdat.cn/?p=41106 中国生命科学与医疗行业正经历深刻变革:政策监管趋严、技术创新加速、全球化竞争加剧,企业需在不确定性中寻找增长锚点。本报告通过数据驱动的分析框架,深度解析行业现状、挑战及未来机遇,为从业者提供战略参考。 本报告汇总解读基于…