Răsfoiți Sursa

Täiendatud f-ni pk_sellest_alustame_db_loomist. Geomeetria parandamine.

Ardo Kubjas 3 ani în urmă
părinte
comite
972a1bc87e
1 a modificat fișierele cu 20 adăugiri și 2 ștergeri
  1. 20 2
      R/pk_sellest_alustame_db_loomist.R

+ 20 - 2
R/pk_sellest_alustame_db_loomist.R

@@ -50,10 +50,28 @@ pk_sellest_alustame_db_loomist <- function(pk = NULL, obj = NULL, conf = NULL) {
 
   ## 1. Piirjoone salvestamine
   pk <- sf::st_transform(pk, 3301)
-  # write to postgis
+  # Write to gpkg and check validity
+  sf::write_sf(pk, dsn = vars$tmp_gpkg_file, layer = vars$conf$gpkg_table, driver = "gpkg", fid_column_name = "fid", delete_dsn = T)
+  # Geomeetria parandamine
+  # ruut::qgis_algorithm_search_by_word("fix")
+  algorithm <- "native:fixgeometries"
+  input <- vars$tmp_gpkg_file_input_1 # ajutine fail
+  output <- vars$tmp_gpkg_file_output_2 # ajutine fail
+  str <-  sprintf("{ 'INPUT' : '%s', 'OUTPUT' : '%s' }", input, output)
+  cmd <- ruut::construct_qgis_output_result_to_better_format(str = str, algorithm = algorithm)
+  system(cmd)
+  # Write to postgis
   ruut::db_create_new_schema(conf = conf)
   conn <- ruut::db_connect(conf = conf)
-  sf::write_sf(pk, dsn = conn, layer = c(conf$schema, "a00_piir"), driver = "PostgreSQL", fid_column_name = "id", delete_dsn = F)
+  # Eemaldame üleliigsed veerud
+  # ruut::qgis_algorithm_search_by_word("Drop")
+  algorithm <- "native:deletecolumn"
+  input <- vars$tmp_gpkg_file_input_2
+  conf$table <- "a00_piir"
+  output <- ruut::construct_to_gpkg_output_postgres_str(conf = conf, geometry_field = "geom", geometry_type = "Polygon", srid = 3301, checkPrimaryKeyUnicity = FALSE, key = "id")
+  cmd <- sprintf("qgis_process run %s --COLUMN='fid' --INPUT='%s' --OUTPUT='%s' ", algorithm, input, output)
+  system(cmd)
+  # sf::write_sf(pk, dsn = conn, layer = c(conf$schema, "a00_piir"), driver = "PostgreSQL", fid_column_name = "id", delete_dsn = F)
 
   ## 2. Piirikasti salvestamine
   ## konstrueerime EXTENT, HSPACING ja VSPACING väärtused piirikasti konstrueerimiseks.