PG+POSTGIS地圖空間位置網格聚合算法

目錄

PG核心分包函數WIDTH_BUCKET

聚合點的歸類過程演示

空間聚合效果展示

大規模空間數據方案


 PG,Postgresql數據庫的簡稱,POSGIS是空間函數擴展支持插件集成了很多數據庫級別的空間查詢和空間圖形數據處理能力。

PG核心分包函數WIDTH_BUCKET

WIDTH_BUCKET的原理是將對應的經度、緯度範圍值劃分爲多少份,二這個參數就是地圖四至。比如高德地圖,它的可見範圍,從西至東(經度範圍),從南至北(緯度範圍),正確的四至是一個數組表示的值如,[minX,minY,maxX,MaxY]。

這裏我們的四至(extent)假設爲:[30.431278,117.057442,32.614617,119.235188]

如果我們要將四至分爲x,y軸都分爲20等分,那麼就如下面的SQL語句:

SELECT 
width_bucket(st_x(geom), 117.057442 ,119.235188 ,20) grid_x, 
width_bucket(st_y(geom), 30.431278 , 32.614617, 20) grid_y,  
count(*),
st_centroid(st_collect(geom)) geom,  
array_agg(gid) gids
from tpoint 

where 
st_x(geom) between 117.057442 and 119.235188 
and 
st_y(geom) between 30.431278  and 32.614617 

GROUP BY grid_x,grid_y 

如何測試請看我開源中國上的文章:Postgesql 空間點聚合查詢實驗

聚合點的歸類過程演示

規則分佈過程,取網格中心點:

不規則過程,取包含點的中心位置:

網格聚合,綜合全圖展示效果:

空間聚合效果展示

期望效果:

真實效果:

大規模空間數據方案

雲數據庫HybridDB for PostgreSQL(ApsaraDB HybridDB for PostgreSQL)是一種在線MPP大規模並行處理數據倉庫服務。雲數據庫HybridDB for PostgreSQL基於Greenplum Database開源數據庫項目,並由阿里雲深度擴展,支持OSS外部表、JSON數據類型、HyperLogLog預估分析等功能特性。通過符合SQL2008標準查詢語法及OLAP分析聚合函數,提供靈活的混合分析能力。支持行存儲和列存儲混合模式,提高分析性能,同時支持數據壓縮技術,降低存儲成本。並提供在線擴容、性能監測等服務,用戶無需進行復雜的大規模MPP集羣運維管理,讓DBA、開發人員及數據分析師專注於如何通過SQL提高企業的生產力,創造核心價值。

產品詳情:https://www.aliyun.com/product/gpdb

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