diff --git a/DESCRIPTION b/DESCRIPTION index 13b0712..6d63049 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -13,3 +13,5 @@ Suggests: testthat (>= 3.0.0) Config/testthat/edition: 3 URL: https://kubdatalab.github.io/KBAPI/ +Imports: + httr2 diff --git a/NAMESPACE b/NAMESPACE index 74697fc..32577b4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,3 +1,6 @@ # Generated by roxygen2: do not edit by hand -export(get_arial) +export(get_aerial) +importFrom(httr2,req_perform) +importFrom(httr2,req_url_query) +importFrom(httr2,request) diff --git a/R/KBapi-package.R b/R/KBapi-package.R new file mode 100644 index 0000000..20d129a --- /dev/null +++ b/R/KBapi-package.R @@ -0,0 +1,9 @@ +#' @keywords internal +"_PACKAGE" + +## usethis namespace: start +#' @importFrom httr2 req_perform +#' @importFrom httr2 req_url_query +#' @importFrom httr2 request +## usethis namespace: end +NULL diff --git a/R/get_aerial.R b/R/get_aerial.R new file mode 100644 index 0000000..5aa90e4 --- /dev/null +++ b/R/get_aerial.R @@ -0,0 +1,45 @@ +#' Søg luftfotos +#' +#' En kort beskrivelse af hvad funktionen gør. +#' +#' @param lat Beskrivelse af første parameter. +#' @param lon Beskrivelse af anden parameter. +#' @param format formatet output kommer i. vælg mellem kml, rss, atom og mods +#' @return Beskrivelse af returværdien. +#' @examples +#' # Eksempel på brug af funktionen +#' get_aerial(lat = 1, lon = 2) +#' @export + + +get_aerial <- function(lat=56.007514636317666, lon=12.228840190005485, format = "kml"){ + # tjek input + api_url <- "http://www.kb.dk/cop/syndication/images/luftfo/2011/maj/luftfoto/subject203/" + formatted_lat <- sprintf("%.16f", lat) + formatted_lon <- sprintf("%.16f", lon) + query_params <- list( + bbo = "10.395490670074423,55.22227193719089,10.296785378326376,55.18994697228769", + zoom = 14, + lat = formatted_lat, + lng = formatted_lon, + page = 1, + q_fritekst = "", + q_stednavn = "", + q_bygningsnavn = "", + q_person = "", + q_adresse = "", + notBefore = "1920", + notAfter = "1970", + category = "subject203", + itemType = "all", + thumbnailSize = "", + format = format, + itemsPerPage = 3 + ) + response <- httr2::request(api_url) |> + httr2::req_url_query(!!!query_params) |> + httr2::req_perform() +# Her bør der nok være noget tjek af om ting gik godt. + response +} + diff --git a/R/get_arial.R b/R/get_arial.R deleted file mode 100644 index 85bc870..0000000 --- a/R/get_arial.R +++ /dev/null @@ -1,14 +0,0 @@ -#' Søg luftfotos -#' -#' En kort beskrivelse af hvad funktionen gør. -#' -#' @param param1 Beskrivelse af første parameter. -#' @param param2 Beskrivelse af anden parameter. -#' @return Beskrivelse af returværdien. -#' @examples -#' # Eksempel på brug af funktionen -#' get_arial(param1 = 1, param2 = 2) -#' @export -get_arial <- function(param1, param2){ - param1*param2 -} diff --git a/README.Rmd b/README.Rmd index 00c8d2b..e24022f 100644 --- a/README.Rmd +++ b/README.Rmd @@ -13,12 +13,15 @@ knitr::opts_chunk$set( ) ``` -# KBapi +# KBapi KBapi website [![R-CMD-check](https://github.com/KUBDatalab/KBAPI/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/KUBDatalab/KBAPI/actions/workflows/R-CMD-check.yaml) + + + The goal of KBapi is to ... ## Installation @@ -26,7 +29,17 @@ The goal of KBapi is to ... You can install the development version of KBapi like so: ``` r -# FILL THIS IN! HOW CAN PEOPLE INSTALL YOUR DEV PACKAGE? +options(repos = c( + kubdatalab = '', + CRAN = 'httpos://cloud.r-project.org') +) + +install.packages('KBAPI') +``` + +Or directly from github: +``` r +devtools::install_github('KUBDatalab/KBAPI') ``` ## Example diff --git a/README.md b/README.md index 5313cf7..cf8701b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# KBapi +# KBapi KBapi website @@ -15,7 +15,18 @@ The goal of KBapi is to … You can install the development version of KBapi like so: ``` r -# FILL THIS IN! HOW CAN PEOPLE INSTALL YOUR DEV PACKAGE? +options(repos = c( + kubdatalab = '', + CRAN = 'httpos://cloud.r-project.org') +) + +install.packages('KBAPI') +``` + +Or directly from github: + +``` r +devtools::install_github('KUBDatalab/KBAPI') ``` ## Example diff --git a/man/KBapi-package.Rd b/man/KBapi-package.Rd new file mode 100644 index 0000000..5b74da7 --- /dev/null +++ b/man/KBapi-package.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/KBapi-package.R +\docType{package} +\name{KBapi-package} +\alias{KBapi} +\alias{KBapi-package} +\title{KBapi: What the Package Does (One Line, Title Case)} +\description{ +\if{html}{\figure{logo.png}{options: style='float: right' alt='logo' width='120'}} + +What the package does (one paragraph). +} +\seealso{ +Useful links: +\itemize{ + \item \url{https://kubdatalab.github.io/KBAPI/} +} + +} +\author{ +\strong{Maintainer}: First Last \email{first.last@example.com} (\href{https://orcid.org/YOUR-ORCID-ID}{ORCID}) + +} +\keyword{internal} diff --git a/man/figures/logo.png b/man/figures/logo.png new file mode 100644 index 0000000..a9a2dbe Binary files /dev/null and b/man/figures/logo.png differ diff --git a/man/get_aerial.Rd b/man/get_aerial.Rd new file mode 100644 index 0000000..c3b470f --- /dev/null +++ b/man/get_aerial.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get_aerial.R +\name{get_aerial} +\alias{get_aerial} +\title{Søg luftfotos} +\usage{ +get_aerial(lat = 56.0075146363177, lon = 12.2288401900055) +} +\arguments{ +\item{lat}{Beskrivelse af første parameter.} + +\item{lon}{Beskrivelse af anden parameter.} +} +\value{ +Beskrivelse af returværdien. +} +\description{ +En kort beskrivelse af hvad funktionen gør. +} +\examples{ +# Eksempel på brug af funktionen +get_aerial(lat = 1, lon = 2) +} diff --git a/man/get_arial.Rd b/man/get_arial.Rd deleted file mode 100644 index e726780..0000000 --- a/man/get_arial.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/get_arial.R -\name{get_arial} -\alias{get_arial} -\title{Søg luftfotos} -\usage{ -get_arial(param1, param2) -} -\arguments{ -\item{param1}{Beskrivelse af første parameter.} - -\item{param2}{Beskrivelse af anden parameter.} -} -\value{ -Beskrivelse af returværdien. -} -\description{ -En kort beskrivelse af hvad funktionen gør. -} -\examples{ -# Eksempel på brug af funktionen -get_arial(param1 = 1, param2 = 2) -} diff --git a/skrammel/R/luftfotos.R b/skrammel/R/luftfotos.R index 82cc4e5..ba8f00f 100644 --- a/skrammel/R/luftfotos.R +++ b/skrammel/R/luftfotos.R @@ -20,11 +20,11 @@ query_params <- list( q_person = "", q_adresse = "", notBefore = 1920, - notAfter = 1970, + notAfter = 1990, category = "subject203", itemType = "all", thumbnailSize = "", - format = "xml" + format = "kml" ) # Send GET-anmodningen med parametre som query string @@ -33,4 +33,4 @@ response <- request(api_url) %>% req_perform() response - +request(api_url) %>% req_perform() diff --git a/skrammel/ekstrationstests.R b/skrammel/ekstrationstests.R new file mode 100644 index 0000000..20c2bd7 --- /dev/null +++ b/skrammel/ekstrationstests.R @@ -0,0 +1,51 @@ +library(xml2) +library(jsonlite) +library(tidyverse) +test <- get_aerial(format = "kml") +noget <- test %>% + resp_body_xml() +# %>% +# toJSON(pretty = TRUE, auto_unbox = TRUE) %>% +# jsonlite::fromJSON() +# noget$kml$Document +noget %>% class() +noget$Document$Placemark + + +extract_all_nodes <- function(node) { + # Find alle børn af noden + children <- xml_children(node) + + # Hvis noden har børn, anvend funktionen rekursivt på hvert barn + if (length(children) > 0) { + # For hver child node, rekursivt udtræk data + return(map(children, extract_all_nodes)) + } else { + # Hvis noden ikke har børn, returner nodens navn og værdi + return(set_names(xml_text(node), xml_name(node))) + } +} + +# Funktion til at flade listen og håndtere noder med flere lag +flatten_xml_data <- function(xml_list) { + # Hvis det er en liste med lister, flad dem ud + if (is.list(xml_list) && !is.null(names(xml_list))) { + return(map(xml_list, flatten_xml_data)) + } else if (is.list(xml_list)) { + return(unlist(xml_list)) + } else { + return(xml_list) + } +} + +extracted_data <- extract_all_nodes(noget) + +# Flad dataene ud og konverter til tibble +flattened_data <- map_dfr(extracted_data, flatten_xml_data) + +# Konverter det fladede data til en tibble +kml_tibble <- as_tibble(flattened_data) +kml_tibble %>% + select(-text, + -startIndex, + -Query) diff --git a/skrammel/logo-script.R b/skrammel/logo-script.R new file mode 100644 index 0000000..ad1cb13 --- /dev/null +++ b/skrammel/logo-script.R @@ -0,0 +1,12 @@ +sticker( + "c:/Users/cbk/Desktop/kblogo.jpg", + package = "KBAPI", + h_fill = "black", + h_color = "black", + bg = NA, + p_size = 20, + p_y = 1.6, + s_x = 1, s_y = 1, # Justering af billedets placering + s_width = 0.6, # Størrelsen på baggrundsbilledet + filename = "man/figures/logo.png" # Outputstien og filnavnet for hexstickeren +)