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

使用shp2pgsql导入las2tin生成的SHP时遇Unknown geometry type:31错误

问题调试与解决:shp2pgsql转换TIN格式SHP报错Unknown geometry type:31

问题背景

执行以下流程时触发错误:

  • 使用las2tin工具从LAS文件生成TIN格式的SHP文件:
    las2tin64.exe -i input.las -o tin.shp
    
  • 调用shp2pgsql将该SHP文件转为PostGIS兼容的SQL文件:
    shp2pgsql -s 4326 tin.shp temp_table > tin.sql
    
  • 错误提示:

    Unknown geometry type: 31

错误原因

ESRI Shapefile中的TIN几何类型(代码31)并非shp2pgsql原生支持的类型,因此无法直接完成转换。

调试方向

  1. 用ogrinfo查看原始SHP的几何类型,确认是否为TIN:
    ogrinfo tin.shp -so
    
  2. 执行shp2pgsql --help或核对官方文档,确认其支持的几何类型范围,验证TIN是否不在列表内。

已验证的可行解决方法

通过PostGIS附带的ogr2ogr工具将TIN转换为PostGIS兼容的POLYGONZ类型,再进行SQL转换:

  1. 生成兼容的中间SHP文件:
    ogr2ogr -f "ESRI Shapefile" -nlt POLYGONZ -explodecollections output.shp input.shp
    
    参数说明:
    • -nlt POLYGONZ:指定输出几何类型为带Z值的多边形
    • -explodecollections:将复合几何对象拆分为单个独立对象
  2. 用shp2pgsql处理中间文件(补充原命令中缺失的SRID参数):
    shp2pgsql -s 4326 -I output.shp temp_table > tin.sql
    

内容的提问来源于stack exchange,提问作者Mandroid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:33:27