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

【leaflet中实现区块hover突出的伪3d效果】

leaflet-extrusion

一个基于 Leaflet 的 GeoJSON “挤出” 3D 可视化插件,用于将普通矢量要素渲染为带顶面、底面和侧面的立体效果。

功能

  • 支持PolygonMultiPolygonGeoJSON 要素
  • 渲染顶面、底面与侧面,模拟高度与阴影效果
  • 支持鼠标 hover 高亮与位移效果
  • 可自定义颜色、透明度、深度、过渡动画和 hover 行为

安装

引入leaflet-extrusion.js文件即可

当前仓库入口文件为src/leaflet-extrusion.js

使用示例

importLfrom'leaflet'import'./src/leaflet-extrusion.js'constmap=L.map('map').setView([39.9,116.4],12)constgeojson={type:'FeatureCollection',features:[{type:'Feature',geometry:{type:'Polygon',coordinates:[[[116.4,39.9],[116.41,39.9],[116.41,39.91],[116.4,39.91],[116.4,39.9]]]},properties:{}}]}constextrusion=L.geojsonExtrusion(geojson,{color:'#ff6600',depth:24,hoverOffset:14,hoverDebounceMs:80,})extrusion.addTo(map)

实现效果图

API

L.geojsonExtrusion(geojson, options)

创建一个可添加到 Leaflet 地图的L.LayerGroup,用于渲染带挤出效果的 GeoJSON 要素。

  • geojson- 支持FeatureCollectionFeature或纯几何对象。
  • options- 可选配置对象。

返回值:L.LayerGroup

支持的 GeoJSON 类型

  • Polygon
  • MultiPolygon

本插件通过构建顶面、底面和侧面图层来模拟 3D 挤出效果,因此当前仅对多边形几何类型进行可见渲染。

options可选参数

  • color: 顶面填充颜色,默认#0af
  • outlineColor: 顶面描边颜色,默认与color相同
  • baseColor: 底面颜色,默认为color加深版本
  • sideColor: 侧面颜色,默认为color加深版本
  • fillOpacity: 顶面填充不透明度,默认0.8
  • hoverFillOpacity: 鼠标 hover 时顶面不透明度,默认1
  • depth: 底面相对于顶面的像素垂直偏移,默认18
  • hoverOffset: hover 时顶面像素偏移量,默认12
  • hoverDebounceMs: hover 触发防抖时间,默认50
  • weight: 顶面边线宽度,默认2
  • transitionMs: CSS 过渡时间,默认180
  • hover: 是否启用 hover 效果,默认true
  • renderer: Leaflet 渲染器,例如L.svg(),默认使用overlayPane的 SVG
  • baseHoverDarken: hover 时底面颜色加深量,默认-12
  • baseHoverOpacityInc: hover 时底面透明度增量,默认0.08
  • sideHoverDarken: hover 时侧面颜色加深量,默认-12
  • sideHoverOpacityInc: hover 时侧面透明度增量,默认0.15
  • blurRadius: hover 时阴影模糊半径,默认12

实现说明

插件通过以下步骤构建挤出效果:

  1. 解析 GeoJSON 输入,支持FeatureCollectionFeature和纯几何对象。
  2. 将 GeoJSON 坐标转换为 LeafletLatLng
  3. 创建顶层多边形、底层偏移多边形和侧面连接多边形。
  4. 在 hover 时更新样式、颜色和位移,增强立体感。
http://www.jsqmd.com/news/958647/

相关文章:

  • HANDOFF:基于蒸馏互补教师的人形机器人任务空间整体控制
  • 计算机毕业设计之django基于Django的校园二手交易平台
  • 模型部署前必看:用fvcore给你的PyTorch模型做个‘体检’(计算参数量/FLOPs实战)
  • 深圳锡渣回收服务实测评测:深圳,东莞,深圳不良产品回收、深圳尾货库存回收、深圳数据线回收、深圳整场打包处理回收选择指南 - 优质品牌商家
  • RT-Thread串口DMA接收不定长数据,用消息队列搞定485传感器(附完整代码)
  • 如何轻松抓取网页视频?猫抓浏览器扩展让视频下载变得简单
  • 2026年生产能力强的护栏网制造企业排名,邦耀丝网靠谱吗? - myqiye
  • 【前端分享】模块化与组件化:90%的前端开发者都没搞懂的本质区别!
  • 什么维生素白发变黑发
  • 从零到一:在Gazebo仿真中完成机械臂手眼标定(基于ROS Noetic + easy_handeye + aruco)
  • 基于FastApi的介绍与应用
  • 用涂鸦IoT平台零代码方案,5分钟DIY一个能遥控空调电视的万能红外遥控器
  • 缠论分析终极指南:3分钟让K线图开口说话的免费开源插件
  • Figma JSON转换:解锁设计数据编程化处理的创新架构
  • Veo 2企业版定价突变预警(2024Q3最新水位线已抬升17%):技术采购总监紧急应对指南
  • 推荐系统双视图融合技术:稀疏与密集模型协同优化
  • 2026年化妆品电商控价服务评测:品牌控价/拼多多控价/淘宝控价/第三方控价/线上控价/京东控价/化妆品控价/店铺控价/选择指南 - 优质品牌商家
  • 分析CIT(思艾特)的Databricks服务价格贵吗 - myqiye
  • 为什么越来越多企业选即时通讯私有化?核心就两点:安全、可控
  • 2026年招投标信息平台TOP5评测:如何参与政府采购、招投标SAAS、招投标信息平台、招投标大数据、招投标软件选择指南 - 优质品牌商家
  • DAS、小基站、直放站,到底该选谁?企业室内信号覆盖方案一次讲清楚
  • 音频信息传输系统(第四周)
  • 2026年乐山市高新技术企业申报!申报时间、认定条件、办理流程、补贴奖励全明细
  • APK安装器:在Windows上直接运行安卓应用的革命性解决方案
  • 保姆级教程:用Arduino+安信可NF-02-PA模组(Si24R1)快速搭建双向无线通信,代码开源
  • 端到端自动驾驶:颠覆传统架构,驶向AI原生驾驶时代
  • Moneta亿汇:用标准方式看外汇领域风控思路,更容易形成稳定判断
  • 2026年沈阳靠谱的柱状干冰批发厂家推荐 - mypinpai
  • 从SATA到PCIe 4.0:一张图看懂硬盘接口的‘公路’与‘交规’进化史
  • 2MW大功率虚拟同步发电机惯量与阻尼并网逆变仿真研究(Simulink仿真实现)(Simulink仿真实现)