|
|
@@ -8,8 +8,8 @@
|
|
|
#' Input parameters:
|
|
|
#' { 'CREATEINDEX' : True, 'DATABASE' : 'Data', 'DROP_STRING_LENGTH' : False, 'ENCODING' : 'UTF-8', 'FORCE_SINGLEPART' : False, 'GEOMETRY_COLUMN' : 'geom', 'INPUT' : '/data/gpkg/teed/teed_l.gpkg|layername=teed_l', 'LOWERCASE_NAMES' : True, 'OVERWRITE' : True, 'PRIMARY_KEY' : 'fid', 'SCHEMA' : 'data', 'TABLENAME' : 'mikihiir' }
|
|
|
#' @param str string A QGIS input parameters.
|
|
|
-#' @return A string.
|
|
|
-#' @seealso [qgisprocess::qgis_run_algorithm], [ruut::construct_ogr2ogr_PG_connect_str]
|
|
|
+#' @param algorithm string A QGIS algorithm.
|
|
|
+#' @return A string.[ruut::construct_ogr2ogr_PG_connect_str]
|
|
|
#' @keywords QGIS
|
|
|
#' @export
|
|
|
#' @examples
|
|
|
@@ -17,43 +17,40 @@
|
|
|
#' \dontrun{
|
|
|
#'
|
|
|
#' # QGIS funktsiooni käivitamisel saatakse logisse argumentidest järgmine väljund
|
|
|
-#' str <- "{ 'CREATEINDEX' : True, 'DATABASE' : 'Data', 'DROP_STRING_LENGTH' : False,
|
|
|
-#' 'ENCODING' : 'UTF-8', 'FORCE_SINGLEPART' : False, 'GEOMETRY_COLUMN' : 'geom',
|
|
|
-#' 'INPUT' : '/data/gpkg/teed/teed_l.gpkg|layername=teed_l', 'LOWERCASE_NAMES' : True,
|
|
|
-#' 'OVERWRITE' : True, 'PRIMARY_KEY' : 'fid', 'SCHEMA' : 'data', 'TABLENAME' : 'mikihiir' }"
|
|
|
+#' ## Demo
|
|
|
+#' # Algorithm 'Buffer' starting…
|
|
|
+#' system(sprintf("qgis_process list | grep %s", 'Buffer'))
|
|
|
+#' algorithm <- "native:buffer"
|
|
|
+#'
|
|
|
+#' str <- "{ 'DISSOLVE' : False, 'DISTANCE' : 100, 'END_CAP_STYLE' : 2,
|
|
|
+#' 'INPUT' : '/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/matsalu.gpkg|layername=bb',
|
|
|
+#' 'JOIN_STYLE' : 1, 'MITER_LIMIT' : 2,
|
|
|
+#' 'OUTPUT' : 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' password=\'osm\'
|
|
|
+#' sslmode=disable table=\"data\".\"test22\" (geom)', 'SEGMENTS' : 5 }"
|
|
|
+#'
|
|
|
+#' cmd <- ruut::construct_qgis_output_result_to_beter_format(str = str, algorithm = algorithm)
|
|
|
+#' system(cmd)
|
|
|
#'
|
|
|
-#' construct_qgis_output_result_to_beter_format(str = str)
|
|
|
#' }
|
|
|
-construct_qgis_output_result_to_beter_format <- function(str = "") {
|
|
|
- ## Asendame "\'" sümbolitega "$$", et hilem tagasiasendust teha.
|
|
|
- str <- gsub("=\'([a-zA-Z0-9_/=./]*)\' ", "=@@\\1@@ ", str)
|
|
|
- str <- gsub("\\\"([a-zA-Z0-9_/=./]*)\\\"", "##\\1##", str)
|
|
|
- ## Asendame autentimise tunnuse salasõnaga.
|
|
|
- str <- gsub("(authcfg=[0-9a-zA-Z_/=.]+\\.{0,1}[0-9a-zA-Z_/=.]*)", "password=@@osm@@", str)
|
|
|
- str <- gsub("'True'", "1", str)
|
|
|
- str <- gsub("'False'", "0", str)
|
|
|
- # Numbrite ümbert ülakomade eemaldamine
|
|
|
- str <- gsub("'([0-9]+\\.{0,1}[0-9]*)'", "\\1", str)
|
|
|
- str <- gsub("[(]geom[)]", "(geom)", str)
|
|
|
- str_list <- str
|
|
|
+construct_qgis_output_result_to_beter_format <- function(str = "", algorithm = "xxxxxxxxxx") {
|
|
|
+ # Tühjal stringil vahetame kõrvutiolevad 1-kordsed jutumärgid 2-kordsetega
|
|
|
+ str <- gsub("''", "\"\"", str)
|
|
|
# Suurte tähtede ümbert ülakomade eemaldamine
|
|
|
- str <- gsub("'([A-Z_]*)'", "\\1", str)
|
|
|
- str <- gsub("[{]", "algorithm=algorithm,", str)
|
|
|
+ str <- gsub("'([A-Z_]*)'", "--\\1", str)
|
|
|
+ # Väärtustel vahetame väärtuste välimised 1-kordsed jutumärgid 2-kordsetega
|
|
|
+ str <- gsub(" : '", "=\"", str)
|
|
|
+ str <- gsub("', ", "\" ", str)
|
|
|
+ str <- gsub(" : ", "=", str)
|
|
|
+ ## Asendame autentimise tunnuse salasõnaga.
|
|
|
+ str <- gsub("(authcfg=[0-9a-zA-Z_/=.]+\\.{0,1}[0-9a-zA-Z_/=.]*)", "password='osm'", str)
|
|
|
+ # Loogiliste sulgude eemaldamine
|
|
|
+ str <- gsub("[{]", "qgis_process run algorithm ", str)
|
|
|
str <- gsub("[}]", "", str)
|
|
|
- str <- gsub("##", "\"", str, fixed = T)
|
|
|
- str <- gsub("@@", "\\'", str, fixed = T)
|
|
|
- str <- gsub(", ", ",\n", str)
|
|
|
- str <- gsub(":", "=", str)
|
|
|
- str <- gsub("[[]", "c(", str)
|
|
|
- str <- gsub("[]]", ")", str)
|
|
|
-
|
|
|
- # list
|
|
|
- str_list <- gsub("'", "\"", str_list)
|
|
|
- str_list <- gsub("@@", "\\", str_list)
|
|
|
- str_list <- gsub("##", "\\", str_list)
|
|
|
- str_list <- jsonlite::fromJSON(str_list)
|
|
|
- # names(str_list)
|
|
|
-
|
|
|
- cat(sprintf("\n\n%s\n\n\n",str))
|
|
|
- return(str_list)
|
|
|
+ str <- gsub("\"([ a-zA-Z0-9_ ]*)\"", "\\\\\"\\1\\\\\"", str)
|
|
|
+ # Eemaldame komad
|
|
|
+ str <- gsub(", ", " ", str)
|
|
|
+ # Asendame algoritmi
|
|
|
+ str <- gsub("algorithm", algorithm, str)
|
|
|
+ cat(str)
|
|
|
+ str
|
|
|
}
|