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)