| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #' Maa-ameti kaardiruudukesed
- #'
- #' Source: https://www.eea.europa.eu/data-and-maps/data/eea-reference-grids-2. Andmed salvestatakse postgisi andmebaasi. Schema = 'inspire'. Koniguratsiooni muutmiseks muuda konfiguratsiooni. Muutujate vaikeväärtused on sellised, et ei ole vaja midagi muuta.
- #' @param config list configuration file ruut::get_config()
- #' @param schema str database schema name. Deafult is 'inspire'
- #' @param url link ESRI Shapefile download url.
- #' @seealso [ruut::get_config()]
- #' @keywords postgis, maps, ESRI Shpfile
- #' @export
- #' @examples
- #' ## Not run:
- #' ##
- #' ## maaamet_kaardiruudud()
- #' ##
- #' ## End(**Not run**)
- maaamet_kaardiruudud <- function(config = NULL, schema = "maaamet",
- url = NULL) {
- ans <- utils::askYesNo("Do you want to import maps into database?")
- if (!ans) {
- cat("\n------------------------\n")
- cat("Kaardikihte ei lisatud.")
- cat("\n------------------------\n")
- }
- if (ans) {
- # Temp directory
- tmp_dir <- tempdir(check = T)
- # Download link
- if (is.null(url)) {
- urls <- c(
- "https://geoportaal.maaamet.ee/docs/pohikaart/epk2T_SHP.zip",
- "https://geoportaal.maaamet.ee/docs/pohikaart/epk10T_SHP.zip",
- "https://geoportaal.maaamet.ee/docs/pohikaart/epk20T_shp.zip",
- "https://geoportaal.maaamet.ee/docs/pohikaart/epk50T_shp.zip",
- "https://geoportaal.maaamet.ee/docs/pohikaart/epk100T_shp.zip",
- "https://geoportaal.maaamet.ee/docs/pohikaart/epk200T_shp.zip"
- )
- } else {
- urls <- url
- }
- # Estonia shapefile (ZIP archive)
- map_shapefile <- "maaamet_shapefile.zip"
- # Download and save
- saveTo <- sprintf("%s/%s", tmp_dir, map_shapefile)
- # Export to postgis
- if (is.null(config)) config <- ruut::get_config()
- config$schema <- schema
- # New schema
- ruut::db_create_new_schema(conf = config)
- for (j in 1:length(urls)) {
- utils::download.file(
- url = urls[j],
- destfile = saveTo, method = "curl", extra = "-L"
- )
- # Unzip
- utils::unzip(saveTo, overwrite = T, exdir = tmp_dir)
- # List of files
- ls <- list.files(path = tmp_dir, pattern = ".dbf")
- ls_long <- list.files(path = tmp_dir, pattern = ".dbf", full.names = T)
- tbl_names <- unlist(strsplit(x = ls, split = ".dbf"))
- # Multi layer
- for (i in 1:length(tbl_names)) {
- print(tbl_names[i])
- config$table <- tbl_names[i]
- source <- sprintf('"%s" "%s"', tmp_dir, tbl_names[i])
- ## Export to postgis database.
- ruut::copy_shp_to_db(
- dir = tmp_dir, layer = tbl_names[i], conf = config,
- id = "fid", crs_source = "EPSG:3301", crs_target = "EPSG:4326",
- geometry_type = "POLYGON"
- )
- cat(sprintf(
- "\nShp fail %s kopeeriti POSTGIS andmebaasi %s.%s\n\n",
- ls[i], config$schema, config$table
- ))
- }
- # Delete temp directory
- system(sprintf("rm -rf %s/*", tmp_dir))
- }
- }
- }
|