pk_epk10t_ruutude_nimekiri.R 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #' Funktsioon: epk10t kaardiruutude nimekiri
  2. #' Vajalik ortofotode allalaadimiseks. Nimekiri käib piirkonna
  3. #' EPSG:3301 piirikasti kohta
  4. pk_epk10t_ruutude_nimekiri <- function(obj) {
  5. # obj - objekti nimetus (näiteks: valga)
  6. conn <- ruut::db_connect()
  7. q <- sprintf("SELECT * FROM %s.%s_bb", conf$schema, tolower(obj))
  8. cat(sprintf("\n-----------------\n%s\n\n", q))
  9. sp <- sf::st_read(conn, query = q)
  10. ## epk10t ruutvõrgustiku lugemine
  11. # ruut::qgis_algorithm_search_by_word(str = "joinattributesbylocation")
  12. algorithm <- "native:joinattributesbylocation"
  13. # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
  14. result <- qgisprocess::qgis_run_algorithm(
  15. algorithm = algorithm,
  16. DISCARD_NONMATCHING = 1,
  17. 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.epk10t )\" (geometry)',
  18. 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),
  19. JOIN_FIELDS = c("id"),
  20. METHOD = 0,
  21. PREDICATE = c(0, 1),
  22. PREFIX = "",
  23. OUTPUT = qgisprocess::qgis_tmp_vector(),
  24. NON_MATCHING = qgisprocess::qgis_tmp_vector(),
  25. .quiet = TRUE
  26. )
  27. result
  28. ## !!!!!!!! NB !!!!!!!!
  29. ## Siin on 2 objekti väljundiks 'OUTPUT' ja 'NON_MATCHING'. Peame valima
  30. ## ainult ühe ja teisendama.
  31. pk_grid <- sf::read_sf(qgisprocess::qgis_output(result, "OUTPUT"))
  32. sf::st_geometry(pk_grid) %>% plot()
  33. pk_grid$nr
  34. }
  35. # pk_epk10t_ruutude_nimekiri(obj = "valga")