ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GeoLibre 官方教程全指南:从零开始掌握云原生 GIS 工作流

GeoLibre 官方教程全指南:从零开始掌握云原生 GIS 工作流 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 是一个轻量级、云原生的地理空间平台可运行在浏览器、桌面端、移动端以及 Jupyter Notebook 中。本文系统梳理 docs/tutorials/index.md 中官方教程的整体框架与实战路径逐篇拆解六条端到端工作流首张地图、云原生数据、矢量分析、地形分析、空间 SQL、分享与嵌入并结合仓库源码补充底层实现依据帮助你按图索骥地完成从空工作区到可分享的地图与分析结果的完整旅程。教程概览与学习路径官方教程页将内容组织为一个循序渐进的列表每一篇都短小精悍、建立在 用户指南 之上并在用到具体功能时回链到对应的参考页面教程你将学会首张地图添加图层、设置样式、检查属性并保存云原生数据加载远程 GeoParquet、FlatGeobuf、COG并转换本地数据矢量分析对图层做缓冲和叠加然后导出结果地形分析从 DEM 派生山体阴影、坡度和等高线空间 SQL用 DuckDB Spatial 查询数据并上图分享与嵌入分享项目并将它嵌入网页官方建议按顺序逐一练习以获得导游式引导也可以直接跳到你需要的主题。所有教程都以用户指南为地基因此当某个界面或功能需要更多细节时随时可以点击文章中的回链回到对应参考页。开始前的准备在动手之前官方文档给出了三条重要的环境前提大多数教程可在在线版live viewer直接完成浏览器构建版 web.geolibre.app 无需安装任何软件。少数步骤需要桌面应用包括打开和保存项目文件、读取本地 MBTiles 与栅格、以及 Python 侧车sidecar工具栅格处理与格式转换。这些步骤在教程中会单独标注。可参阅 Downloads 安装。注意Whitebox 地理处理工具箱并不在此列—— 它的 1000 工具以 WebAssembly 形式在浏览器中运行无需安装。示例数据集多个教程共用一份公开的世界各国 GeoParquet 文件https://data.source.coop/giswqs/opengeos/countries.parquet。从仓库结构可以印证这一点apps/geolibre-desktop承载桌面端Tauribackend/geolibre_server与backend/geolibre_server_api提供 Python 服务端能力而packages/processing与packages/map等核心包则支撑浏览器端的渲染与处理能力。Python 侧车sidecar在桌面应用中承担栅格处理与格式转换这一点与教程中的少部分步骤需要桌面端完全对应。教程一创建你的第一张地图这是入门第一课目标是在几分钟内从空工作区到一张带可检查数据的样式化地图全程可以在 在线版 完成。步骤 1打开 GeoLibre打开在线版或启动桌面应用你会看到一张底图和一个空的 图层面板。步骤 2添加一个图层打开添加数据 → 矢量图层Add Data → Vector Layer。在添加矢量面板中输入矢量 URL官方示例使用世界各国数据集https://data.source.coop/giswqs/opengeos/countries.parquet点击加载Load。国家数据即出现在地图上同时countries图层被加入图层面板。所有受支持的数据源类型可参阅 添加数据。步骤 3样式化图层在图层面板选中countries图层如果右侧的 样式面板 折叠了则将其展开。按需调整填充颜色、轮廓颜色和填充不透明度。要制作分级统计图choropleth将样式类型设为Graduated选择一个数值型属性例如POP_EST或GDP_MD_EST再选择类别数Classes、配色方案Scheme和色带Colormap最后点击应用样式类型。步骤 4检查数据点击状态栏上的属性表Attribute table展开它然后选择countries图层加载记录。参见 属性表。按某列排序或在搜索属性中键入关键词查找要素选中某行时地图上会高亮对应要素。点击探索Explore可一次性剖析每个字段 —— 它的类型、完整度以及值分布情况。也可以为该图层开启要素识别Identify features然后点击地图上的某个国家即可在弹窗中看到它的属性。步骤 5保存或分享在桌面应用中使用项目 → 保存Project → Save写入一个.geolibre.json文件。在任何环境中使用项目 → 分享Project → Share上传项目并获得一个公开链接。参见 分享与嵌入。后续进阶在 云原生数据 中加载云原生与远程格式。在 矢量分析 中运行几何工具。在 空间 SQL 中查询你的数据。教程二云原生数据GeoLibre 为云原生地理空间格式而生矢量侧的 GeoParquet 与 FlatGeobuf、栅格侧的 Cloud-Optimized GeoTIFFCOG、以及瓦片侧的 PMTiles。本教程演示如何从远程 URL 加载它们以及如何把本地数据转换为云原生格式。加载远程 GeoParquetGeoParquet 是一种压缩的、列式存储的矢量格式非常适合通过 HTTP 读取。打开添加数据 → GeoParquet 图层或矢量图层。输入一个 GeoParquet URL例如https://data.source.coop/giswqs/opengeos/countries.parquet为避免把大文件整体拷贝进内存可开启流式 GeoParquet不拷贝Stream GeoParquet (no copy)它会通过 HTTP range 请求原地查询该文件。这一模式最适合行按空间排序的大远程文件例如 GeoLibre 自带转换工具写出的 Hilbert 序这样只需抓取相关的 row group。点击加载。从仓库实现看这一流式不拷贝的能力与 duckdb-vector-loader.ts 和 duckdb-geometry.ts 密切相关前者负责通过 DuckDB 按需加载远程矢量数据后者是保持duckdb/duckdb-wasm依赖解耦的 GeoParquet 写入器。仓库中的测试如 geoparquet-metadata.test.ts、geoparquet-crs.test.ts 也从元数据与坐标系两个维度验证了这套读取管线。加载 FlatGeobufFlatGeobuf 是一种对流式读取友好的矢量格式自带空间索引。打开添加数据 → FlatGeobuf 图层。输入一个.fgbURL 并加载。GeoLibre 在格式允许的情况下只抓取当前视图内的要素。加载 COGCloud-Optimized GeoTIFF 是一种经过组织的常规 GeoTIFF客户端只需读取所需的瓦片。打开添加数据 → 栅格图层Raster Layer。输入一个 COG.tif的 URL 并加载。随后可在 样式面板 中调整亮度、对比度、饱和度与色相。小贴士拖放你也可以把一个本地 GeoTIFF 或 COG 直接拖到地图上作为栅格图层添加。参见 添加数据 - 拖放。将本地数据转换为云原生格式使用处理 → GeoLibre 工具箱 → 转换Processing → GeoLibre Toolbox → Conversion写出云原生文件。参见 处理工具 - 转换。矢量转 GeoParquet和CSV 转 GeoParquet在浏览器中借助 DuckDB-WASM 运行 —— 这正是 duckdb-processing.ts 等源码所体现的浏览器内 DuckDB 处理管线。矢量转 FlatGeobuf、矢量转 PMTiles、栅格转 COG运行在 Python 侧车桌面应用上。例如把本地 GeoJSON 发布为 GeoParquet 的完整流程打开处理 → GeoLibre 工具箱 → 转换 → 矢量转 GeoParquet。选择输入文件和输出路径。运行转换然后把生成的 GeoParquet 加回地图验证结果。后续进阶在 空间 SQL 中直接查询这些格式SQL 工作区可直接从 URL 读取 Parquet、CSV、JSON 和 GeoJSON。用时间滑块插件Time Slider对 COG 序列做时间动画。参见 数据集成。教程三矢量分析本教程运行一个小型矢量工作流缓冲一个图层、与另一个图层叠加、导出结果。使用的工具位于处理 → GeoLibre 工具箱 → 矢量矢量工具下。注意同一个菜单下有两个工具箱处理 → 矢量分隔线上方是 Whitebox 目录的矢量类别处理 → GeoLibre 工具箱 → 矢量才是本教程使用的对话框。参见 一个菜单下的两个工具箱。步骤 1加载输入数据至少添加一个矢量图层参见 添加数据。做叠加分析需要两个图层例如一组点或线要素加一个用于裁剪的多边形图层。步骤 2缓冲一个图层打开处理 → GeoLibre 工具箱 → 矢量 → 缓冲Buffer。将输入图层设为目标图层。设置距离和单位公里、米或英里。选择引擎Engine客户端Turf.js在浏览器中运行零配置。侧车GeoPandas在 Python 侧车上运行支持投影感知的距离桌面应用。PythonPyodide在浏览器中运行与侧车相同的 GeoPandas 代码因此结果与侧车一致却无需安装侧车运行时首次使用时会下载一次。点击运行。缓冲图层即被添加到地图上。小贴士投影感知的距离客户端引擎在地理坐标中做缓冲。要在大范围区域内获得精确的公制距离请使用两个 GeoPandas 引擎之一 —— 它们会在缓冲前先重投影桌面应用用侧车GeoPandas而任何环境包括 Web 构建版都可用PythonPyodide。步骤 3叠加两个图层有了缓冲结果或任意多边形图层和第二个图层就可以运行叠加分析裁剪Clip保留输入中落在叠加图层内部的部分同时保留输入的属性。相交Intersection只保留两个多边形图层的重叠区域。差异Difference从输入中减去叠加图层的区域。合并Union把两个多边形图层合并为一个在任一引擎上都不保留属性。空间连接Spatial join基于空间关系相交、包含或位于内部把连接图层的属性挂接到每个输入要素上 —— 例如给每个点打上包含它的多边形的标签。适用于任何几何类型。属性连接Attribute join在关键字段匹配时把连接表的属性挂接到每个输入要素上 —— 不涉及几何例如通过共享的 FIPS 代码把人口普查统计挂接到边界多边形。它是一对一的第一个匹配的连接行胜出在两侧分别选择关键字段可选列出要带过来的字段并选择内连接或左连接。从处理 → GeoLibre 工具箱 → 矢量打开工具选择输入与叠加图层然后运行。步骤 4检查与精修在结果图层上打开 属性表 检查输出并调整其 样式 使其与输入区分开来。每次运行也都会被记录到处理 → 历史History中历史条目支持一键重跑并会复制等价的 Python 代码。步骤 5导出结果要把输出保存为云原生文件使用处理 → GeoLibre 工具箱 → 转换例如矢量转 GeoParquet或矢量转 FlatGeobuf。参见 云原生数据。也可以从 属性表 或 SQL 工作区 导出记录。后续进阶用 空间 SQL 做同类型的分析。在 地形分析 中转向栅格分析。教程四地形分析本教程从数字高程模型DEM派生地形产品山体阴影、坡度图和等高线。使用的工具位于处理 → GeoLibre 工具箱 → 栅格栅格工具下。注意这些工具由哪个引擎运行山体阴影Hillshade、坡度Slope、坡向Aspect都提供客户端浏览器引擎因此本教程前三步在浏览器构建版中零安装即可运行。等高线Contour和按掩膜图层裁剪Clip by mask layer没有客户端引擎需要 rasterio Python 侧车桌面应用会负责管理它 —— 参见 开始使用 - 可选 Python 侧车。每个工具顶部的引擎选择器会显示可用选项对大栅格或地理 CRS 下的地形建议优先使用侧车引擎。步骤 1加载 DEM添加一个高程栅格作为图层例如 GeoTIFF 或 COG 格式的 DEM参见 添加数据。栅格工具是文件进、文件出因此本地或可访问的栅格效果最好。步骤 2山体阴影打开处理 → GeoLibre 工具箱 → 栅格 → 山体阴影。选择 DEM 作为输入如需调整光照可设置方位角azimuth、高度角altitude和 z 因子z-factor。运行它。着色浮雕栅格即被添加到地图。把它放到其他图层的下方并把上方图层的 混合模式 设为正片叠底Multiply—— 这样可以让浮雕透过颜色显示出来而不是像降低不透明度那样把两者一起洗淡。步骤 3坡度与坡向处理 → GeoLibre 工具箱 → 栅格 → 坡度从 DEM 计算陡峭程度。处理 → GeoLibre 工具箱 → 栅格 → 坡向计算最陡坡的罗盘方向。任选其一对 DEM 运行并用 色带 为输出设置样式。从 控件菜单 打开色条Colorbar以显示数值标尺。步骤 4等高线打开处理 → GeoLibre 工具箱 → 栅格 → 等高线Contour。选择 DEM 并设置等高线间距interval即线之间的高程差。运行以生成矢量格式的等高线图层你可以像任何矢量数据一样为其添加标注和样式。等高线仅在侧车上运行因此这一步需要桌面应用。步骤 5裁剪到研究区要将输出限制在某一研究区域内使用处理 → GeoLibre 工具箱 → 栅格 → 按范围裁剪Clip by extent边界框浏览器中也可运行或按掩膜图层裁剪矢量掩膜仅侧车。参见 处理工具 - 栅格。后续进阶用栅格转矢量Polygonize把栅格输出转为矢量或写出栅格转 COG用于分享。参见 云原生数据。用时间滑块插件对栅格序列做时间动画。参见 数据集成。教程五空间 SQLSQL 工作区 让你用 DuckDB Spatial SQL 分析数据并将结果添加到地图。它基于 DuckDB-WASM 运行因此在浏览器和桌面应用中都可用。从处理 → SQL 工作区打开。步骤 1查询已加载的图层每个已加载的矢量图层都是一个可查询的表。先加载示例国家图层参见 首张地图然后运行SELECT NAME, CONTINENT, GDP_MD_EST FROM countries ORDER BY GDP_MD_EST DESC LIMIT 10;点击运行即可看到预估 GDP 最高的十个国家。注意示例数据集的列NAME、CONTINENT、POP_EST、GDP_MD_EST是示例countries.parquet中采用的 Natural Earth 字段名其几何列是geom。其他数据集有自己的列名。要发现它们可以先运行DESCRIBE SELECT * FROM your-file-url。步骤 2直接查询远程文件你不必先加载文件。工作区会检测FROM子句中的裸 URL 并自动为其包上正确的读取器然后通过 HTTP range 请求流式读取文件因此无需整体下载。这种裸 URL 简写是 SQL 工作区的便利特性在标准 DuckDB CLI 中你需要显式写read_parquet(https://...)。SELECT COUNT(*) AS n FROM https://data.source.coop/giswqs/opengeos/countries.parquet;从仓库源码看这条裸 URL 流式读取能力与 duckdb-vector-loader.ts 的按需加载逻辑同源测试 sql-query-layer.test.ts 与 duckdb-vector-guard.test.ts 覆盖了查询图层与矢量加载的防护边界。步骤 3使用空间函数空间扩展已被加载因此所有ST_*函数都可用。例如计算面积并保留geom列以便结果上图-- 数据位于 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;步骤 4把结果添加到地图当查询返回几何列时点击添加为图层Add as layer即可从结果创建新图层可选命名。结果图层与任何矢量图层一样支持 识别、选择与属性表而且可以一次添加多个结果图层。步骤 5导出直接在 SQL 工作区把查询结果导出为CSV或GeoParquet——导出 CSV与导出 GeoParquet按钮就位于添加为图层旁边。参见 SQL 工作区。小贴士示例查询与历史使用示例查询菜单从一个可运行的查询起步使用历史重跑之前的查询。后续进阶用菜单驱动的 矢量分析 工具完成等价的几何操作。在 云原生数据 中把结果转换为云原生格式。教程六分享与嵌入当你得到满意的地图后可以把它发布为公开链接并嵌入到任意网页中。本教程覆盖这两件事。完整参考见 嵌入与分享。步骤 1设置你的分享令牌分享会把项目上传到share.geolibre.app使用个人 API 令牌。打开设置 → 环境变量Settings → Environment Variables。把你的令牌粘贴到Share.GeoLibre API token字段。可在 share.geolibre.app/settings 的 设置 → API 令牌 下创建。只需设置一次。步骤 2分享项目构建你的地图添加图层、设置样式、把地图视图调整到你希望观众落地的位置。打开项目 → 分享...Project → Share...。确认项目标题并上传。GeoLibre 会返回一个指向.geolibre.json文件的公开 URL例如https://share.geolibre.app/you/my-map.geolibre.json分享文件捕获的内容与本地保存完全一致图层、样式、插件状态和地图视图。例外是读取你电脑上文件的图层分享前对话框会把这些图层列为缺失因为share.geolibre.app只存储项目文件绝不上传你的数据文件。关于如何托管这些本地数据参见 分享本地数据。步骤 3打开分享的地图任何人都可以通过把项目 URL 作为url参数传给在线版来打开分享的项目https://web.geolibre.app/?urlhttps://share.geolibre.app/you/my-map.geolibre.json步骤 4把它嵌入到页面使用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加载时强制深色主题。当读者需要能开关图层、探索数据但不能修改时使用layoutviewer当地图只是页面中的一个插图而非交互对象时使用maponly。完整的参数表见 URL 参数。步骤 5从你的页面驱动地图URL 参数只在加载时配置一次嵌入。若要在运行时持续与地图对话 —— 例如飞到用户在你自己的 UI 里点击的记录、并监听他们在图内的操作 —— 可以安装类型化客户端npm install geolibre/embedimport { connect } from geolibre/embed; const map await connect(document.querySelector(iframe), { origin: https://web.geolibre.app, }); map.on(selectionChanged, ({ featureIds }) showRecordFor(featureIds[0])); async function focusField(field) { await map.setView({ bbox: field.bbox }); await map.highlightFeature({ layerId: fields, filter: { parcel_id: field.id }, fit: true }); }这段代码只在把你的页面源origin加入白名单的部署上生效 ——web.geolibre.app本身没有白名单因此运行时 API 只适用于你自己托管的构建版。白名单、完整命令列表以及免依赖的原始postMessage协议参见 运行时与地图对话。仓库中的packages/embed包正是这个类型化客户端的实现载体embed 包源码配套测试 embed-api.test.ts 与 embed-client.test.ts 验证了 API 与客户端的契约。后续进阶分享前用 控件菜单 调优哪些控件出现。回到 首张地图 构建你想分享的地图。视频教程按需观看的实操演示除了文字教程官方还维护了一组录制好的视频教程详见 视频教程按时间从旧到新排列每一条都与上文的文字教程相互呼应GeoLibre 1.0一个免费、开源、随处运行的云原生 GIS40:18—— 完整介绍浏览器、桌面、Jupyter 三种构建方式的安装与运行项目、矢量/栅格数据、属性与几何编辑、流式加载 180 GB 数据集而不下载、PMTiles、3D 瓦片、LiDAR、DuckDB、地图控件与分享。浏览器中的地理处理GeoLibre 内置 700 免费 GIS 工具零安装21:52—— 完全运行在 WebAssembly 上的 Whitebox Next Gen 工具箱涵盖地形、水文、LiDAR、遥感、栅格与矢量工具。该工具箱目前已增长到 1000 工具见 处理工具。在浏览器中访问免费高分辨率灾害卫星影像8:26—— 安装 Vantor Open Data 插件、检索 STAC 目录、对比灾前灾后影像并下载原始 COG。用 GeoLibre 在浏览器中规整建筑足迹16:25—— 用 Rust 实现的规整化工具在浏览器内清理不规则建筑多边形附实时示例项目链接。GeoLibre GeoLens自托管地理空间数据的现代 GIS 技术栈25:41—— 部署 GeoLens、从 GeoLibre 浏览其目录、构建带拉伸与表达式样式的 3D 地图、随时间动画展示建筑增长、编辑并回写 GeoLens。用 GeoLibre Model Builder 与 AI 助手创建可复用的 GIS 工作流18:55—— 在浏览器中构建图形化、可复用的处理流程并从自然语言提示生成模型AI 助手。用免费高分辨率卫星影像制图 2026 年尼泊尔洪水23:14—— 完整的灾害响应工作流查找、查看、对比、下载来自 Vantor Open Data、Planet Crisis Response 与 OpenAerialMap 的开放影像构建前后对比滑动地图、3D 地形探索、Overture Maps 建筑足迹提取与导出。用 GeoLibre 构建云原生 GIS 工作流1:07:28—— 录制的网络研讨会最长的项目总览COG、GeoParquet、PMTiles、DuckDB 与 WebAssembly 如何协同工作插件生态、跨平台构建与 GeoAI 集成。用 GeoLibre 在浏览器中进行影像地理配准15:35—— 放置地面控制点、选择变换方法、读取逐点与 RMS 残差、导出 GeoTIFF、处理 NoData 透明并用滑动工具对比底图。每条视频都有分章节内容与总结统一收录在 视频教程。学习路径建议与常见问题按任务选择起点只想快速出图 → 首张地图。面对的是远程大数据集Parquet / COG / PMTiles→ 云原生数据。做几何操作缓冲、叠加、连接→ 矢量分析。从 DEM 派生地形产品 → 地形分析。用 SQL 分析并上图 → 空间 SQL。发布与嵌入 → 分享与嵌入。常见问题速查哪些步骤必须用桌面应用打开/保存项目文件、读取本地 MBTiles 与栅格、Python 侧车工具rasterio 栅格处理、栅格转 COG / 矢量转 FlatGeobuf / 矢量转 PMTiles 等转换、等高线与按掩膜裁剪。Whitebox 工具箱除外 —— 它在浏览器中以 WebAssembly 运行。哪些引擎可用于矢量缓冲客户端Turf.js浏览器零配置、侧车GeoPandas桌面、PythonPyodide浏览器内运行同样的 GeoPandas 代码。大范围高精度距离请选后两者。如何让 COG 序列动起来配合时间滑块插件见 数据集成。嵌入参数组合规则maponly、layoutviewer、layoutcompact、toolbarnone、panelsnone、themedark可自由组合。结语六篇官方教程构成了一条完整的学习主线从添加与样式化数据首张地图开始到云原生格式的加载与转换再到矢量/地形分析与 SQL 查询最后以分享与嵌入收尾。配合 用户指南 的参考细节与 视频教程 的实操演示你可以在浏览器、桌面与 Jupyter 三种环境下逐步掌握 GeoLibre 的核心工作流。建议从在线版开始零安装体验遇到需要本地文件或 Python 侧车的步骤再切换到桌面应用。【免费下载链接】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),仅供参考
返回列表