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 集成:
geolibrePython package 允許應用程序可以被嵌入到 Jupyter notebooks 中。這在 UI 編輯與 Python API(例如add_geojson,add_tile_layer,add_cog)之間建立了雙向同步。
部署與共享
GeoLibre 提供兩種主要的交互方式:
- 桌面應用程序: 基於 Tauri 的應用程序提供完整的檔案系統訪問權限,用於本地 MBTiles, 本地柵格讀取, 以及對
.geolibre.json專案文件的保存/打開操作。 - 瀏覽器 Demo: 部署在 GitHub Pages 上的靜態網站,完全在客戶端運行。它在設計上是私密的,沒有分析數據或服務器賬戶。用戶可以通過使用
url查詢參數的公開.geolibre.jsonURL 來共享專案。
社群回饋與性能
雖然社群已將該項目作為 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 的組合對於公共數據集具有極高的性能。