You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostGIS中ST_HexagonGrid返回record而非geometry类型问题咨询

问题原因

ST_HexagonGrid是PostGIS 3.1及以上版本提供的网格生成集函数,它本身的返回值就是行记录(record)类型,并非直接返回geometry类型。该函数返回的每条记录固定包含3个字段:

  • geom:生成的六边形面对象,即你需要的geometry类型数据
  • i:六边形在对应网格中的列索引
  • j:六边形在对应网格中的行索引

你当前的写法是直接把函数返回的整条行记录赋值给了hex字段,因此hex的数据类型就是record,和预期不符。

修正方案

你只需要通过括号解引用行记录里的geom字段,就能拿到目标geometry类型数据,修改后的SQL如下:

WITH buffered AS (
    SELECT 
        ST_Buffer(geom , 10, 'endcap=round join=round') AS geom,
        id
    FROM line),
hexagons AS (
    SELECT 
        (ST_HexagonGrid(10, buffered.geom)).geom AS hex,
        buffered.id
    FROM buffered
) SELECT * FROM hexagons;
  • 注意ST_HexagonGrid调用外层的括号不能省略,否则会触发语法错误
  • 如果业务需要用到网格位置索引,也可以用同样方式单独提取i、j字段使用

内容的提问来源于stack exchange,提问作者four-eyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:09:08