
在浏览器里跑一套云原生 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/GeoLibre如果你的数据是躺在对象存储里的几百 MB Parquet 或 COG而你只想快速出图、做个缓冲、跑一条 SQL 再丢给前端GeoLibre 这个云原生 GIS 平台能全部在浏览器里完成不用装任何软件。它同样跑在桌面端、移动端和 Jupyter 里但本文的路线就是按浏览器里能跑多少来安排的。先读哪节按你的任务对号入座只想五分钟出一张带样式的地图 → 「把第一份数据放上地图」数据在远程体积大不想整体下载 → 「不下载全量流式加载远程云原生数据」要缓冲、叠加、空间连接 → 「缓冲、叠加与连接一组矢量工具」手头是 DEM要山体阴影、坡度、等高线 → 「从 DEM 派生山体阴影、坡度与等高线」想用 SQL 分析并把结果上图 → 「对着 Parquet 直接用 SQL 提问」做完要给别人看 → 「把项目分享出去并嵌入网页」把第一份数据放上地图这节解决从空工作区到一张能查数的样式化地图。全程在线版即可无需桌面应用。打开添加数据 → 矢量图层在面板里贴入官方示例的世界国家数据集https://data.source.coop/giswqs/opengeos/countries.parquet点加载地图上出现国家面图层面板里多出一个countries图层。支持哪些数据源类型翻 添加数据 就行。选中countries展开右侧样式面板调填充颜色 / 轮廓颜色 / 填充不透明度。想做成分级统计图把样式类型设为Graduated挑一个数值字段比如POP_EST或GDP_MD_EST定好类别数、配色方案、色带点应用样式类型。详见 样式面板。点状态栏的属性表展开加载countries的记录可以按列排序、在搜索属性里找要素选中某行地图会高亮对应面点探索一次性看每个字段的类型、完整度和值分布。给图层打开要素识别后点任意国家就能在弹窗里看属性。细节见 属性表。收尾两件事桌面应用里用项目 → 保存写一个.geolibre.json任何环境都能用项目 → 分享拿到公开链接怎么配后面第七节讲。不下载全量流式加载远程云原生数据这节解决数据在云端我又不想把大文件整个拉进内存。GeoLibre 对四类云原生格式有原生支持矢量的 GeoParquet 与 FlatGeobuf栅格的 COG瓦片的 PMTiles。GeoParquet是压缩的列式矢量格式天然适合 HTTP 读取添加数据 → GeoParquet 图层贴 URL加载。 文件大时开启流式 GeoParquet不拷贝——它用 HTTP range 请求原地查询只取需要的 row group。对按空间排序比如 Hilbert 序写入的文件效果最好而 GeoLibre 自己的转换工具正是按这种顺序写的。FlatGeobuf.fgb自带空间索引添加数据 → FlatGeobuf 图层加载后格式允许时只抓取当前视图内的要素。COGCloud-Optimized GeoTIFF走添加数据 → 栅格图层贴.tif的 URL 即可之后可在样式面板里调亮度、对比度、饱和度、色相。本地有 GeoTIFF 的话直接拖到地图上也能加。本地数据想发布成云原生格式用处理 → GeoLibre 工具箱 → 转换矢量/CSV 转 GeoParquet 在浏览器里靠 DuckDB-WASM 跑矢量转 FlatGeobuf、矢量转 PMTiles、栅格转 COG 则走 Python 侧车需要桌面应用。举例本地 GeoJSON 发布为 GeoParquet就是打开矢量转 GeoParquet选输入和输出路径运行后把结果加回地图验证。底层一句话流式加载的按需读取逻辑与 duckdb-vector-loader.ts 这套 DuckDB-WASM 管线同源元数据和坐标系解析另有专门模块兜底。缓冲、叠加与连接一组矢量工具这节跑一个典型矢量工作流缓冲一个图层、和另一个图层叠加、导出。工具都在处理 → GeoLibre 工具箱 → 矢量下矢量工具参考。 这里有个坑处理 → 矢量菜单分隔线上方那个是 Whitebox 工具箱的矢量类别本工作流用的是处理 → GeoLibre 工具箱 → 矢量这组对话框别选错地方。缓冲打开缓冲Buffer设输入图层、距离和单位然后选引擎客户端Turf.js浏览器内直接跑零配置但它在地理坐标下做缓冲侧车GeoPandas桌面应用的 Python 侧车缓冲前会先重投影PythonPyodide在浏览器里跑和侧车完全相同的 GeoPandas 代码首次使用下载一次运行时。所以大区域的公制距离要精确选后两者之一——Web 构建版也能用 Pyodide不必装侧车。叠加有了缓冲结果或任意多边形和第二个图层可用的工具有——裁剪保留输入落在叠加图层内的部分保留输入属性、相交只要重叠区、差异减去叠加区域、合并两个多边形并成一个任何引擎都不保留属性、空间连接按相交/包含关系把连接图层的属性挂到每个输入要素上任意几何类型可用、属性连接按关键字段挂接不涉及几何一对一、首条匹配胜出可选内连接或左连接。检查与精修在结果图层上开属性表验输出调整样式让它和输入区分开。每次运行都会记入处理 → 历史一键重跑还能复制等价的 Python 代码。导出输出要走处理 → GeoLibre 工具箱 → 转换如矢量转 GeoParquet / FlatGeobuf也可以直接从属性表或 SQL 工作区导出记录。从 DEM 派生山体阴影、坡度与等高线这节把一份数字高程模型变成三种地形产品。工具在处理 → GeoLibre 工具箱 → 栅格下。先说清引擎分布免得你跑一半卡在没有可用引擎山体阴影、坡度、坡向都有客户端浏览器引擎前三步零安装能跑完等高线和按掩膜图层裁剪没有客户端引擎必须走 rasterio Python 侧车即需要桌面应用每个工具顶部的引擎选择器会显示当前可用项大栅格或地理坐标系下的地形建议优先侧车。加载 DEM加一个高程栅格图层GeoTIFF 或 COG 都行。栅格工具是文件进、文件出本地或可访问的栅格效果最好。山体阴影设 DEM 为输入可按需调方位角、高度角、z 因子运行后得到着色浮雕。 把它垫到其他图层下面把上层图层的混合模式设为正片叠底Multiply浮雕会透过颜色显示而不是像调低不透明度那样把两层一起洗淡。坡度 / 坡向各算一次输出用色带样式再从控件菜单打开色条显示数值标尺。等高线设好间距相邻线的高程差运行后得到矢量等高线图层可以像普通矢量一样加标注和样式。记住这一步只有桌面应用能做。裁剪到研究区按范围裁剪边界框浏览器可用或按掩膜图层裁剪矢量掩膜仅侧车。对着 Parquet 直接用 SQL 提问这节用 DuckDB Spatial SQL 分析数据并上图。从处理 → SQL 工作区打开它跑在 DuckDB-WASM 上浏览器和桌面端都可用详见 SQL 工作区文档。查已加载的图层——每个矢量图层都是一张表。先加载上面那套国家数据然后SELECT NAME, CONTINENT, GDP_MD_EST FROM countries ORDER BY GDP_MD_EST DESC LIMIT 10;点运行看到预估 GDP 前十的国家。别的数据集列名不同不确定就先跑DESCRIBE SELECT * FROM 你的文件URL摸一下字段示例文件的几何列叫geomNatural Earth 风格的字段名。直接查远程文件——工作区会识别FROM子句里的裸 URL自动包上正确的读取器并流式读取不用先加载、也不用整体下载SELECT COUNT(*) AS n FROM https://data.source.coop/giswqs/opengeos/countries.parquet;标准 DuckDB CLI 里你得显式写read_parquet(https://...)这里是个便利简写。用空间函数——ST_*全家可用例如算面积并保留geom列以便上图-- EPSG:4326 下 ST_Area 单位是平方度排序有效 -- 要平方千米请用 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;结果上图查询返回几何列时点添加为图层可命名结果图层和任何矢量图层一样支持识别、选择和属性表还能一次添加多个。导出添加为图层旁边就是导出 CSV / 导出 GeoParquet两个按钮。卡住了就用示例查询菜单起步用历史重跑之前的查询。把项目分享出去并嵌入网页这节解决地图做完了怎么让别人看、怎么嵌进我的网站。完整参考在 嵌入与分享。一次性配置分享令牌打开设置 → 环境变量把个人 API 令牌贴进Share.GeoLibre API token字段在 share.geolibre.app 的 设置 → API 令牌 下创建。只配这一次。分享项目把图层、样式、地图视图都调到你希望观众落地的状态打开项目 → 分享...上传后会得到一个指向.geolibre.json的公开 URL形如https://share.geolibre.app/you/my-map.geolibre.json。分享文件捕获的内容和本地保存一致——图层、样式、插件状态、地图视图。唯一的例外是读取你本机文件的图层对话框会提前把它们列为缺失因为分享服务只存项目文件绝不上传你的数据文件。打开分享的地图把项目 URL 作为url参数传给在线版即可例如https://web.geolibre.app/?url你的分享地址。嵌入页面一个干净的纯地图 iframeiframe srchttps://web.geolibre.app/?url你的分享地址amp;maponly titleGeoLibre map width100% height600 styleborder: 0; loadinglazy allowfullscreen; geolocation /iframe外观参数可自由组合maponly只留地图layoutviewer只读地图能开关图层、搜索识别但不能改项目layoutcompact留一条纯图标工具栏toolbarnone隐藏顶部工具栏panelsnone隐藏侧边和底部面板themedark加载即深色。读者要能探索但不能改用layoutviewer地图只是页面插图用maponly。从你的页面驱动地图URL 参数只在加载时生效一次。想在运行时持续对话——飞到用户刚点选的记录、监听图内操作——装类型化客户端npm install geolibre/embedimport { connect } from geolibre/embed; const map await connect(document.querySelector(iframe), { origin: https://你的部署域名 }); map.on(selectionChanged, ({ featureIds }) showRecordFor(featureIds[0])); await map.setView({ bbox: field.bbox });注意这套运行时 API 只在把你页面源加入白名单的部署上生效官方在线版没有开放白名单所以它是给自己托管构建准备的。客户端实现就在 packages/embed/src不想加依赖也可以直接用底层postMessage协议。下一步去哪要细节用户指南 覆盖界面、图层、样式、控件等所有参考页要更多工具Whitebox 工具箱 1000 个工具全部以 WebAssembly 在浏览器里跑见 处理工具要动画COG / 栅格序列的时间动画用时间滑块插件见 数据集成要视频录制好的实操演示按时间排好在 视频教程想跑侧车等高线、按掩膜裁剪、矢量转 FlatGeobuf/PMTiles、栅格转 COG 这几类操作只在桌面应用可用装法见 开始使用。记住整条路线的主轴浏览器里能零安装跑完加载 → 样式 → 矢量/栅格分析 → SQL → 分享的主干只有碰到本地文件或 rasterio 侧车时才需要切到桌面端。【免费下载链接】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),仅供参考