Västerhavsveckan: webbkarta och öppna data

Många aktiviteter, en karta

Västerhavsveckan är en temavecka för havsmiljön. Under veckan, som infaller i augusti varje år, anordnar ett stort antal aktörer havsnära aktiviteter för alla åldrar. Målet är att höja vår havsmedvetenhet, det vill säga skapa intresse för havet och hur havet mår. För att underlätta för intresserade att hitta aktiviteterna, finns numera en webbkarta, som visar vad som sker på respektive plats. Så hur gjordes webbkartan? Sedan tidigare har vi redan bl.a. QGIS och R/RStudio på plats i vår GIS-miljö. R är numera väldigt kompetent inom GIS och Västerhavsveckans webbkarta visade sig vara ett lämpligt projekt för att använda denna miljö.

QGIS

Första delen av arbetet bestod av att mha QGIS manuellt placera ut punkterna där aktiviteterna äger rum och sammanställa de länkar som ska visas för respektive ort. Den största utmaningen i detta skede var att tolka underlaget, så att punkterna hamnar på rätt plats. Ska punkten placeras vid bryggan i hamnen eller på torget i centrum? Resultatet är en GeoPackage-fil, som utgör underlaget för webbkartan.

R/RStudio

Nästa steg var att skapa ett R-skript för att skapa en Leaflet-baserad webbkarta utifrån GeoPackage-filen. Resultatet är en fristående webbsida, som kan publiceras på lämplig yta. R-koden ser ut så här:


# Load libraries
library(htmltools)
library(htmlwidgets)
library(leaflet)
library(leaflet.extras)
library(sf)

# Set working directory
setwd("G:\\path\\")   # Replace with real path

# Read GeoPackage with locations for 2024 and transform EPSG 3006 -> 4326
orter_2024 <- st_read("G:\\path\\Västerhavsveckan orter 2024.gpkg")
orter_2024 = st_transform(orter_2024, "EPSG:4326")


# Replace "," with --- to increase visibility in popups
orter_2024$URL = print(gsub(",", " ---", orter_2024$URL))


# Create Leaflet web map
vasterhavsveckan2024 = leaflet(orter_2024) %>% 
  
  # Set map center
  setView(lng = 11.9, lat = 58.4, zoom = 7) %>%

  # Base groups
  addProviderTiles(providers$CartoDB.Positron, group = "Positron") %>%
  addTiles(group = "OpenStreetMap") %>%

  # Overlay groups  
  addMarkers(
    group = "Västerhavsveckan orter 2024",
    label = ~as.character(Ort),
    labelOptions = labelOptions(textsize = "14px"),
    popup = ~as.character(URL),
  ) %>% 

  # Add search function
  addSearchFeatures(
    targetGroups = 'Västerhavsveckan orter 2024',
    options = searchFeaturesOptions(zoom = 12,
                                    openPopup = TRUE,
                                    firstTipSubmit = TRUE,
                                    autoCollapse = TRUE,
                                    hideMarkerOnCollapse = TRUE)) %>% 
  
  # Layer control
  addLayersControl(
  baseGroups = c("Positron", "OpenStreetMap"),
  overlayGroups = c("Västerhavsveckan orter 2024"),
  options = layersControlOptions(collapsed = TRUE)
  ) %>% 

  # Mini map
  addMiniMap(
    tiles = providers$CartoDB.Positron,
    toggleDisplay = TRUE,
    minimized = TRUE)


# View result
vasterhavsveckan2024


# Save map to disk, set page name
saveWidget(widget = vasterhavsveckan2024, file = "Vasterhavsveckan_2024.html", title="Västerhavsveckan")

R har här skapat filen Vasterhavsveckan_2024.html. Du hittar webbkartan på https://www.vgregion.se/ov/vasterhavsveckan/har-finns-vi/.

Öppna data

Denna datamängd är också en bra kandidat för publicering som öppna data:

  • Arbetet med att ta fram underlaget är redan gjort, så arbetsinsatsen för att också publicera detta som öppna data är minimal
  • Den håller hög kvalitet
  • Den innehåller inga personuppgifter
  • Publicering bidrar både till ökad transparens och till att öka kännedomen om arbetet med Västerhavsveckan och de frågor som ryms däri

Eftersom vi redan har en miljö för att publicera datamängder som öppna data, var steget kort till att publicera detta på dataportal.se. Du hittar det här, så om du inte gillar webbkartan, kan du använda underlaget med valfritt kalkylprogram som klient eller göra en egen webbkarta, anpassad för just dig.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *