我借助RPostgreSQL包和ST_AsText
将我的PostgreSQL数据库中的一些空间数据加载到R中:
dbGetQuery(con, "SELECT id, ST_AsText(geom) FROM table;")
做完一些分析之后我想回去那样。我的geom列是stil格式为character / WKT。很遗憾,dbWriteTable
不接受与dbGetQuery
类似的论点。
到目前为止,我找到的唯一方法是将数据导入数据库并在另一步中使用ST_GeomFromText
来获取几何数据类型。
答案 0 :(得分:1)
我使用dbWriteTable()
和postGIStools包在我的数据库上创建了一个表来插入数据(它必须是一个SpatialPolygonsDataFrame)。
## Create an empty table on DB
dbWriteTable(con, name=c("public", "<table>"), value=(dataframe[-c(1:nrow(dataframe)), ]))
require(postGIStools)
## INSERT INTO
postgis_insert(con, df=SpatialPolygonsDataFrame, tbl="table", geom_name="st_astext")
dbSendQuery(con, "ALTER TABLE <table> RENAME st_astext TO geom;")
dbSendQuery(con, "ALTER TABLE <table> ALTER COLUMN geom TYPE geometry;")