PostGIS 是個啥

這篇東西算是複習,瞭解 PostGIS 的基本構成與官方定義

1. 介紹

是什麼

PostGIS 是 PostgreSQL 數據庫的一個擴展插件,它是開源的,使用 GPLv2 協議。

有什麼用

在數據表中增加了地理對象的類型支持,還添加了大量操作這些空間對象的函數、運算符和索引系統。

有什麼功能

PostGIS 提供:

  • 對矢量數據和柵格數據均提供了處理、分析的 SQL 函數,支持拼接、切割、形變、重分類、聚合等操作;
  • 柵格圖像的處理方法;
  • 能通過 SQL 調用的柵格、矢量數據座標重投影函數;
  • GUI 程序或命令行程序來導入、導出 shp 矢量數據,並且通過第三方工具以支持更多格式;
  • 命令行程序來導入多種標準的柵格數據:GeoTiff、NetCDF、PNG、JPG 等
  • 能通過 SQL 調用的,能渲染、導入 KML、GML、GeoJSON、GeoHash、WKT 等標準文本類型的矢量數據的函數
  • 能通過 SQL 語句將柵格渲染至各種格式(GeoTiff、PNG、JPG、NetCDF 等)
  • 矢量或柵格操作函數,包括按區域伸縮柵格像元值、局域統計、按矢量圖形裁剪柵格、矢量化柵格等
  • 3D 對象支持,包括空間索引等函數
  • 網絡拓撲支持
  • 其它

由何而來

PostGIS 是用 C 語言寫的,所以它可以用一些 C/C++ 的庫。它依賴於:

  • GEOS 庫,提供幾何圖形處理算法
  • Proj.4 庫,提供座標重投影函數
  • GDAL 庫,提供柵格數據格式支持和處理手段
  • LibXML2 庫,用於 XML 文檔的解析
  • JSON-C 庫,用於 JSON 的解析
  • SFCGAL 庫,提供額外的 3D 圖形地理處理算法

它遵循 OGC 的 《簡單要素關於SQL的規範》來實現。

附帶了什麼工具

使用空間數據庫,或者說任何數據庫,有幾個關鍵的操作:數據的導入導出。下面有幾個工具要介紹:

  • 命令行工具,shp2pgsql、pgsql2shp、raster2pgsql
  • GUI 工具,shp2pgsql-gui,有些分發版本並沒有,Windows 版本一般都有
  • GDAL 有關工具和庫,它是處理空間數據的利器,比較難啃,但是值得挑戰

2. 與 PostGIS 類似、相關的 PostgreSQL 擴展

主要有:

  • pgRouting,要配合 PostGIS 一起用,擴充了網絡分析功能,例如最短路徑分析等
  • ogrfdw,基於 GDAL/OGR 的外部數據包裝器,意思就是允許 pg 讀取其它數據源爲數據表;其中矢量數據將轉換爲 PostGIS 的幾何類型
  • pgpointcloud,用於在 PostgreSQL 中存儲點雲數據,附有點雲類型與 PostGIS 幾何類型之間相互轉換的功能

參考文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章