GeoLibre 实战:零安装云原生 GIS,十分钟出第一张地图并嵌入你的网页
【免费下载链接】GeoLibreA lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs in the web browser, on the desktop, on mobile, and inside Jupyter notebooks.项目地址: https://gitcode.com/GitHub_Trending/ge/GeoLibre
GeoLibre 是一款免费、开源的云原生 GIS 平台,浏览器打开即用。照这篇走,你能零安装加载 GeoParquet、跑 DuckDB 空间查询,并把做好的地图用 iframe 嵌入任何网页。
30 秒看懂 GeoLibre:多端形态与适合人群
这一节给你一张多端形态对比表,先判断该从哪个入口开始。
GeoLibre 的核心主张是:可视化、探索和分析地理空间数据这件事,不必依赖本地重型 GIS 软件,也不必自建服务端。它对云原生格式有原生支持——矢量侧的 GeoParquet 与 FlatGeobuf、栅格侧的 Cloud-Optimized GeoTIFF(COG)、瓦片侧的 PMTiles,"数据留在云端、工具跑在本地"就是它的基本盘。
| 形态 | 打开方式 | 适合场景 | 主要限制 |
|---|---|---|---|
| 浏览器 | 在线版 web.geolibre.app,零安装 | 远程数据浏览、样式化、空间查询、分享 | 读不到本机文件 |
| 桌面端 | 安装桌面应用(源码见 apps/geolibre-desktop) | 本地数据、项目读写、Python 侧车工具 | 需要先安装 |
| 移动端 | Android / iOS 应用 | 外业查看、定位跟踪 | 重分析能力受限 |
| Jupyter | 在 notebook 中嵌入 | 科研流程、与 Python 分析混排 | 交互受 notebook 形式约束 |
适合谁:不想装重型 GIS 软件就要出图的数据分析师;要把地图嵌进产品页的前端工程师;在 Jupyter 工作流里看空间数据的科研人员;想零成本体验云原生地理空间格式的爱好者。
先选对运行方式:在线版、桌面版与 Python 侧车
这一节给你一份"哪些事必须用桌面版"的清单,避免做到一半卡住。
- 在线版(零安装):打开 web.geolibre.app 即用,后文绝大多数操作在这里完成。
- 桌面版:三件事离不开它——打开/保存
.geolibre.json项目文件、读取本地 MBTiles 与栅格、运行 Python 侧车工具。 - Python 侧车:由桌面应用自动管理,负责 rasterio 栅格处理与格式转换(矢量转 FlatGeobuf、矢量转 PMTiles、栅格转 COG、等高线、按掩膜图层裁剪),详见 开始使用。
💡 例外提醒:Whitebox 地理处理工具箱不需要桌面版——它的 1000+ 工具以 WebAssembly 形式直接在浏览器里运行。
后续多节共用同一份公开示例数据(世界各国 GeoParquet,Natural Earth 字段,几何列geom):
https://data.source.coop/giswqs/opengeos/countries.parquet
十分钟出第一张地图:从底图到分级统计图
这一节给你一条连贯操作线:从打开页面到保存项目,全程零安装。
打开应用。进入在线版,你看到一张底图和空的图层面板。
加载数据。打开"添加数据 → 矢量图层",粘贴上面的示例 URL,点"加载"。国家轮廓立刻出现在地图上,图层面板多出countries图层。其余数据源类型见添加数据。
样式化。选中图层,展开右侧样式面板:调填充颜色、轮廓颜色与填充不透明度。做分级统计图则把"样式类型"设为Graduated,选数值属性(如POP_EST、GDP_MD_EST),定好类别数、配色方案与色带,点"应用样式类型"。细节见样式。
查数据。点状态栏"属性表"加载记录:按列排序、在"搜索属性"里找要素,选中某行地图上即高亮对应国家;点"探索"一次性看全每个字段的类型、完整度与值分布。再开启"要素识别",点任一国家即可在弹窗中看属性。参考属性表。
保存或分享。桌面版用"项目 → 保存"写出.geolibre.json;任何环境都能用"项目 → 分享"拿公开链接,出口在"发布与嵌入"一节。
大数据拿来就用:流式加载 GeoParquet 而不下载整份文件
这一节给你三种云原生格式的加载入口,以及"只取需要的字节"背后的原理。
- GeoParquet(添加数据 → GeoParquet 图层,或矢量图层):粘贴
.parquetURL 加载。大文件建议勾选Stream GeoParquet (no copy):客户端用 HTTP range 请求原地查询,不整份拷贝进内存;当文件行按空间排序(如 GeoLibre 转换工具写出的 Hilbert 序)时,只需抓取相关的 row group。 - FlatGeobuf(添加数据 → FlatGeobuf 图层):输入
.fgbURL 加载,该格式自带空间索引,允许时只抓取当前视图内的要素。 - COG(添加数据 → 栅格图层):输入 COG(
.tif)URL,之后在样式面板调亮度、对比度、饱和度与色相。本地 GeoTIFF / COG 也能直接拖到地图上。 - PMTiles:矢量瓦片的发布格式,用"矢量转 PMTiles"产出(需桌面侧车),适合自建瓦片服务。
本地数据转云原生的入口是"处理 → GeoLibre 工具箱 → 转换":浏览器内由 DuckDB-WASM 跑"矢量转 GeoParquet"与"CSV 转 GeoParquet";Python 侧车(桌面版)跑"矢量转 FlatGeobuf""矢量转 PMTiles""栅格转 COG"。例如把本地 GeoJSON 发布出去:矢量转 GeoParquet → 选输入与输出路径 → 运行 → 把产物加回地图验证。工具全貌见处理工具;COG 序列还能配时间滑块插件做时间动画,见数据集成。
分析的三条路:菜单工具、栅格地形与 DuckDB 空间查询
这一节给你一张"场景 → 工具 → 引擎"选型表,和每条路的入口操作。
| 场景 | 入口工具 | 引擎 |
|---|---|---|
| 缓冲、裁剪/相交/差异/合并、空间连接、属性连接 | 处理 → GeoLibre 工具箱 → 矢量 | 客户端 Turf.js(浏览器零配置);侧车 GeoPandas(桌面);Python Pyodide(浏览器内跑同一套 GeoPandas 代码) |
| 山体阴影、坡度、坡向 | 处理 → GeoLibre 工具箱 → 栅格 | 客户端引擎(浏览器) |
| 等高线、按掩膜图层裁剪 | 处理 → GeoLibre 工具箱 → 栅格 | Python 侧车(仅桌面) |
| 查询图层/远程文件、结果上图、导出 | 处理 → SQL 工作区(DuckDB-WASM) | 浏览器与桌面均可 |
| 地形/水文/遥感/LiDAR 深度处理 | 处理 → Whitebox 各类别 | WebAssembly(浏览器),可选侧车 |
⚠️ 菜单里有两个"矢量":分隔线上方的"处理 → 矢量"是 Whitebox 目录的矢量类别;上表指的"处理 → GeoLibre 工具箱 → 矢量"才是自带引擎选择器的对话框。
缓冲与叠加:按精度选引擎
缓冲:选输入图层,设距离与单位(公里/米/英里),选引擎,点运行,结果作为新图层上图。小范围快速出图用 Turf.js;大范围要精确公制距离就选两个 GeoPandas 引擎之一——它们缓冲前会先重投影,其中Python(Pyodide)让你在浏览器里拿到与侧车一致的结果,首次使用会下载一次运行时。
叠加:裁剪(保留落在叠加图层内的部分)、相交(只留重叠区)、差异(减去叠加区)、合并(两图归一,不保留属性)、空间连接(按相交/包含/位于内部的关系把连接图层属性挂到每个要素上)、属性连接(按关键字段一对一挂表,不涉及几何,可选内/左连接)。每次运行都会写进"处理 → 历史",可一键重跑并复制等价的 Python 代码。
从 DEM 派生山体阴影、坡度和等高线
先加一个 DEM(GeoTIFF 或 COG)作为栅格图层——栅格工具是"文件进、文件出"。山体阴影可设方位角、高度角与 z 因子;把结果放到其他图层下方,并将上层的"混合模式"设为正片叠底,浮雕就能透过颜色显示,而不是把两边一起洗淡。坡度算陡峭程度,坡向算最陡坡的罗盘方位,任选其一并配色带样式,再从控件菜单打开"色条"显示数值标尺。等高线设好间距后输出矢量图层,可像普通矢量数据一样标注与样式化——它只在侧车运行,需要桌面版。
用 SQL 查询图层和远程文件
SQL 工作区(处理 → SQL 工作区)基于 DuckDB-WASM,浏览器和桌面都能用:每个已加载的矢量图层都是一张可查询的表,空间扩展已加载,ST_*函数全部可用。FROM子句里直接写裸 URL 会被自动包上对应读取器,再经 HTTP range 请求流式读取,无需整体下载:
-- 数据位于 EPSG:4326,面积单位是平方度;要平方千米请改用 ST_Area_Spheroid(geom) / 1e6 SELECT NAME, ST_Area(geom) AS area, geom FROM https://data.source.coop/giswqs/opengeos/countries.parquet WHERE CONTINENT = 'Africa' ORDER BY area DESC;不知道列名就先跑DESCRIBE SELECT * FROM 'your-file-url'。查询返回几何列时点"添加为图层",结果图层和普通矢量图层一样支持识别、选择与属性表;"导出 CSV"与"导出 GeoParquet"按钮就在旁边。完整说明见 SQL 工作区。
发布与嵌入:一个链接加一段 iframe
这一节给你从私有地图到可嵌入网页的完整出口。
设一次令牌。打开"设置 → 环境变量",把令牌粘贴进 Share.GeoLibre API token 字段;令牌在 share.geolibre.app/settings 的"设置 → API 令牌"下创建,只需做一次。
分享项目。把地图视图摆到希望观众落地的位置,打开"项目 → 分享",得到形如https://share.geolibre.app/you/my-map.geolibre.json的公开 URL。分享捕获的即图层、样式、插件状态与地图视图;读取本机文件的图层会在分享前被列为缺失——平台只存项目文件,绝不上传你的数据。本地数据如何托管见项目。
嵌入页面。任何人可用?url=参数在在线版打开分享项目(web.geolibre.app/?url=<分享链接>)。纯地图嵌入:
<iframe src="https://web.geolibre.app/?url=https://share.geolibre.app/you/my-map.geolibre.json&maponly" title="GeoLibre map" width="100%" height="600" style="border: 0;" loading="lazy" allow="fullscreen; geolocation"></iframe>参数可自由组合:maponly只留地图;layout=viewer只读(图层、底图、搜索/识别保留,编辑隐藏);layout=compact细窄纯图标工具栏;toolbar=none、panels=none、theme=dark分别控制工具栏、侧边/底部面板与主题。完整参数表见嵌入与分享。
运行时通信。URL 参数只在加载时生效;要持续驱动地图(飞到某条记录、监听选择变化),装类型化客户端:
npm install @geolibre/embed实现见 packages/embed。注意:运行时 API 只在你自己托管、且把页面源加入白名单的部署上生效;不想引依赖可直接用底层postMessage协议。
高频问题速查
这一节是速查清单,卡住时先来这里翻。
哪些操作必须在桌面版做?打开/保存项目文件、读本地 MBTiles 与栅格、Python 侧车工具(等高线、按掩膜裁剪、矢量转 FlatGeobuf / PMTiles、栅格转 COG、rasterio 栅格处理)。Whitebox 的 1000+ 工具除外,它们在浏览器里跑。
大范围精确公制缓冲选哪个引擎?侧车(GeoPandas)或 Python(Pyodide)——两者缓冲前先重投影;Turf.js 客户端按地理坐标缓冲,适合小范围快速结果。
流式 GeoParquet 为什么有时仍拉了很多数据?该模式对行按空间排序的文件效果最好;未排序的大文件会命中更多 row group,用转换工具重写成 Hilbert 序可显著改善。
嵌入参数能叠加吗?可以。maponly、layout=viewer、layout=compact、toolbar=none、panels=none、theme=dark自由组合;读者要探索但不能修改时用layout=viewer,地图只是页面插图时用maponly。
分享会上传我的数据文件吗?不会。share.geolibre.app 只存项目文件(.geolibre.json);依赖本机文件的图层会在分享前被列为缺失,数据文件需要你自己托管。
附录:视频教程索引
这一节给你一行一条的实操录播索引,按需跳转,完整版见视频教程。
- GeoLibre 1.0 完整介绍:浏览器 / 桌面 / Jupyter 三种形态与核心工作流(40:18)
- 浏览器地理处理:WebAssembly 上的 1000+ 免费 GIS 工具,零安装(21:52)
- 在浏览器访问免费高分辨率灾害卫星影像(8:26)
- 在浏览器中规整建筑足迹(16:25)
- GeoLibre + GeoLens:自托管地理空间数据的现代技术栈(25:41)
- 用 Model Builder 与 AI 助手创建可复用 GIS 工作流(18:55)
- 用免费高分辨率卫星影像制图尼泊尔洪水(23:14)
- 云原生 GIS 工作流网络研讨会:COG、GeoParquet、PMTiles、DuckDB 与 WASM 如何协同(1:07:28)
- 在浏览器中进行影像地理配准(15:35)
下一步建议:先在在线版把"十分钟出图"到"分析三条路"各跑一遍,遇到需要本机文件或侧车的步骤再装桌面应用,最后用分享与嵌入把成果发出去。
【免费下载链接】GeoLibreA lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs in the web browser, on the desktop, on mobile, and inside Jupyter notebooks.项目地址: https://gitcode.com/GitHub_Trending/ge/GeoLibre
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考