在 sf::st_write() 中设置几何列名
Set geometry column name in sf::st_write()
从 sf 版本 0.9.0 开始,st_write_db()
和 st_read_db()
已失效。这些函数有很好的参数 geom_name = 'wkb_geometry'
允许用户设置新创建的简单特征列的名称 table.
我仍然可以使用 st_write()
以某种方式执行此操作,还是必须在单独的调用中执行此操作?例如。对于 Postgres:ALTER TABLE x REANAME COLUMN geometry TO geom;
也许用 layer_options =
参数?但是我不知道去哪里查找它的可能性?
本地机器
- sf_0.9-7 使用 GEOS 3.8.0、GDAL 3.0.4、PROJ 7.0.0。
服务器
- PostgreSQL 9.6.20
- PostGIS
POSTGIS="2.3.3 r15473" GEOS="3.7.1-CAPI-1.11.1 27a5e771" PROJ="版本 4.9.3,2016 年 8 月 15 日" GDAL="GDAL 2.2.3,2017/11/20 发布" LIBXML="2.9.4" LIBJSON="0.12.1" 拓扑栅格
sf
使用GDAL读写数据。 GDAL 文档包含每个驱动程序可能的图层创建选项列表。对于 Postgres,可以在 https://gdal.org/drivers/vector/pg.html#layer-creation-options
下找到
基于此 layer_options="GEOMETRY_NAME=wkb_geometry"
应该可以解决问题。
从 sf 版本 0.9.0 开始,st_write_db()
和 st_read_db()
已失效。这些函数有很好的参数 geom_name = 'wkb_geometry'
允许用户设置新创建的简单特征列的名称 table.
我仍然可以使用 st_write()
以某种方式执行此操作,还是必须在单独的调用中执行此操作?例如。对于 Postgres:ALTER TABLE x REANAME COLUMN geometry TO geom;
也许用 layer_options =
参数?但是我不知道去哪里查找它的可能性?
本地机器
- sf_0.9-7 使用 GEOS 3.8.0、GDAL 3.0.4、PROJ 7.0.0。
服务器
- PostgreSQL 9.6.20
- PostGIS POSTGIS="2.3.3 r15473" GEOS="3.7.1-CAPI-1.11.1 27a5e771" PROJ="版本 4.9.3,2016 年 8 月 15 日" GDAL="GDAL 2.2.3,2017/11/20 发布" LIBXML="2.9.4" LIBJSON="0.12.1" 拓扑栅格
sf
使用GDAL读写数据。 GDAL 文档包含每个驱动程序可能的图层创建选项列表。对于 Postgres,可以在 https://gdal.org/drivers/vector/pg.html#layer-creation-options
基于此 layer_options="GEOMETRY_NAME=wkb_geometry"
应该可以解决问题。