vue+leaflet笔记之热力图

这篇具有很好参考价值的文章主要介绍了vue+leaflet笔记之热力图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue+leaflet笔记之热力图


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

开发环境

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插件还提供了几个别的方法:文章来源地址https://www.toymoban.com/news/detail-495451.html

方法 说明
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>

到了这里,关于vue+leaflet笔记之热力图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vite+Vue+iClient for Leaflet引入并实现MapV/Eharts第三方可视化库示例

    作者:gaogy 最近很多小伙伴咨询关于基于Vue3框架搭建iClent开发环境并使用Echarts与MapV等第三方可视化库的问题。本文就以iClient for Leaflet为例,在新一代前端框架构建工具Vite与Vue3项目中,演示如何搭建iClent开发环境并使用Echarts与MapV等第三方可视化库。 本文所使用的依赖与配

    2024年02月06日
    浏览(35)
  • 爬虫实战:探索XPath爬虫技巧之热榜新闻

    之前我们已经详细讨论了如何使用BeautifulSoup这个强大的工具来解析HTML页面,另外还介绍了利用在线工具来抓取HTTP请求以获取数据的方法。在今天的学习中,我们将继续探讨另一种常见的网络爬虫技巧:XPath。XPath是一种用于定位和选择XML文档中特定部分的语言,虽然它最初是

    2024年03月21日
    浏览(31)
  • 基于Vue3 + ts + echarts(版本5.X)实现中国地图下钻、地图打点、地图热力图功能

    写在前面: 实现效果图   1.比较重要的部分用 红字 标出  2.安装echats:         3.由于echarts5版本的已经没有自带地图数据了,所以地图数据需要到专门的GEO数据网站中下载。这里提供一个阿里的下载地址:DataV.GeoAtlas地理小工具系列 对于这个工具网站,有一个重点需要说一

    2024年02月09日
    浏览(40)
  • 从0开始python学习-47.pytest框架之解决Template替换无法进行二次处理的问题之热加载

    问题 :当参数为动态参数时,Template替换无法进行二次处理 解决方案 :通过热加载来进行替换 热加载原理 :在代码运行的过程中动态的调用python中的方法达到获得动态参数 可以进行热加载的情况 :yaml文件,随机数,替换后的值进行计算,加密等 示例: 需要热加载的数据

    2024年01月16日
    浏览(27)
  • 【leaflet】1. 初见

    需求 要做游戏地图了,看到大量产品都使用的leaflet,所以开始学习这个。 开发环境 版本号 描述 文章日期 2023-11-09 操作系统 Win10 - 22H2 19045.3570 leaflet 1.9.4 leaflet 是一个 开源 的 JavaScript 库,用于创建 交互式 的地图应用程序。 它提供了一系列的工具和类,用于实现地图的基本

    2024年02月03日
    浏览(34)
  • 一.Leaflet入门

      为什么第一个 GIS 前端开发框架选择 Leaflet。   Leaflet 是一款轻量级,用于移动友好交互式地图的JavaScript库。轻量级的意思就是代码总大小比较小。Leaflet利用HTML5和CSS3在现代浏览器上的优势,同时也可以在旧浏览器上访问。它可以通过大量插件进行扩展,具有漂亮的、

    2024年01月25日
    浏览(28)
  • leaflet基本使用

    目录 创建地图(map) 添加图层(tileLayer) 创建标记(marker) 图标(icon/divIcon) 弹框(bindPopup) options选项 方法 工具提示(bindTooltip) options选项 窗格(pane) 常用方法 options选项   maxZoom:地图最大的缩放等级   minZoom:地图最小的缩放等级   zoom:地图默认的缩放等级   center:地图默认的中心

    2024年02月04日
    浏览(48)
  • Leaflet开发入门

    电子地图已经渗透到O2O、生活服务、出行等领域,传统的GIS也孕育着互联网基因。在国内互联网电子地图领域,百度地图和高德地图较为出色,天地图作为国家地理信息公共服务平台,推出了面向互联网的公众版在线地图服务与API。国内在开放源代码这一方面做得远远不够,

    2024年02月11日
    浏览(40)
  • 实现地图遮罩 leaflet

    在地图中加载的底图是瓦片服务(固定大小的规则矩形),底图的范围很大,铺满了整个div,但是我们的感兴趣的部门可能只是其中一部分,如何在整个屏幕中突出感兴趣的部分-- 地图遮罩 (遮挡图像中不感兴趣的部分)。最常见的用处是突出行政区内部区域。 图1 湖南省遮

    2024年02月14日
    浏览(29)
  • Leaflet 加载高德地图

    在前面的文章中,我们学习了如何使用 Leaflet 创建一个基本的地图。在本文中,我们将学习如何在 Leaflet 中加载高德地图,并结合实际应用构建地图点击事件。 高德地图是一款由高德软件提供的数字地图服务,在国内使用较为广泛。高德地图提供了丰富的地图数据和 API 接口

    2024年03月25日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包