| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #' 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'."))
- }
- }
|