新闻详情

新闻详情

首页 / 资讯中心 / 详情

folium FloatImage 插件指南:在地图 HTML 画布上叠加浮动图片

发布时间:2026/9/28 13:00:53来源:尧图网络
folium FloatImage 插件指南:在地图 HTML 画布上叠加浮动图片
数据可视化数据分析GIS【免费下载链接】foliumPython Data. Leaflet.js Maps.项目地址https://gitcode.com/gh_mirrors/fo/folium点击查看免费下载导读FloatImage 是 folium 内置插件之一用于在 Leaflet 地图的 HTML 画布上叠加一张悬浮于所有图层之上的图片如罗盘、比例尺、Logo、图例等并通过百分比定位控制其在屏幕中的位置。读完本文你将掌握 FloatImage 的实例化参数、CSS 扩展方式、渲染原理以及如何用仓库中的测试用例验证渲染结果。一、FloatImage 是什么根据 docs/user_guide/plugins.rst 中的官方功能表FloatImage 的作用是Add a floating image in the HTML canvas on top of the map.在地图顶部的 HTML 画布上添加一张浮动图片。它适用于任何需要常驻地图上方的静态图形风向玫瑰图、指北针、版权水印、操作提示图等。与 Marker 或图层不同它不参与地图坐标系定位而是直接挂在 HTML 文档层上因此缩放、平移地图都不会改变它在视口中的相对位置。二、快速上手官方示例原文档 docs/user_guide/plugins/float_image.md 给出的最小可用示例非常简洁核心只需三步创建地图、实例化 FloatImage、把它 add_to 地图import folium from folium.plugins import FloatImage url ( https://raw.githubusercontent.com/ocefpaf/secoora_assets_map/ a250729bbcf2ddd12f46912d36c33f7539131bec/secoora_icons/rose.png ) m folium.Map([-13, -38.15], zoom_start10) FloatImage(url, bottom40, left65).add_to(m) m在 Jupyter Notebook / IPython 环境中最后一行m会调用地图对象的_repr_html_()定义见 folium/folium.py渲染出完整 HTML页面右上left65, bottom40即可看到浮动的玫瑰图。注意FloatImage(...).add_to(m)与m.add_child(FloatImage(...))等价——Map.add_child位于 folium/map.py负责把插件元素挂到地图的 DOM 树中。三、参数详解定位与样式从源码 folium/plugins/float_image.py 的类签名与 docstring 中可以提取出完整参数语义参数类型默认值说明imagestr必填图片的 URL也支持 data URI内联图片或file://协议的本地文件路径bottomint75距视口底部的垂直位置单位是屏幕高度的百分比leftint75距视口左侧的水平位置单位是屏幕宽度的百分比**kwargs--其余关键字参数将作为 CSS 属性直接写到img的样式中例如width300px、opacity0.8这三个参数在__init__中被原样保存为实例属性folium/plugins/float_image.py而kwargs被存入self.css字典def __init__(self, image, bottom75, left75, **kwargs): super().__init__() self._name FloatImage self.image image self.bottom bottom self.left left self.css kwargs定位规则bottom与left均为视口百分比组合起来决定图片锚点位置bottom0贴底、bottom100贴顶left0靠左、left100靠右。典型组合如bottom100, left100表示右上角bottom0, left0表示左下角。定位由内联style块实现position: absolute使图片脱离文档流、以视口为参照#FloatImage_xxx { position: absolute; bottom: 40%; left: 65%; }通过 kwargs 追加 CSSkwargs 适合控制尺寸、透明度、边框等视觉效果例如FloatImage( url, bottom40, left65, width180px, # 限制显示宽度 opacity0.9, # 半透明叠加减少遮挡 border2px solid #333, ).add_to(m)这些键值对会在模板渲染时被循环写入样式块folium/plugins/float_image.py因此凡是合法的 CSS 属性名都可以直接使用。四、渲染原理模板与层级FloatImage 继承自 branca 的MacroElement通过 folium 自定义的 Jinja2Template定义见 folium/template.py渲染两段内容header 宏——生成style块写入定位与 CSS 属性html 宏——生成实际的img标签且带stylez-index: 999999folium/plugins/float_image.pyimg idFloatImage_xxx altfloat_image srchttps://... stylez-index: 999999 /imgz-index: 999999是理解浮动的关键它保证图片几乎总在其他地图控件与图层之上除非页面另有更高层级的元素。同时altfloat_image也为图片提供了无障碍描述文本。关于本地图片与内联图片docstring 明确说明image参数除常规 URL 外还支持data URI将图片 Base64 编码后内联适合离线或单 HTML 文件分发场景file://协议指向本地文件的路径适合在本地调试时使用浏览器同源策略下需注意访问限制。五、测试用例验证渲染结果可断言仓库为 FloatImage 提供了单元测试 tests/plugins/test_float_image.py它验证了两个关键事实可作为你理解渲染输出的依据img标签正确生成测试用Template渲染期望的img结构含src、altfloat_image、z-index: 999999断言其包含在地图的整体渲染输出中style样式正确生成测试以bottom60, left70, width20%实例化断言输出样式块中出现了bottom: 60%;、left: 70%;、width: 20%;即 kwargs 中的 CSS 确实被写入。szt plugins.FloatImage(url, bottom60, left70, width20%) m.add_child(szt) out normalize(m._parent.render()) # 断言 img 与 style 均在输出中注意该测试还调用了m.get_bounds()并断言边界为[[None, None], [None, None]]——说明 FloatImage 不向地图贡献任何数据边界印证了它纯 DOM 层叠加、不参与地理坐标的特性。六、常见问题与注意事项位置数值含义bottom/left是百分比整数非法范围如负值或大于 100不会被源码校验最终由浏览器按 CSS 规则解释建议保持在 0~100。图片遮挡交互由于z-index: 999999极高置于中心位置的大图可能遮挡地图拖拽建议用width控制尺寸、opacity降低遮挡或把图片放到角落。与图层控制器的关系FloatImage 不受 LayerControl 管辖无法像普通图层那样开/关切换如需可切换的图片可考虑使用 ImageOverlay见 docs/user_guide/raster_layers/image_overlay.md。导入路径FloatImage已通过 folium/plugins/init.py 从folium.plugins.float_image导出因此from folium.plugins import FloatImage即可直接使用。七、小结FloatImage 是 folium 中实现地图悬浮图片最直接的方式三个核心参数image、bottom、left加上自由的 CSS kwargs配合z-index: 999999的高层级与position: absolute的视口定位即可在不干扰地图坐标体系的前提下放置常驻图形。从 folium/plugins/float_image.py 的实现与 tests/plugins/test_float_image.py 的断言中我们可以确认它的全部渲染行为都集中在style与img两块输出中行为简单、可预测非常适合需要叠加而非铺设的视觉元素场景。赞分享数据可视化数据分析GIS【免费下载链接】foliumPython Data. Leaflet.js Maps.项目地址https://gitcode.com/gh_mirrors/fo/folium点击查看免费下载相关推荐flet-map 地图叠加图片图层 OverlayImageLayer 完整使用指南在 Flet 地图上叠加 OverlayImage 与 RotatedOverlayImageflet map 地图叠加图片图层 OverlayImageLayer 完整使用指南在 Flet 地图上叠加 OverlayImage 与 RotatedOv前端跨平台桌面应用移动开发Flet 地图叠加图片 OverlayImage 完全指南在 Python 中给地图叠加任意图片图层Flet 地图叠加图片 OverlayImage 完全指南在 Python 中给地图叠加任意图片图层 导读 OverlayImage 是 flet_map 扩前端跨平台桌面应用移动开发Leaflet ImageOverlay 图像叠加层实战指南在指定地理边界上叠加任意图片Leaflet ImageOverlay 图像叠加层实战指南在指定地理边界上叠加任意图片 导读 本文以 Leaflet 官方教程的 ImageOverlay前端数据可视化GIS上一篇PP-OCRv6_medium_det_safetensors实战教程多语言文本检测与工业场景应用全攻略下一篇【亲测免费】 探索时间序列数据库的未来InfluxDB Java 官方客户端库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

DataGrip连OceanBase报错?驱动选型与方言配置全攻略 2026/9/28 13:48:39

DataGrip连OceanBase报错?驱动选型与方言配置全攻略

先说个场景:你刚装好OceanBase,从控制台抄了一段连接串,打开DataGrip新建数据源,填完主机、端口、账号、密码,点“Test Connection”,结果被一句couldnt deduct database type from database product name …

阅读更多 →
微信小程序+Java拍卖系统:高并发库存与状态机实战 2026/9/28 13:48:39

微信小程序+Java拍卖系统:高并发库存与状态机实战

简介:这是一套面向计算机专业本科生的微信小程序毕业设计实战项目,聚焦校园二手教材与书籍拍卖场景,适用于课程设计、期末大作业及毕设选题,特别适合Java后端与小程序前端初学者入门实践。资源包共775个文件,含76个Jav…

阅读更多 →
年终汇报不用愁!5款AI PPT生成工具横评,总有一款适合你 2026/9/28 13:48:32

年终汇报不用愁!5款AI PPT生成工具横评,总有一款适合你

每到年底,职场人最怕的恐怕不是年终总结本身,而是把总结做成PPT这件事。数据要梳理、逻辑要清晰、版式要好看、配色要专业——几页下来,一个晚上就搭进去了。更让人头疼的是,好不容易做完一版,领导一句“换个风格看看”…

阅读更多 →
Claude Code本地化AI协同管线:Blender与Unity深度集成方案 2026/9/28 13:48:32

Claude Code本地化AI协同管线:Blender与Unity深度集成方案

1. 项目概述:这不是一个“插件包”,而是一套可落地的AI协同生产管线我去年夏天开始琢磨一件事:为什么设计师、动画师、技术美术在用AI写提示词时,总要反复切窗口、复制粘贴、手动校验格式、再拖进Blender或Unity里调试&#xff1f…

阅读更多 →
DataGrip连接OceanBase实战:驱动配置与报错排查 2026/9/28 13:48:32

DataGrip连接OceanBase实战:驱动配置与报错排查

用DataGrip连接OceanBase这件事,说难不难,说简单也真没你想的那么简单。我最早踩过的坑就是:打开DataGrip的数据源列表,翻来翻去找不到OceanBase选项,于是顺手选了MySQL,结果要么连不上,要么连上…

阅读更多 →
FreeSWITCH SIP会话恢复机制:高可用架构下的呼叫保持实践 2026/9/28 13:48:20

FreeSWITCH SIP会话恢复机制:高可用架构下的呼叫保持实践

在VoIP运维里,最怕的不是半夜告警,而是天亮才发现一组通话静悄悄断了,用户在投诉。FreeSWITCH作为B2BUA,承载的SIP会话一旦因为进程重启、网络闪断或者宿主机挂掉,整个dialog状态就没了。做了几年呼叫中心,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉