loe_teeregistri_wfs_kihid.R 1.3 KB

12345678910111213141516171819202122232425262728293031
  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. #' @noRd
  7. #' @examples
  8. #' \dontrun{
  9. #'
  10. #' loe_teeregistri_wfs_kihid()
  11. #' }
  12. #'
  13. loe_teeregistri_wfs_kihid <- function() {
  14. # Andmeallikas
  15. url <- "https://teeregister-api.mnt.ee/teenus/wfs?request=GetCapabilities&service=WFS"
  16. data <- xml2::read_xml(url) %>% xml2::xml_contents()
  17. result <- data[[4]] %>% xml2::xml_children()
  18. list <- lapply(1:length(result), function(i) {
  19. layer <- (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[1]
  20. title <- (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[2]
  21. abstract <- gsub("\n", "", (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[3])
  22. defaultCRS <- gsub("urn:ogc:def:crs:", "", (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[4])
  23. bbox <- (result[[i]] %>% xml2::xml_children() %>% xml2::xml_text())[8]
  24. metadataURL <- (result[[i]] %>% xml2::xml_children())[9] %>% xml2::xml_attr("href")
  25. c(
  26. "layer" = layer, "title" = title, "abstract" = abstract, "defaultCRS" = defaultCRS,
  27. "bbox" = bbox, "metadataURL" = metadataURL
  28. )
  29. })
  30. do.call("rbind", list)
  31. }