浏览器里的开源云原生 GIS:GeoLibre 免安装工作流指南
浏览器里的开源云原生 GISGeoLibre 免安装工作流指南【免费下载链接】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/GeoLibreGeoLibre 是一个免费的开源 GIS 平台主打云原生地理空间工作流它直接运行在浏览器、桌面应用和 Jupyter Notebook 三种环境里不装任何软件就能打开它。跟着这篇指南走完你能从空工作区做出一张带样式和属性表的地图流式加载远程的 GeoParquet 与 COG完成缓冲、叠加、DEM 地形分析和空间 SQL 查询最后把成果发布成公开链接并嵌入任意网页。三种运行环境先搞清楚你要什么GeoLibre 的三个形态各有所长选错环境会在中途卡住形态打开方式能做什么浏览器在线版打开 web.geolibre.app加载远程数据、全部浏览器端处理工具、SQL 工作区、分享与嵌入桌面应用安装包Tauri见 Downloads额外支持打开/保存.geolibre.json项目、读取本地 MBTiles 与栅格、Python 侧车工具Jupyter / Pythonpip install后import geolibre在 Notebook 里创建和查看地图见 Python 包说明 与 Notebook 文档 只有两件事是桌面端专属读写你电脑上的项目文件以及 Python 侧车rasterio 栅格处理与部分格式转换。浏览器版的 Whitebox 工具箱1000 工具WebAssembly 运行和 SQL 工作区都不受此限制。官方教程入口在 docs/tutorials/index.md。五分钟做出一张带样式和属性表的地图目标从零到一张可检查、可分享的地图全程浏览器完成。打开添加数据 → 矢量图层Add Data → Vector Layer在面板里粘贴教程常用的示例数据地址https://data.source.coop/giswqs/opengeos/countries.parquet点加载Load世界国家图层countries就出现在图层面板里。选中该图层展开右侧样式面板调填充颜色Fill color、轮廓颜色Outline color和填充不透明度Fill opacity。想做分级统计图把样式类型Style type切到Graduated选一个数值字段如POP_EST或GDP_MD_EST定好类别数Classes、配色方案Scheme与色带Colormap再点应用样式类型Apply style type。点状态栏的属性表Attribute table展开它载入记录后可以按列排序、在搜索属性Search attributes里找要素选中某一行地图上对应国家会高亮。点探索Explore能一次性看到每个字段的类型、完整度和取值分布。给图层开启要素识别Identify features然后点地图上的国家属性就会弹在窗口里。保存分两种桌面应用走项目 → 保存Project → Save写出.geolibre.json任何环境都能用项目 → 分享Project → Share上传拿公开链接。更多数据源类型见 添加数据。不下载加载大数据GeoParquet、FlatGeobuf 与 COG 的流式读法目标远程大数据集不用整包拷进内存浏览器按需抓取。GeoParquet打开添加数据 → GeoParquet 图层或矢量图层粘贴 URL 后勾选流式 GeoParquet不拷贝Stream GeoParquet (no copy)。它靠 HTTP range 请求原地查询文件只取相关的 row group——对按空间排序如 Hilbert 序GeoLibre 自己的转换工具写出的就是这种序的大文件效果最好。底层读取逻辑可以看 duckdb-vector-loader.ts。FlatGeobuf.fgb打开添加数据 → FlatGeobuf 图层URL 一填即可格式自带空间索引GeoLibre 尽量只取当前视野内的要素。COGCloud-Optimized GeoTIFF打开添加数据 → 栅格图层Raster Layer加载.tif之后可在样式面板调亮度、对比度、饱和度与色相。本地 GeoTIFF 也可以直接拖到地图上。要把本地数据变成云原生文件走处理 → GeoLibre 工具箱 → 转换Processing → GeoLibre Toolbox → Conversion矢量转 GeoParquetVector to GeoParquet和CSV 转 GeoParquet在浏览器里用 DuckDB-WASM 完成矢量转 FlatGeobufVector to FlatGeobuf、矢量转 PMTilesVector to PMTiles、栅格转 COGRaster to COG则跑在桌面端的 Python 侧车上。 进阶加载完的 Parquet、COG 可以进 SQL 工作区直接查下节详述也可以配时间滑块插件做 COG 序列的时间动画见 数据集成。几何分析三步走先选对引擎再谈缓冲与叠加先说最容易踩的坑处理菜单里藏了两个工具箱。分隔线上方的处理 → 矢量Vector属于 Whitebox 目录1000 工具的 WASM 目录分隔线下方的处理 → GeoLibre 工具箱 → 矢量Processing → GeoLibre Toolbox → Vector才是带引擎选择器的内置矢量对话框。详细对照见 两个工具箱。以缓冲Buffer为例设好输入图层、距离与单位公里/米/英里关键一步是选引擎Engine引擎运行位置何时选它客户端Client, Turf.js浏览器默认首选零配置离线可用PythonPyodide浏览器内需要投影感知距离、又不想装侧车首次使用会一次性下载运行时之后复用侧车Sidecar, GeoPandasPython 侧车桌面应用与 Pyodide 跑同一套 GeoPandas 代码结果一致⚠️ 客户端引擎在地理坐标经纬度下算缓冲大范围区域要精确的米制距离时务必换两个 GeoPandas 引擎之一——它们会先重投影再缓冲。叠加与连接工具都在同一对话框里裁剪Clip保留输入落在叠加层内的部分并保留其属性、相交Intersection只留重叠区、差异Difference、合并Union两种引擎下都不保留属性、空间连接Spatial join按相交/包含/位于内部关系把连接层属性挂到输入要素上任何几何类型都行和属性连接Attribute join按关键字段匹配、一对一、首行命中生效可选内连接/左连接。跑完之后用属性表抽查结果并调样式让它和输入图层区分开。每次运行都会记进处理 → 历史Processing → History一键重跑还能复制等价的 Python 代码。结果想落盘为云原生文件回到转换工具。从 DEM 派生山体阴影、坡度与等高线目标一份高程模型DEM进三类地形产品出。工具都在处理 → GeoLibre 工具箱 → 栅格Raster下每个工具顶部的引擎选择器会告诉你当前环境能跑哪些。先加一个高程栅格图层GeoTIFF 或 COG 的 DEM 均可。注意栅格工具是文件进、文件出本地或可访问的文件路径效果最好。山体阴影Hillshade选 DEM 为输入按需设方位角、高度角和 z 因子运行后浮雕栅格落到地图上。把它放到其他图层下方再把上方图层的混合模式Blend mode设为正片叠底Multiply——地形起伏会从颜色里透出来比单纯降不透明度干净得多。坡度Slope算陡峭程度坡向Aspect算最陡坡面的罗盘方向任选其一跑完用色带colormap上色再从控件菜单Controls menu打开色条Colorbar显示数值标尺。等高线Contour设好间距interval线间高差运行产出的是矢量图层可以像普通矢量一样标注和样式化。要限制研究区用按范围裁剪Clip by extent边界框浏览器可跑或按掩膜图层裁剪Clip by mask layer矢量掩膜。⚠️ 引擎分界山体阴影、坡度、坡向都有客户端浏览器引擎零安装可跑但等高线和按掩膜图层裁剪只走 rasterio Python 侧车必须用桌面应用。大栅格或地理坐标系统下的地形分析官方建议也优先侧车引擎。空间 SQL 查询并直接上图目标在浏览器里用 DuckDB Spatial 查数据把结果当图层用。入口是处理 → SQL 工作区Processing → SQL Workspace底层是 DuckDB-WASM浏览器和桌面都能跑。每个已加载的矢量图层就是一张表。假设你加了上文的国家图层直接写SELECT NAME, CONTINENT, GDP_MD_EST FROM countries ORDER BY GDP_MD_EST DESC LIMIT 10;点运行RunGDP 预估最高的十个国家立刻出现在结果表里。换一份数据集时列名会变先跑DESCRIBE SELECT * FROM 文件URL摸清结构。更省事的是裸 URL工作区会识别FROM子句里没加载过的 URL自动包上正确的读取器再走 HTTP range 流式读取——不必先下载。空间扩展已加载所有ST_*函数可用注意 EPSG:4326 下ST_Area(geom)的单位是平方度要平方公里请用ST_Area_Spheroid(geom) / 1e6。查询返回几何列时点添加为图层Add as layer即可把结果变成新图层可命名可一次加多个随后照样支持识别、选择和属性表。导出 CSV与导出 GeoParquet两个按钮就摆在添加为图层旁边没有头绪时用示例查询Sample queries菜单起步用历史重跑旧查询。完整参考见 SQL 工作区。发布与嵌入把地图变成公开链接和网页组件目标是两件事拿一个公开链接再把地图塞进你自己的网页。第一步配一次分享令牌。分享走share.geolibre.app需要个人 API 令牌打开设置 → 环境变量Settings → Environment Variables把令牌粘进Share.GeoLibre API token字段令牌在 share.geolibre.app/settings 的设置 → API 令牌下创建。只需做一次。第二步上传项目。调好图层、样式和视图后打开项目 → 分享...Project → Share...确认标题并上传得到一个形如https://share.geolibre.app/you/my-map.geolibre.json的公开地址。注意分享文件只存项目本身图层、样式、插件状态、视图绝不上传你的数据文件——读取本机文件的图层会被对话框列为缺失这些本地数据需要自己另行托管。第三步打开与嵌入。把项目地址作为url参数传给在线版即可打开嵌入网页则用iframe加参数iframe srchttps://web.geolibre.app/?urlhttps://share.geolibre.app/you/my-map.geolibre.jsonamp;maponly titleGeoLibre map width100% height600 styleborder: 0; loadinglazy allowfullscreen; geolocation /iframe常用参数可自由组合maponly去掉全部界面外壳只留地图——地图只作为页面插图时用layoutviewer只读模式图层开关、底图切换、搜索/识别都在但一切修改项目的入口被隐藏——读者可以逛但不能改layoutcompact保留一条纯图标的细工具栏toolbarnone隐藏顶部工具栏保留面板和状态栏panelsnone隐藏侧边与底部面板保留工具栏themedark加载时强制深色主题。完整参数表见 URL 参数。第四步可选运行时双向对话。URL 参数只在加载时生效一次。想让你的页面持续驱动地图——用户点了一条记录就飞过去、同时监听地图内的选择变化——安装类型化客户端import { connect } from geolibre/embed; const map await connect(document.querySelector(iframe), { origin: https://web.geolibre.app, }); map.on(selectionChanged, ({ featureIds }) showRecordFor(featureIds[0])); await map.setView({ bbox: field.bbox }); await map.highlightFeature({ layerId: fields, filter: { parcel_id: field.id }, fit: true });⚠️ 关键限制该 API默认关闭只有把页面源origin加入白名单的部署才生效——公开的 web.geolibre.app 没有给任何源开白名单所以运行时接口只适用于你自己托管的构建版Docker 镜像里设GEOLIBRE_EMBED_ORIGINS环境变量即可开启。客户端实现见 packages/embed协议细节与免依赖的原始postMessage写法见 嵌入文档。常见坑速查与继续深入在处理 → 矢量Whitebox 目录的矢量类和处理 → GeoLibre 工具箱 → 矢量之间迷路前者是 1000 WASM 工具的目录后者才是带引擎选择器的内置对话框文档里凡是缓冲/叠加/转换指的都是后者。大范围缓冲出来距离不对多半是用了客户端Turf.js引擎换 Pyodide 或侧车引擎即可。分享后打开是空图本地文件图层没随项目走先把数据发布到可公开访问的地址。嵌入里点了没反应运行时 API 需要自建部署并配置GEOLIBRE_EMBED_ORIGINS。文字之外视频教程 收录了 9 段实操演示含 1 小时的项目总览和网络研讨会覆盖流式加载 180 GB 数据集、Whitebox 工具箱、浏览器内规整建筑足迹、影像地理配准等主题可作为本文的视觉补充。【免费下载链接】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),仅供参考