| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #' Funktsioon: piirkonna EPSG:3301 piirikasti sisse ruudustiku genereerimine
- #' Piirikastis paiknevate 1x1 km ruudustike leidmine. Fail salvestatakse
- #' andmebaasi laiendiga 'piirkond_epk2t_grid'.
- create_epk2t_grid_to_pk_bb <- function(obj) {
- # obj - objekti nimetus (näiteks: valga)
- ## a. ruutvõrgustiku konstrueerimine
- # ruut::qgis_algorithm_search_by_word(str = "joinattributesbylocation")
- algorithm <- "native:joinattributesbylocation"
- # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
- result <- qgisprocess::qgis_run_algorithm(
- algorithm = algorithm,
- DISCARD_NONMATCHING = 1,
- INPUT = 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable password=\'osm\' key=\'fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"(SELECT * FROM maaamet.epk2t_grid )\" (geometry)',
- JOIN = sprintf('postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable password=\'osm\' key=\'fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"(SELECT * FROM xxx_artikkel_210127.%s_bb )\" (geometry)', obj),
- JOIN_FIELDS = c("id"),
- METHOD = 0,
- PREDICATE = c(0, 1),
- PREFIX = "",
- OUTPUT = qgisprocess::qgis_tmp_vector(),
- NON_MATCHING = qgisprocess::qgis_tmp_vector(),
- .quiet = TRUE
- )
- result
- ## !!!!!!!! NB !!!!!!!!
- ## Siin on 2 objekti väljundiks 'OUTPUT' ja 'NON_MATCHING'. Peame valima
- ## ainult ühe ja teisendama.
- pk_grid <- sf::read_sf(qgisprocess::qgis_output(result, "OUTPUT"))
- # sf::st_geometry(pk_grid) %>% plot()
- # pk_grid_non <- sf::read_sf(qgisprocess::qgis_output(result, "NON_MATCHING"))
- # sf::st_geometry(pk_grid_non) %>% plot()
- ## b. kopeerimine andmebaasi laiendiga '_epk10t_grid'
- conf <- ruut::get_config()
- conf$table <- sprintf("%s_epk2t_grid", obj)
- conf$schema <- "xxx_artikkel_210127"
- result$NON_MATCHING <- NULL
- result$JOINED_COUNT <- NULL
- ruut::copy_qgis_object_to_db(x = result, conf = conf, geometry_type = "PROMOTE_TO_MULTI")
- cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm))
- }
- # create_epk2t_grid_to_pk_bb()
|