| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #' Funktsioonid
- #'
- # -----------------------------------------------------------------------
- ## Funktsioon: piirkonna piir
- pk_piir <- function(obj) {
- # obj - objekti nimetus (näiteks: valga)
- conn <- ruut::db_connect()
- q <- sprintf("SELECT * FROM %s.%s_piir", conf$schema, tolower(obj))
- cat(sprintf("\n-----------------\n%s\n\n", q))
- sf::st_read(conn, query = q)
- }
- # pk_piir(obj = "valga")
- # -----------------------------------------------------------------------
- ## Funktsioon: piirkonna piiri piirikasti (boundary box) loomine
- create_pk_piir_bb <- function(obj) {
- # obj - objekti nimetus (näiteks: valga)
- # ruut::qgis_algorithm_search_by_word(str = "extract")
- algorithm <- "native:extractbylocation"
- # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
- result <- qgisprocess::qgis_run_algorithm(
- algorithm = algorithm,
- INPUT = 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"maaamet\".\"epk10t\" (geometry)',
- INTERSECT = sprintf('postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'ogc_fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"xxx_artikkel_210127\".\"%s_piir\" (geometry)', obj),
- OUTPUT = qgisprocess::qgis_tmp_vector(),
- PREDICATE = c(0, 1),
- .quiet = TRUE
- )
- result
- }
- # create_pk_piir_bb(obj = objektid[i])
- ## Funktsioon: piirkonna piiri piirikasti (boundary box) lugemine
- pk_piir_bb <- function(obj) {
- # obj - objekti nimetus (näiteks: valga)
- conn <- ruut::db_connect()
- q <- sprintf("SELECT * FROM %s.%s_epk10t", conf$schema, tolower(obj))
- cat(sprintf("\n-----------------\n%s\n\n", q))
- sf::st_read(conn, query = q)
- }
- # pk_piir_bb(obj = "valga")
- # -----------------------------------------------------------------------
- ## Funktsioon: epk200t (100x100km) kaardiruutudele piirikasti (boundary box) loomine
- create_epk200t_bb <- function() {
- # ruut::qgis_algorithm_search_by_word(str = "bounding")
- algorithm <- "qgis:minimumboundinggeometry"
- # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
- result <- qgisprocess::qgis_run_algorithm(
- algorithm = algorithm,
- FIELD = "",
- INPUT = 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"maaamet\".\"epk200t\" (geometry)',
- TYPE = 3,
- OUTPUT = qgisprocess::qgis_tmp_vector(),
- .quiet = TRUE
- )
- # result
- epk200t_bb <- sf::read_sf(qgis_output(result, "OUTPUT"))
- sf::st_geometry(epk200t_bb) %>% plot()
- conf <- ruut::get_config()
- conf$table <- "epk200t_bb"
- conf$schema <- "maaamet"
- ruut::copy_qgis_object_to_db(x = result, conf = conf, geometry_type = "POLYGON")
- cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm))
- # result
- }
|