Tôi đang cố gắng viết nhiều lớp vào cùng một GeoPackage trong R, nhưng tôi gặp lỗi Creation of output file failed
. Tôi đã cố gắng tìm kiếm tài liệu đọc và ghi vào các tệp .gpkg bằng RGDAL, ví dụ để tìm hiểu xem có writeOGR()
thực sự hỗ trợ nhiều lớp hay không, với rất ít thành công. Điều này thậm chí có thể, nếu vậy, làm thế nào để làm điều đó? Ví dụ làm việc tối thiểu:
library(sp)
library(maptools)
library(rgdal)
data(wrld_simpl)
norway <- wrld_simpl[wrld_simpl$NAME == "Norway", ]
sweden <- wrld_simpl[wrld_simpl$NAME == "Sweden", ]
file <- tempfile("scandinavia", fileext = c(".gpkg"))
writeOGR(norway, dsn = file, layer = "norway", driver = "GPKG")
writeOGR(sweden, dsn = file, layer = "sweden", driver = "GPKG")
ogrListLayers(file)
Rõ ràng có một ogr2ogr
lệnh shell thực hiện thủ thuật (hat tip mdsumner ), mà tôi có thể gói trong hàm R. Tuy nhiên, sẽ rất gọn gàng nếu writeOGR () và / hoặc st_write () trong sf
gói được tích hợp sẵn. Tôi cho rằng nó phụ thuộc vào GDAL layer_options
, nhưng dường như không có tùy chọn loại phụ cho GPKG trong GDAL .
Tôi có thể viết một hàm bao bọc đơn giản cho st_write()
nhưng hỗ trợ riêng trong sf
hoặc rgdal
sẽ tốt hơn.