很多 GIS 工具的问题,不是地图画不出来,而是数据、分析、桌面软件、浏览器和 Notebook 被拆成了几套系统。

GeoLibre 的反差是:它不只做一张地图,而是把 GIS 工作区搬进浏览器、桌面、手机和 Jupyter。

你可以拖入 GeoJSON、GeoTIFF、GeoParquet 或 3D Tiles,直接做图层样式、空间 SQL、分析和导出;需要写 Python 时,再把同一个项目接回 Notebook。本文用几分钟讲清楚,它为什么不像一个普通地图组件。

GeoLibre 封面:地图不只是地图

GeoLibre 到底是什么?

GeoLibre 是一个免费、开源、轻量级的云原生 GIS 平台,目标是让开发者在一个工作区里完成地理数据的可视化、探索和分析。

GitHub 当前页面显示,项目约有 4.7k Star、476 个 Fork,采用 MIT 协议。它的技术栈也很有代表性:Tauri v2、React、TypeScript、MapLibre GL JS、DuckDB-WASM Spatial 和 deck.gl。

方案常见体验GeoLibre 的变化
传统 GIS 工具链桌面软件、插件、脚本和数据库分开一个工作区统一组织
纯地图组件能显示地图,但分析能力要自己补地图、数据和处理工具一起工作
GeoLibre浏览器、桌面、手机、Jupyter 都能用同一份项目可以跨端继续

它不是“把地图嵌进网页”这么简单,而是试图把地图变成一个可执行的数据工作台。

先把数据放上来,再开始分析

GeoLibre 的第一层价值,是把各种地理数据入口收进一个 Add Data 工作流:

  • 本地或远程 GeoJSON、GeoParquet、GeoPackage、Shapefile、FlatGeobuf、KML/KMZ、GPX。
  • GeoTIFF、COG、WMS/WFS、XYZ、PMTiles、MBTiles、Zarr、LiDAR、3D Tiles。
  • ArcGIS 服务、OGC API、CSV 坐标文件、地理照片和部分 3D 模型。

浏览器端会利用 DuckDB-WASM Spatial 等能力处理一部分数据,数据加载后进入统一图层状态,再交给 MapLibre、deck.gl 或插件渲染。

GeoLibre 官方截图:3D Tiles 与地图工作区

GeoLibre 趣味创作白板:从数据到地图分析

这不是“只能看地图”的工具

GeoLibre 里真正有技术含量的部分,是地图和分析没有被切开:

空间 SQL 留在地图旁边

SQL Workspace 可以对已经加载的图层、本地文件和远程 URL 执行 DuckDB Spatial SQL,再把查询结果直接加回地图或导出。PostGIS 和 Apache Sedona 也有对应入口。

``sql SELECT * FROM buildings WHERE height > 100; ``

结果不是一张孤立的表,而是可以继续参与样式、选择、属性表和导出流程的图层。

分析工具可以在浏览器里跑

向量处理包括缓冲区、相交、裁剪、空间连接、拓扑检查等;栅格处理覆盖坡度、山影、重投影、重采样、分区统计和光谱指数。部分工具通过 WebAssembly、Turf.js 或 Pyodide 在浏览器端运行,重型流程可以接可选的 FastAPI sidecar。

3D、时间和故事地图也被纳入同一工作区

它支持 3D Tiles、建筑挤出、时间滑块、行星底图、地图动画、视频导出、Story Map 和可嵌入的纯地图模式。官方 NYC Demo 甚至把曼哈顿建筑按建造年份逐步“长”出来,地图不是静态背景,而是可以被时间和数据驱动的场景。

GeoLibre 官方截图:纽约建筑、地铁和时间数据

一个项目,四种形态

GeoLibre 的跨端设计,核心不是分别维护四套产品,而是尽量让同一套 workspace 和 .geolibre.json 项目格式在不同入口之间流转:

  • 浏览器:打开即用,不需要安装,适合快速查看、加载远程数据和试用功能。
  • 桌面端:补上本地文件对话框、MBTiles、本地栅格和项目保存等能力。
  • 手机端:同一代码基础上的 Android 应用,界面适配小屏和触摸操作。
  • Jupyter:通过 geolibre Python 包把完整地图嵌进 Notebook,Python 和地图 UI 双向同步。

GeoLibre 趣味创作白板:浏览器、桌面、手机和 Jupyter 跨端继续

这对程序员的意义是:分析过程可以从 Notebook 回到地图界面,地图上的选择也可以被 Python 读回来,而不是每次都导出一份中间文件再手工拼接。

给开发者的上手路径

最轻量的方式是直接打开 GeoLibre Web,不用安装即可体验。要处理本地文件、保存项目或运行桌面级工作流,可以安装 Windows、macOS 或 Linux 版本。

如果你习惯 Jupyter,官方 Python 包可以这样开始:

``bash pip install geolibre ``

```python from geolibre import Map

m = Map(center=(-100, 40), zoom=4) m.add_geojson("https://example.com/data.geojson", name="Data") m.add_basemap("dark") m ```

还可以把地图状态读回 Python、保存为 .geolibre.json,或者导出包含交互地图的 HTML。对做空间数据教程、可视化原型和分析 Notebook 的开发者来说,这条路径很顺。

它的边界也要看清楚

适合需要谨慎
快速做地图原型、空间分析和数据探索所有数据源都能离线使用
浏览器端处理轻量或中等规模数据超大数据集和重型 GDAL 流程
在 Web、桌面和 Jupyter 间共享项目移动端不具备桌面端全部能力
需要插件、嵌入和自定义 UI 的团队复杂企业权限和生产级数据治理

“本地优先”不等于“所有东西都不联网”。默认底图、远程服务、PGlite/PostGIS 和 Pyodide 的部分运行时仍可能依赖网络;浏览器端本地文件读写、桌面端对话框和重型处理也有能力差异。GeoLibre 更像一个开放的 GIS 工作台,不是对所有专业 GIS 场景的一键替代。

小华的判断

GeoLibre 最值得关注的地方,是它把 GIS 的核心单位从“地图页面”往“可复用的项目工作区”推进了一步:数据可以拖进来,图层可以继续分析,SQL 结果可以回到地图,项目可以跨端打开,Python 也能接入同一份状态。

如果你只是想在网页上放一张底图,它可能有点重;但如果你正在做地理数据产品、空间分析工具、城市可视化、遥感流程或 Jupyter 教程,它提供了一条很完整的开源组合路线。

下一篇可以继续拆它的 .geolibre.json 项目格式、插件 API 和 Python 双向同步,看看怎样把 GeoLibre 嵌进自己的产品或数据分析流程。

项目地址

Logo

一站式 AI 云服务平台

更多推荐