夜雨聆风学习资料网

ARTICLE · 1076536

【Geolibre】开源GIS软件介绍

【Geolibre】开源GIS软件介绍

装一套桌面 GIS,往往先卡在环境和安装权限上。教学机、临时电脑和现场平板都不适合重装一套完整软件,数据也未必能上传到别人的服务器。

GeoLibre 走的是另一条路。它是免费开源的轻量 GIS 平台,浏览器、桌面、手机和 Jupyter 都能打开同一套工作台。站点是 geolibre.app,仓库是 opengeos/GeoLibre。许可证为 MIT,作者是 Qiusheng Wu,仓库创建于 2026 年 5 月。截至本文核对,GitHub 约 6700 star,最新发布为 v2.8.0(2026-08-27)。

01内置各种星球贴图

数据管理catalog与图层

02多端适配

官方入门页把用法收成几条入口,工程文件统一是 .geolibre.json。网页里做的图,可以拿到桌面或笔记本里继续打开。

入口
适合做什么
明显限制
网页
看图、加 URL 图层、试插件
本地对话框、MBTiles、工程存盘不在网页里
桌面
本地栅格、本地 MBTiles、存开工程
Mac App Store 沙箱版会砍掉一部分能力
手机
触控查看与野外定位
侧边 Python 引擎不在移动端
Jupyter / R
笔记本里嵌整套界面
需要对应内核来托管

网页版地址是 web.geolibre.app。桌面安装包覆盖 Windows、macOS 和 Linux,并上架了 Microsoft Store、Mac App Store、Homebrew 与 winget。Android 在 Google Play,iOS 在 App Store,另有 Chrome 扩展用来打开网页上遇到的数据。

Mac App Store 版是沙箱构建,会去掉 Python 侧引擎、本地 Jupyter、Earth Engine 登录和外部插件安装。要这些能力,用 Homebrew 或 DMG。

笔记本侧的公开安装只有两行。

pip install geolibre
conda install -c conda-forge geolibre

Python 包装的是整套界面,嵌在笔记本单元格里,状态经 .geolibre.json 双向同步,界面里的改动可以读回脚本。R 包走 GitHub 开发版 pak::pak("opengeos/geolibre-r"),嵌在 RStudio、Quarto、R Markdown 和 Shiny 里。

官方快速开始是这几行。先在单元格里显示地图,再在后续单元格里查询。

from geolibre import Map

m = Map(center=(-100, 40), zoom=4)
m.add_geojson("https://example.com/data.geojson", name="Data")
m.add_cog("https://example.com/dem.tif", name="DEM", colormap="terrain")
m

add_geojson 与 add_cog 把远程数据加进当前工程。本地 GeoTIFF 只在内核能把它提供给页面时可用。Colab 的代理不保证 COG 所需的分段读取,那里会改走内核里生成的 PNG 瓦片。工程要长期复用,仍应写托管地址。

读回视图与存盘:

proj = m.to_project()
center = proj["mapView"]["center"]
m.save_project("my-map.geolibre.json")

to_project 让脚本和界面共用一份工程,默认会抹掉密钥和令牌。本机私有文件要保留凭据时,再传 keep_credentials=True。会话期的本地栅格在重开工程时不会自动恢复。

03软件架构

官方仓库把同一套界面分成几层。主应用在 apps/geolibre-desktop,工程用 npm workspaces 组织,网页、桌面和手机共用这份界面。

层
公开职责
你能感知到的结果
MapLibre GL JS
地图、底图、图层顺序
平移、旋转、地形与符号化
DuckDB-WASM Spatial
浏览器内读数与空间 SQL
多种矢量格式进属性表
deck.gl
大体量与三维绘制
点云、3D Tiles 一类视图
Tauri v2
桌面与移动外壳
本地对话框、存盘、定位

Whitebox 工具箱编成 WebAssembly 后在本机执行,网页构建不必为转换和 Whitebox 再起一个 Python 进程。栅格全套工具和可选的 GeoPandas 引擎才会用到侧边服务,矢量默认仍在浏览器里计算。浏览器内存不够时,再换桌面侧引擎。

网页生产包是 Vite 的静态文件,Docker 镜像用 nginx 托管。镜像里还可以反代一个 Python 侧服务,路径在 /sidecar。侧服务只读写允许的目录,官方镜像默认根目录是 /data。PostGIS 目标主机也要显式放行,不配置允许列表时,侧服务会拒绝外连数据库。

04数据默认留在本机会话

官方说明写得很具体:网页版是静态站点,加载的数据在浏览器会话里处理。只有你主动添加远程地址,或明确分享工程,数据才会离开本机。

这不等于永远断网。底图、在线服务、地理编码、协作和 AI,都会按你的操作去访问网络。AI 助手默认关闭,要自己的 API 密钥才会启用,可选服务商包括 Google Gemini、Anthropic 和 OpenAI。它把自然语言转成 SQL、符号化或加减数据,操作走应用本身,可以撤销。叙述仍要对照属性表。

敏感数据先分两步处理。只在本机查看时,用网页或桌面,不要点分享。课堂或内网要协作,用可自托管的分享服务。v2.5.0 起,分享不必绑官方托管。

05云原生格式直接当图层

添加数据覆盖常见服务和现代格式。服务侧有 XYZ、WMS、WFS、WMTS、ArcGIS 和 STAC,文件侧有 GeoParquet、FlatGeobuf、PMTiles、Zarr、COG 和 GeoTIFF,三维侧有 3D Tiles、LiDAR 和高斯泼溅。库可以接 DuckDB,桌面还可以接 PostgreSQL。

矢量可在属性表里查看和编辑,字段计算、统计和图表都在表侧。导出常见目标包括 GeoJSON、GeoParquet、Shapefile、GeoPackage 和 CSV。

符号化覆盖分类、分级、表达式、热力和聚类,图层可分组、可排序,并支持撤销。v2.5.0 起可导入 QGIS 的 .qgs、.qgz,也可导入 ArcGIS Pro 的 .aprx、.mapx。图层、分组、可见性、顺序、样式和视图会重建,跳过的图层会逐条说明原因。导入后仍要抽查样式和坐标系。

地球不是唯一底图,月球、火星以及更多天体底图都可以切换,距离和面积按当前天体的椭球计算。官方演示页有 3D Tiles 和曼哈顿建筑年代示例,时间滑块可按建造年份播放。

06处理工具跟在浏览器里

Processing 菜单里有 Whitebox 工具箱,官方口径是 1000 余 项地学处理,范围包括矢量、栅格、遥感、水文、地形、LiDAR、转换、网络和投影。工具在本机浏览器里执行,不需要先装 Python,也不把数据送到处理服务器。网页、桌面和 Android 都能用这套工具箱。

另有 GeoLibre 自己的矢量与栅格菜单。缓冲、裁剪、叠加、连接和简化在矢量侧,坡度、坡向、晕渲、分区统计和栅格计算在栅格侧,光谱指数含 NDVI、NDWI 和 EVI。矢量工具可在浏览器内完成,栅格工具有客户端回退,部分栅格路径仍可能用到桌面侧引擎。大栅格先缩小范围再跑。

SQL 工作区对已加载图层写空间 SQL,引擎包括 DuckDB Spatial,也可换浏览器内的 PostGIS 或 Apache Sedona。结果可加回地图,或导出为 CSV、GeoParquet。

下面只是用法示意,不是软件内部实现。

SELECT name,
       ST_Area(geom) AS area
FROM buildings
WHERE ST_Intersects(
  geom,
  ST_GeomFromText('POLYGON((...))')
);

它解决的是临时量算,限制是浏览器内存。全市级库和长事务编辑,仍应留在 PostGIS。

07出图仍靠桌面 GIS

工作台具备 GIS 分析员熟悉的家具:图层面板、样式、属性表、测量、书签和打印。插件市场可装外部插件,内置项包括卷帘、街景、时间滑块、Overture 和 LiDAR。故事地图可滚动播放,也可导出独立 HTML。实时协作仍是早期版本,多人同改前先在小范围试冲突。

野外可采集点、线、面,可用 GPS,也可在地图上点选。Android 支持按 GNSS 频率输出位置。

这些能力适合四类活。

  • 教学演示,省掉每人一台完整桌面环境
  • 中小数据探索,格式和投影先在本地看清
  • 云原生数据路演,GeoParquet、PMTiles、COG、STAC 直接打开
  • 笔记本交互地图,Python 或 R 与地图同一份工程

不适合直接替换的,也要写清。

超大生产库不要只放在浏览器内存里。
完整拓扑编辑和制图规范,仍以成熟桌面 GIS 为准。
企业权限、审计和插件治理要单独补。
完全断网部署必须自备底图和资源,不能靠默认在线服务。

08桌面安装包怎么打

日常使用直接下 Releases。Windows 也可用 winget install OpenGeos.GeoLibre,macOS 可用 Homebrew Cask,不必再加 tap。公开安装包多在几十 MB 量级,具体大小以当次附件为准。壳用的是系统 WebView,所以安装包比内置整套浏览器的桌面壳小一截。

要从源码打桌面包,官方前提是 Node.js 22 或更新版本,桌面构建再装 Rust 工具链。Linux 还要补 Tauri v2 列出的系统依赖。

git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
npm install
npm run tauri:dev

npm run dev 只开网页界面,地址是 http://localhost:5173。npm run tauri:dev 才带上桌面壳,本地对话框、MBTiles 和工程存盘都在这一侧。生产安装包用下面这条。

npm run tauri:build

网页静态包是 npm run build。更新已有检出后,先 git pull,再 npm install。开发服务重启即可,生产包要重新执行对应的 build。

只部署浏览器版,可以用官方镜像。

docker pull ghcr.io/opengeos/geolibre:latest
docker run --rm -p 8080:80 ghcr.io/opengeos/geolibre:latest

容器里没有 Tauri 的本地文件能力。栅格侧服务要读本机目录时,把数据挂到 /data。

docker run --rm -p 8080:80 -v "$PWD/data:/data" ghcr.io/opengeos/geolibre:latest

Mac App Store 包是沙箱构建,Python 侧引擎、本地 Jupyter、Earth Engine 登录和外部插件不在这个包里。要这些能力,用 Homebrew、DMG,或自己执行 npm run tauri:build。签名、自动更新和商店上架,仍按各商店规则另走。GitHub Release 上的安装包,是多数人应先验证的产物。

相关学习资料