loe_teeregistri_wfs_kihid.R 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. #' Teeregistri WFS kihtide lugemine
  2. #'
  3. #' See on Eesti avaandmete \url{https://avaandmed.eesti.ee/datasets?emsId=35} teabevärava kaudu teederegistri WFS (Web Feature Service) andmete info filtreerimine.
  4. #'
  5. #' @return matrix
  6. #' @importFrom magrittr %>%
  7. #' @noRd
  8. #' @examples
  9. #' \dontrun{
  10. #'
  11. #' loe_teeregistri_wfs_kihid()
  12. #' }
  13. #'
  14. loe_teeregistri_wfs_kihid <- function() {
  15. # Andmeallikas
  16. url <- "https://teeregister-api.mnt.ee/teenus/wfs?request=GetCapabilities&service=WFS"
  17. data <- xml2::read_xml(url) %>% xml2::xml_contents()
  18. result <- data[[4]] %>% xml2::xml_children()
  19. list <- lapply(1:length(result), function(i) {
  20. layer <- (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[1]
  21. title <- (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[2]
  22. abstract <- gsub("\n", "", (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[3])
  23. defaultCRS <- gsub("urn:ogc:def:crs:", "", (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[4])
  24. bbox <- (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[8]
  25. metadataURL <- (result[[i]] %>% xml2::xml_children())[9] %>% xml2::xml_attr("href")
  26. c(
  27. "layer" = layer, "title" = title, "abstract" = abstract, "defaultCRS" = defaultCRS,
  28. "bbox" = bbox, "metadataURL" = metadataURL
  29. )
  30. })
  31. do.call("rbind", list)
  32. }