ajutised_muutujad.R 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ajutised_muutujad <- function(pk = NULL, obj = NULL, conf = NULL) {
  2. ## Tühi list muutuja, mida funktsioon tagastab.
  3. l <- list()
  4. ## Objekti muutujale väärtuste omistamine, kui seda pole antud.
  5. if (is.null(obj)) {
  6. obj <- "demo"
  7. }
  8. obj <- gsub(" ", "_", tolower(obj))
  9. ## Konfiguratsiooni muutujale väärtuste omistamine, kui seda pole antud.
  10. if (is.null(conf)) {
  11. conf <- ruut::get_config()
  12. conf$schema <- obj
  13. }
  14. ## Kontrollime kas objektil on andmebaas ja kas andmebaasis on piirjoon.
  15. if (ruut::db_is_shema_exist(schema = conf$schema)) {
  16. piir_table_name <- "a00_piir"
  17. if (piir_table_name %in% ruut::db_schema_tablenames(conf = conf)) {
  18. conn <- ruut::db_connect(conf = conf)
  19. try(pk <- sf::st_read(dsn = conn, layer = c(conf$schema, piir_table_name)))
  20. }
  21. }
  22. ## Piirkonna muutujale väärtuste omistamine, kui seda pole antud.
  23. if (is.null(pk)) {
  24. # geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658300,6474800],[658300,6475000],[658700,6476000],[659600,6475000],[659600,6474800],[658300,6474800]]}')
  25. geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658400,6474800],[658300,6475000],[658700,6476000],[659600,6475000],[659600,6474800],[659200,6474950],[658400,6474800]]}')
  26. pk <- sf::read_sf(geojson_txt)
  27. pk <- sf::st_cast(pk, "POLYGON")
  28. sf::st_crs(pk) <- 3301
  29. attributes(pk)$names <- attributes(pk)$sf_column <- "geom"
  30. }
  31. ## ------------- muutujad ja teisendused ---------------
  32. tmp_dir <- tempdir() # ajutine kataloog
  33. tmp_gpkg_file <- sprintf("%s/%s.gpkg", tmp_dir, obj) # ajutine gpkg fail
  34. conf$gpkg_home <- tmp_dir
  35. conf$gpkg_file <- obj
  36. ## Loome lingid gpkg ajutistest tabelitest lugemiseks ja kirjutamiseks
  37. conf$gpkg_table <- "test_layer_2"
  38. l$tmp_gpkg_file_output_2 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = F)
  39. l$tmp_gpkg_file_input_2 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = T)
  40. conf$gpkg_table <- "test_layer_1"
  41. l$tmp_gpkg_file_output_1 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = F)
  42. l$tmp_gpkg_file_input_1 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = T)
  43. # Loome ajutise gpkg faili koos ajutise tabeliga.
  44. sf::write_sf(pk, dsn = tmp_gpkg_file, layer = "test_layer_0", driver = "gpkg", fid_column_name = "id", delete_dsn = T)
  45. cat(sprintf("\n------------------\nAjutise gpkg faili asukoht: %s\n", tmp_gpkg_file))
  46. sf::st_layers(dsn = tmp_gpkg_file)
  47. # unlink(l$tmp_gpkg_file)
  48. l$obj <- obj
  49. l$tmp_gpkg_file <- tmp_gpkg_file
  50. l$tmp_dir <- tmp_dir
  51. l$pk <- pk
  52. l$conf <- conf
  53. return(l)
  54. }