GeoLibre 1.0 發佈說明 / 更新內容

GeoLibre 1.0 是一個雲端原生地理資訊系統 (GIS) 平台的穩定原型,旨在進行地理空間數據的可視化、探索與分析。它提供了一個可在桌面與網頁環境中運行的統一工作空間,利用現代 Web 技術堆疊來實現快速的本地與雲端原生數據工作流。

核心技術堆疊

GeoLibre 使用高性能的 Web 技術組合構建,以確保響應能力與跨平台兼容性:

  • UI 框架: Tauri, React, 與 TypeScript。
  • 地圖引擎: MapLibre GL JS 與 deck.gl。
  • 數據處理: 用於瀏覽器內 SQL 分析的 DuckDB-WASM Spatial,以及用於向量處理的 Turf.js。
  • Sidecar 引擎: 可選的 Python sidecars,利用 rasterio 與 GeoPandas 進行進階的柵格與向量處理。

關鍵功能與能力

數據集成與格式

GeoLibre 1.0 支持廣泛的數據源,包括本地文件與遠端服務。它可處理:

  • 雲端原生格式: GeoParquet, FlatGeobuf, PMTiles, Zarr, COG (Cloud Optimized GeoTIFF), 與 GeoTIFF。
  • Web 服務: XYZ, WMS, WFS, WMTS, ArcGIS, 與 STAC 服務。
  • 數據庫連接: DuckDB 與 PostgreSQL。
  • 3D 數據: LiDAR, Gaussian splats, 與 3D Tiles。
  • 標準格式: MBTiles 與 SHP.zip。

分析與處理工具

GeoLibre 提供基於瀏覽器與 sidecar 驅動的分析工具:

  • SQL 工作空間: 用戶可以針對已加載的圖層與遠端 URL 直接在瀏覽器中運行 DuckDB Spatial SQL,系統會自動將 URL 包裝成匹配的讀取器。
  • 向量工具: 常見的幾何運算(buffer, centroids, convex hull, dissolve, bounding box, simplify, clip, intersection, difference, 與 union)由 Turf.js 提供支持,並可選擇使用 GeoPandas sidecar 以獲得更高的性能。
  • Raster 工具: 諸如 hillshade, slope, aspect, reproject, resample, 與 contouring 等運算通過 rasterio Python sidecar 執行。
  • 轉換: 專用菜單允許將數據轉換為雲端原生格式,如 GeoParquet, FlatGeobuf, PMTiles, 與 COG。
  • Whitebox Toolbox: 可通過可選的 Python sidecar 進行批量地理處理。

可擴展性與生態系統

  • 插件市場: GeoLibre 包含一個內置的市場來安裝、更新與移除外部插件。內置插件包括 MapLibre 組件, Overture Maps, LiDAR, GeoAgent, 與 GeoEditor。
  • Python 與 Jupyter 集成: geolibre Python package 允許應用程序可以被嵌入到 Jupyter notebooks 中。這在 UI 編輯與 Python API(例如 add_geojson, add_tile_layer, add_cog)之間建立了雙向同步。

部署與共享

GeoLibre 提供兩種主要的交互方式:

  • 桌面應用程序: 基於 Tauri 的應用程序提供完整的檔案系統訪問權限,用於本地 MBTiles, 本地柵格讀取, 以及對 .geolibre.json 專案文件的保存/打開操作。
  • 瀏覽器 Demo: 部署在 GitHub Pages 上的靜態網站,完全在客戶端運行。它在設計上是私密的,沒有分析數據或服務器賬戶。用戶可以通過使用 url 查詢參數的公開 .geolibre.json URL 來共享專案。

社群回饋與性能

雖然社群已將該項目作為 ArcGIS Online 或 QGIS 的輕量級替代方案而表示歡迎,但部分用戶報告了處理大型數據集時的性能問題。一位用戶指出,雖然較小的文件(例如 30MB GeoPackage)可以正常工作,但超過 1GB 的文件會導致瀏覽器掛起與崩潰。

"The web version was giving me IO errors for any file I tried to load in. The desktop version worked a little better... Trying to load some bigger files >1gb kind of just sat on 'Importing data...' for a while, then the screen went blank and I lost all my layers."

其他用戶對該技術堆疊的效率表示讚賞,並指出 MapLibre 與 DuckDB 的組合對於公共數據集具有極高的性能。

Sources