#' Teeregistri WFS kihitidest uute andmete moodustamine #' #' 1. Põhi-, kõrval ja tugimaanteedest ning rambid moodustatakse uus andmebaas 'riigiteedevork'. #' Eesti avaandmete \url{https://avaandmed.eesti.ee/datasets?emsId=35} teabevärava kaudu teederegistri WFS (Web Feature Service) andmete eksportimine postgisandmebaasi. WFS andmestiku kirjeldus: \url{https://teeregister-api.mnt.ee/teenus/wfs?request=GetCapabilities&service=WFS} #' #' @param conf A list() of configuration variables. Default values \code{\link[ruut]{get_config}}. #' @return No output. #' @seealso [ruut::get_config()], [ruut::copy_shp_to_db()], [estmap::teeregister_wfs()] #' @keywords postgis, maps, WFS, OSM #' @export #' @examples #' \dontrun{ #' #' conf <- ruut::get_config() #' teeregister_wfs_muutmine(conf = conf) #' } teeregister_wfs_muutmine <- function(conf = NULL) { ## ------------- muutujad ja teisendused --------------- if (is.null(conf)) { conf <- ruut::get_config() conf$schema <- "teeregister_wfs" } # ## Teeregistri avaandmete kihtide lugemine # wfs_list <- loe_teeregistri_wfs_kihid() # layer_list <- wfs_list[, "layer"] # layer_list <- tolower(gsub("ms:", "", layer_list)) ## Loe instaleeritud tabelid andmebaasis installed_tables <- ruut::db_schema_tablenames(conf = conf) ## Kontrollime ühendatavate andmebaaside olemasolu. if (all(c("pohimaantee", "ramp", "tugimaantee", "korvalmaantee") %in% installed_tables)) { ## 1. --------- Ühendame riigiteed üheks võrgustikuks -------------- # ruut::qgis_algorithm_search_by_word("merge") algorithm <- "native:mergevectorlayers" # ruut::qgis_show_help(algorithm = algorithm) conf$table <- "pohimaantee" layer_1 <- ruut::construct_to_gpkg_output_postgres_str( conf = conf, geometry_type = "MultiLineString", srid = 3301, checkPrimaryKeyUnicity = TRUE, key = "id", geometry_field = "geometry" ) conf$table <- "ramp" layer_2 <- ruut::construct_to_gpkg_output_postgres_str( conf = conf, geometry_type = "MultiLineString", srid = 3301, checkPrimaryKeyUnicity = TRUE, key = "id", geometry_field = "geometry" ) conf$table <- "tugimaantee" layer_3 <- ruut::construct_to_gpkg_output_postgres_str( conf = conf, geometry_type = "MultiLineString", srid = 3301, checkPrimaryKeyUnicity = TRUE, key = "id", geometry_field = "geometry" ) conf$table <- "korvalmaantee" layer_4 <- ruut::construct_to_gpkg_output_postgres_str( conf = conf, geometry_type = "MultiLineString", srid = 3301, checkPrimaryKeyUnicity = TRUE, key = "id", geometry_field = "geometry" ) conf$table <- "riigiteedevork" output <- ruut::construct_to_gpkg_output_postgres_str(conf = conf, geometry_field = "geometry", geometry_type = "MultiLineString", srid = 3301, checkPrimaryKeyUnicity = FALSE, key = "fid") cmd <- sprintf( "qgis_process run native:mergevectorlayers --CRS='epsg:3301' --LAYERS='%s' --LAYERS='%s' --LAYERS='%s' --LAYERS='%s' --OUTPUT='%s' ", layer_1, layer_2, layer_3, layer_4, output ) system(cmd) cat(sprintf("\n%s\n-------------\n", "Loodi teedev\U00F5rgu andmebaas 'riigiteedevork'.")) } }