Formål : Bygging av et interaktivt kart over sykehus i Norge

library(tidyverse) 
library(leaflet) 
library(geojsonio) 
library(readxl) 
library(htmltools) 

Importere datasett som inneholder geografiske koordinater (bredde og lengde) av sykehus og fylker.

  • Geografiske koordinater av sykehus som er hentet fra google, er ikke kvalitetssikret.
  • Datasettet for antall er et fiktivt datasett for testing.
hf <- read_excel("hf.xlsx")
fylke <- geojsonio::geojson_read("https://raw.githubusercontent.com/Knaevelsrud/GoeJSON/master/Fylker_Kartverket_2020.json", what = "sp")
antall <- read_excel("antallhf.xlsx")

Kartet med samme farge i hele norge:

 hf %>%
  leaflet() %>%
  addTiles() %>% 
  addPolygons(data = fylke,fillColor = "blue",
              weight = 0.5,
              opacity = 1,
              color = "blue",
              dashArray = "5",
              fillOpacity = 0.7, 
              highlight = highlightOptions(weight = 1,
                                           color = "white",
                                           dashArray = "",
                                           fillOpacity = 0.7,
                                           bringToFront = TRUE)) %>%
               addMarkers(popup = ~htmlEscape(Sykehus) )

Kartet med ulike farger i ulike fylke:

colorsmap = colors()[1:length(unique(fylke$navn))]
groupColors = colorFactor(palette = "RdYlBu", domain = fylke$navn)

hf %>%
  leaflet() %>%
  addTiles() %>% 
  addPolygons(data = fylke,
              fillColor = ~groupColors(navn),
              weight = 0.5,
              opacity = 1,
              color = "blue",
              dashArray = "5",
              fillOpacity = 0.7, 
              highlight = highlightOptions(weight = 5,
                                           color = "#0666",
                                           dashArray = "",
                                           fillOpacity = 0.7,
                                           bringToFront = TRUE))%>%
  addMarkers(popup = ~htmlEscape(Sykehus) )

Skiller norge ut fra verdenskartet:

hf %>%
  leaflet() %>%
  addPolygons(data = fylke,fillColor = "blue",
              weight = 0.5,
              opacity = 1,
              color = "blue",
              dashArray = "5",
              fillOpacity = 0.7, 
              highlight = highlightOptions(weight = 1,
                                           color = "white",
                                           dashArray = "",
                                           fillOpacity = 0.7,
                                           bringToFront = TRUE)) %>%
  addMarkers(popup = ~htmlEscape(Sykehus) )

Skiller norge ut fra verdenskartet med ulike farge:

colorsmap = colors()[1:length(unique(fylke$navn))]
groupColors = colorFactor(palette = "RdYlBu", domain = fylke$navn)
 
hf %>%
  leaflet() %>%
  addPolygons(data = fylke,
              fillColor = ~groupColors(navn),
              weight = 0.5,
              opacity = 1,
              color = "blue",
              dashArray = "5",
              fillOpacity = 0.7, 
              highlight = highlightOptions(weight = 5,
                                           color = "#0666",
                                           dashArray = "",
                                           fillOpacity = 0.7,
                                           bringToFront = TRUE)) %>%
  addMarkers(popup = ~htmlEscape(Sykehus) )

Vise statistikk på kartet

labels <- sprintf(
  "<strong>%s</strong><br/> Antall: %g",  # <br/>: Line break
  antall$Sykehus, antall$Antall
) %>% lapply(htmltools::HTML)


antall %>%
  leaflet() %>%
  addPolygons(data = fylke,
              fillColor = ~groupColors(navn),
              weight = 0.5,
              opacity = 1,
              color = "blue",
              dashArray = "5",
              fillOpacity = 0.7, 
              highlight = highlightOptions(weight = 5,
                                           color = "#0666",
                                           dashArray = "",
                                           fillOpacity = 0.7,
                                           bringToFront = TRUE)) %>%
  addMarkers(popup = ~htmlEscape(Sykehus),label = labels  )