|
@@ -0,0 +1,98 @@
|
|
|
|
|
+#' 100x100 meetrit kaardiruudukeste genereerimine
|
|
|
|
|
+#'
|
|
|
|
|
+#' NB!!!! 100x100 meetrit ruudustike genereerimine võtab aega > 12 tundi. Eesti projektsioonile vastava ning kogu Eestit katva ruutvõrgustiku genereerimine ja salvestamine andmebaasi. Ruutvõrgustiku ruudu suurus 100x100 meetrit. Võrgustik salvestatakse vaikimisi andmebaasi nime 'maaamet.epk02t_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.
|
|
|
|
|
+#' @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()]
|
|
|
|
|
+#' @keywords postgis, maps, ESRI Shpfile, OSM
|
|
|
|
|
+#' @export
|
|
|
|
|
+#' @examples
|
|
|
|
|
+#' \dontrun{
|
|
|
|
|
+#'
|
|
|
|
|
+#' conf <- ruut::get_config()
|
|
|
|
|
+#' epk02t_grids(conf = conf)
|
|
|
|
|
+#' }
|
|
|
|
|
+#'
|
|
|
|
|
+epk02t_grids <- function(conf = NULL) {
|
|
|
|
|
+ ans <- utils::askYesNo("Do you want to import maps into database?", default = F)
|
|
|
|
|
+ if (!ans | is.na(ans)) {
|
|
|
|
|
+ cat("\n------------------------\n")
|
|
|
|
|
+ cat("Kaardikihte ei lisatud.")
|
|
|
|
|
+ cat("\n------------------------\n")
|
|
|
|
|
+ return()
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ans) {
|
|
|
|
|
+ # Temp directory
|
|
|
|
|
+ tmp_dir <- sprintf("%s/%s/epk02t_grid", system.file(package = "estmap"), "maaamet_epk_grids")
|
|
|
|
|
+ if (!dir.exists(tmp_dir)) {
|
|
|
|
|
+ dir.create(tmp_dir, recursive = T)
|
|
|
|
|
+ }
|
|
|
|
|
+ conf <- ruut::get_config()
|
|
|
|
|
+ conf$table <- "epk02t_grid"
|
|
|
|
|
+ conf$schema <- "maaamet"
|
|
|
|
|
+ conf$schema <- "gtfs"
|
|
|
|
|
+ ## Loe instaleeritud tabelid andmebaasis
|
|
|
|
|
+ installed_tables <- ruut::db_schema_tablenames(conf = conf)
|
|
|
|
|
+ algorithm <- "grass7:v.mkgrid"
|
|
|
|
|
+ if (!conf$table %in% installed_tables) {
|
|
|
|
|
+ # 1:40
|
|
|
|
|
+ for (i in 1:40) {
|
|
|
|
|
+ coordinates <- sprintf("300000,6%s0000 [EPSG:3301]", (29 + i))
|
|
|
|
|
+ map <- sprintf("%s/%s.gpkg", tmp_dir, i)
|
|
|
|
|
+ cat(sprintf("\n%s/40 1. coordinates: %s, 2. map: %s", i, coordinates, map))
|
|
|
|
|
+ # ------------------
|
|
|
|
|
+ result <- qgisprocess::qgis_run_algorithm(
|
|
|
|
|
+ algorithm = algorithm,
|
|
|
|
|
+ "-h" = 0,
|
|
|
|
|
+ "-p" = 0,
|
|
|
|
|
+ GRASS_OUTPUT_TYPE_PARAMETER = 3,
|
|
|
|
|
+ GRASS_REGION_PARAMETER = "300000,800000,6320000,6700000 [EPSG:3301]",
|
|
|
|
|
+ GRASS_VECTOR_DSCO = "",
|
|
|
|
|
+ GRASS_VECTOR_EXPORT_NOCAT = 0,
|
|
|
|
|
+ GRASS_VECTOR_LCO = "",
|
|
|
|
|
+ angle = 0,
|
|
|
|
|
+ box = "100,100",
|
|
|
|
|
+ breaks = 0,
|
|
|
|
|
+ coordinates = coordinates,
|
|
|
|
|
+ grid = "100,5000", # "4000,5000"
|
|
|
|
|
+ map = map,
|
|
|
|
|
+ position = 0,
|
|
|
|
|
+ .quiet = TRUE
|
|
|
|
|
+ )
|
|
|
|
|
+ # result
|
|
|
|
|
+ ## Muudame rea numbreid, kuna tsükliga lähevad need kaduma.
|
|
|
|
|
+ layers <- rgdal::ogrListLayers(map)
|
|
|
|
|
+ x <- rgdal::readOGR(map, layers[1])
|
|
|
|
|
+ x$row <- x$row + (i - 1) * 100
|
|
|
|
|
+ x$cat <- rev(x$cat + (i - 1) * 100)
|
|
|
|
|
+ rgdal::writeOGR(obj = x, dsn = map, layer = layers[1], driver = "GPKG", overwrite_layer = T)
|
|
|
|
|
+ ## Lisame kihi andmebaasi
|
|
|
|
|
+ cmd <- sprintf(
|
|
|
|
|
+ paste0(
|
|
|
|
|
+ "ogr2ogr -append --config PG_USE_COPY YES -f PostgreSQL ",
|
|
|
|
|
+ "PG:\" dbname='%s' host=%s port=%d user='%s' password='%s' ",
|
|
|
|
|
+ "sslmode=%s active_schema=%s \" -lco DIM=2 \"%s\" -nlt GEOMETRY ",
|
|
|
|
|
+ "-lco GEOMETRY_NAME=geometry -lco FID=%s -nln %s.%s ",
|
|
|
|
|
+ "-s_srs %s -t_srs %s -nlt %s"
|
|
|
|
|
+ ),
|
|
|
|
|
+ conf$dbname, conf$host, conf$port, conf$user, conf$password, conf$sslmode,
|
|
|
|
|
+ conf$schema, map, "id", conf$schema, conf$table, "EPSG:3301", "EPSG:4326",
|
|
|
|
|
+ "POLYGON"
|
|
|
|
|
+ )
|
|
|
|
|
+ cat(sprintf("\n-----------------\n%s\n", cmd))
|
|
|
|
|
+ system(cmd)
|
|
|
|
|
+ cat(sprintf(
|
|
|
|
|
+ "Fail fail %s kopeeriti POSTGIS andmebaasi %s.%s\n\n",
|
|
|
|
|
+ map, conf$schema, conf$table
|
|
|
|
|
+ ))
|
|
|
|
|
+ }
|
|
|
|
|
+ cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm))
|
|
|
|
|
+ # result
|
|
|
|
|
+ } else {
|
|
|
|
|
+ cat(sprintf(
|
|
|
|
|
+ "\n-----------------\nUue andmebaasi '%s' installimiseks pead vana enne kustutama.\n",
|
|
|
|
|
+ conf$table
|
|
|
|
|
+ ))
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|