|
|
@@ -0,0 +1,77 @@
|
|
|
+#' Maa-ameti haldus- ja asustusjaotus
|
|
|
+#'
|
|
|
+#' Source: https://geoportaal.maaamet.ee/est/Ruumiandmed/Haldus-ja-asustusjaotus-p119.html . Andmed salvestatakse postgisi andmebaasi. Schema = 'maaamet'. 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
|
|
|
+#' ## Not run:
|
|
|
+#' ##
|
|
|
+#' ## maaamet_ehak()
|
|
|
+#' ##
|
|
|
+#' ## End(**Not run**)
|
|
|
+maaamet_ehak <- function(conf = 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) {
|
|
|
+ # Download links
|
|
|
+ urls <- c(
|
|
|
+ "https://geoportaal.maaamet.ee/docs/haldus_asustus/maakond_shp.zip",
|
|
|
+ "https://geoportaal.maaamet.ee/docs/haldus_asustus/omavalitsus_shp.zip",
|
|
|
+ "https://geoportaal.maaamet.ee/docs/haldus_asustus/asustusyksus_shp.zip",
|
|
|
+ "https://geoportaal.maaamet.ee/docs/haldus_asustus/omavalitsus_valispiirini_shp.zip"
|
|
|
+ )
|
|
|
+ # Estonia shapefile (ZIP archive)
|
|
|
+ map_shapefile <- "maaamet_shapefile.zip"
|
|
|
+ # Export to postgis
|
|
|
+ if (is.null(conf)) {
|
|
|
+ conf <- ruut::get_config()
|
|
|
+ conf$schema <- "maaamet"
|
|
|
+ }
|
|
|
+ # New schema
|
|
|
+ ruut::db_create_new_schema(conf = conf)
|
|
|
+ for (j in 1:length(urls)) {
|
|
|
+ # Temp directory
|
|
|
+ tmp_dir <- sprintf("/tmp/maaamet_ehak/%s", j)
|
|
|
+ if (!dir.exists(tmp_dir)) {
|
|
|
+ dir.create(tmp_dir, recursive = T)
|
|
|
+ }
|
|
|
+ # Download and save
|
|
|
+ saveTo <- sprintf("%s/%s", tmp_dir, map_shapefile)
|
|
|
+ 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])
|
|
|
+ conf$table <- gsub("[^[:alnum:]]", "", gsub("[[:digit:]]", "", 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 = conf,
|
|
|
+ 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], conf$schema, conf$table
|
|
|
+ ))
|
|
|
+ }
|
|
|
+ # Delete temp directory
|
|
|
+ # system(sprintf("rm -rf %s/*", tmp_dir))
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|