STV_Export2Shapefile

将数据库表或子查询中的 GEOGRAPHY 或 GEOMETRY 数据导出到 shapefile 。输出被写入使用 STV_SetExportShapefileDirectory 指定的目录。

行为类型

不可变

语法

STV_Export2Shapefile( columns USING PARAMETERS shapefile = 'shapefile-name'
   [, overwrite = boolean ]
   [, shape = 'spatial-class'] )
OVER()

参数

columns
导出到 shapefile 的列。

星号 (*) 值等同于列出 FROM 子句的所有列。

参数

shapefile
shapefile 组件名称的前缀。需要满足以下要求:
  • 必须以文件扩展名 .shp 结尾。

  • 长度限制为 128 个八位字节,例如 city-data.shp

如果要将 shapefile 保存到子目录,可通过将子目录连接到 shapefile-name 来实现,例如, visualizations/city-data.shp

您还可以将 shapefile 导出到您具有读写权限的挂载 S3 目录。使用语法 bucketname/path/filename

overwrite

用于指定是否覆盖索引的 BOOLEAN(如果存在索引)。此参数不能为 NULL。

默认值: False

shape
以下空间类之一:
  • Point

  • Polygon

  • Linestring

  • Multipoint

  • Multipolygon

  • Multilinestring

多边形和多边形集合始终为顺时针方向。

默认值: Polygon

返回

shapefile 导出目录中的三个文件,扩展名为 .shp.shx.dbf

限制

  • 如果多边形集合、线串集合或点集合仅包含一个元素,则分别被写为多边形、线或点。

  • 超过 10 个字符的列名称会被截短。

  • 不能导出空的 POINTS。

  • 会跳过所有包含 NULL 几何或地理数据的列。

  • 不支持或无效的日期将被替换为 NULL。

  • 数字值在导出时可能会损失精度。发生精度损失的原因是,.dbf 文件中的目标字段为 64 位 FLOAT 列,只能表示约 15 个有效位。

  • shapefile 的大小不能超过 4GB。如果您的 shapefile 过大,请尝试拆分数据并导出到多个 shapefile。

示例

以下示例显示了如何使用 STV_Export2Shapefile 将表 geo_data 的所有列导出到名为 city-data.shp 的 shapefile:

=> SELECT STV_Export2Shapefile(*
            USING PARAMETERS shapefile = 'visualizations/city-data.shp',
                             overwrite = true, shape = 'Point')
            OVER()
            FROM geo_data
            WHERE REVENUE > 25000;
 Rows Exported |                          File Path
---------------+--------------------------------------------------------------
       6442892 | v_geo-db_node0001: /home/geo/temp/visualizations/city-data.shp
(1 row)