ST_HexagonGrid — 返回一组完全覆盖几何参数边界的六边形和单元格索引。
setof record ST_HexagonGrid(
float8 size, geometry bounds)
;
从平面的六边形平铺的概念开始。(不是六角形的地球瓷砖,这不是 H3 平铺方案。)对于给定的平面SRS和给定的边大小,从SRS的原点开始,平面有一个唯一的六边形平铺,即平铺(SRS,SIZE)。此函数回答以下问题:给定平铺(SRS,大小)中的哪些六边形与给定边界重叠。
输出六边形的SRS是由边界几何体提供的SRS。
将六边形的边大小加倍或三倍将生成与原点平铺相匹配的新父平铺。不幸的是,不可能生成子瓷砖完全适合其中的父六边形瓷砖。
可用性:3.1.0
要对六边形平铺进行点汇总,请使用点的范围作为边界生成一个六边形网格,然后在空间上连接到该网格。
SELECT COUNT(*), hexes.geom FROM ST_HexagonGrid( 10000, ST_SetSRID(ST_EstimatedExtent('pointtable', 'geom'), 3857) ) AS hexes INNER JOIN pointtable AS pts ON ST_Intersects(pts.geom, hexes.geom) GROUP BY hexes.geom;
如果我们为每个多边形边界生成一组六边形,并过滤掉那些不与其六边形相交的六边形,我们最终会为每个多边形生成一个平铺。
平铺州的结果是覆盖每个州的六边形,并在州之间的边界上重叠多个六边形。
![]() | |
引用From列表中以前的表时,集合返回函数隐含了关键字SLATEAL。因此,对于本例来说,CROSS JOIN、CROSS JOIN或只是纯连接是等价的构造。 |
SELECT admin1.gid, hex.geom FROM admin1 CROSS JOIN ST_HexagonGrid(100000, admin1.geom) AS hex WHERE adm0_a3 = 'USA' AND ST_Intersects(admin1.geom, hex.geom)