epk2t_grids.R 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #' 1x1 km kaardiruudukeste genereerimine
  2. #'
  3. #' Eesti projektsioonile vastava ning kogu Eestit katva ruutvõrgustiku genereerimine ja salvestamine andmebaasi. Ruutvõrgustiku ruudu suurus 1x1 km. Võrgustik salvestatakse vaikimisi andmebaasi nime 'maaamet.epk2t_grid' alla.Loe: \url{https://geoportaal.maaamet.ee/est/Ruumiandmed/Kaardilehtede-susteemid-p224.html}. Koniguratsiooni muutmiseks muuda konfiguratsiooni. Muutujate vaikeväärtused on sellised, et ei ole vaja midagi muuta.
  4. #' @param conf A list() of configuration variables. Default values \code{\link[ruut]{get_config}}.
  5. #' @return No output.
  6. #' @seealso [ruut::get_config()], [ruut::copy_shp_to_db()]
  7. #' @keywords postgis, maps, ESRI Shpfile, OSM
  8. #' @export
  9. #' @examples
  10. #' \dontrun{
  11. #'
  12. #' conf <- ruut::get_config()
  13. #' epk2t_grids(conf = conf)
  14. #' }
  15. epk2t_grids <- function(conf = NULL) {
  16. ans <- utils::askYesNo("Do you want to import maps into database?", default = F)
  17. if (!ans | is.na(ans)) {
  18. cat("\n------------------------\n")
  19. cat("Kaardikihte ei lisatud.")
  20. cat("\n------------------------\n")
  21. return()
  22. }
  23. if (ans) {
  24. # Temp directory
  25. tmp_dir <- sprintf("%s/tmp/%s", system.file(package = "estmap"), "maaamet_epk_grids")
  26. if (!dir.exists(tmp_dir)) {
  27. dir.create(tmp_dir)
  28. }
  29. tmp_file <- sprintf("%s/epk2t_grid.gpkg", tmp_dir)
  30. if (!file.exists(tmp_file)) {
  31. # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid")
  32. algorithm <- "grass7:v.mkgrid"
  33. # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
  34. result <- qgisprocess::qgis_run_algorithm(
  35. algorithm = algorithm,
  36. "-h" = 0,
  37. "-p" = 0,
  38. GRASS_OUTPUT_TYPE_PARAMETER = 0,
  39. GRASS_REGION_PARAMETER = "",
  40. GRASS_VECTOR_DSCO = "",
  41. GRASS_VECTOR_EXPORT_NOCAT = 0,
  42. GRASS_VECTOR_LCO = "",
  43. angle = 0,
  44. box = "1000,1000",
  45. breaks = 0,
  46. coordinates = "300000,6300000 [EPSG:3301]",
  47. grid = "400,500",
  48. map = tmp_file,
  49. position = 0,
  50. # .quiet = TRUE
  51. )
  52. # result
  53. # epk2t_grid <- sf::read_sf(qgisprocess::qgis_output(result, "map"))
  54. # sf::st_geometry(epk2t_grid) %>% plot()
  55. }
  56. conf <- ruut::get_config()
  57. conf$table <- "epk2t_grid"
  58. conf$schema <- "maaamet"
  59. ruut::copy_qgis_object_to_db(
  60. x = result, conf = conf, geometry_type = "POLYGON",
  61. crs_source = "EPSG:3301"
  62. )
  63. cat(sprintf(
  64. "\nFail %s kopeeriti POSTGIS andmebaasi %s.%s\n\n",
  65. tmp_file, conf$schema, conf$table
  66. ))
  67. }
  68. }