{"id":2903,"date":"2024-06-04T15:11:40","date_gmt":"2024-06-04T13:11:40","guid":{"rendered":"https:\/\/vgrblogg.se\/utveckling\/?p=2903"},"modified":"2024-06-04T15:12:21","modified_gmt":"2024-06-04T13:12:21","slug":"vasterhavsveckan-webbkarta-och-oppna-data","status":"publish","type":"post","link":"https:\/\/vgrblogg.se\/utveckling\/2024\/06\/04\/vasterhavsveckan-webbkarta-och-oppna-data\/","title":{"rendered":"V\u00e4sterhavsveckan: webbkarta och \u00f6ppna data"},"content":{"rendered":"\n
\"\"
M\u00e5nga aktiviteter, en karta<\/figcaption><\/figure>\n\n\n\n

V\u00e4sterhavsveckan<\/a> \u00e4r en temavecka f\u00f6r havsmilj\u00f6n. Under veckan, som infaller i augusti varje \u00e5r, anordnar ett stort antal akt\u00f6rer havsn\u00e4ra aktiviteter f\u00f6r alla \u00e5ldrar. M\u00e5let \u00e4r att h\u00f6ja v\u00e5r havsmedvetenhet, det vill s\u00e4ga skapa intresse f\u00f6r havet och hur havet m\u00e5r. F\u00f6r att underl\u00e4tta f\u00f6r intresserade att hitta aktiviteterna, finns numera en webbkarta, som visar vad som sker p\u00e5 respektive plats. S\u00e5 hur gjordes webbkartan? Sedan tidigare har vi redan bl.a. QGIS och R\/RStudio p\u00e5 plats i v\u00e5r GIS-milj\u00f6. R \u00e4r numera v\u00e4ldigt kompetent inom GIS och V\u00e4sterhavsveckans webbkarta visade sig vara ett l\u00e4mpligt projekt f\u00f6r att anv\u00e4nda denna milj\u00f6.<\/p>\n\n\n\n\n\n\n\n

QGIS<\/strong><\/p>\n\n\n\n

F\u00f6rsta delen av arbetet bestod av att mha QGIS manuellt placera ut punkterna d\u00e4r aktiviteterna \u00e4ger rum och sammanst\u00e4lla de l\u00e4nkar som ska visas f\u00f6r respektive ort. Den st\u00f6rsta utmaningen i detta skede var att tolka underlaget, s\u00e5 att punkterna hamnar p\u00e5 r\u00e4tt plats. Ska punkten placeras vid bryggan i hamnen eller p\u00e5 torget i centrum? Resultatet \u00e4r en GeoPackage-fil, som utg\u00f6r underlaget f\u00f6r webbkartan.<\/p>\n\n\n\n

R\/RStudio<\/strong><\/p>\n\n\n\n

N\u00e4sta steg var att skapa ett R-skript f\u00f6r att skapa en Leaflet-baserad webbkarta utifr\u00e5n GeoPackage-filen. Resultatet \u00e4r en frist\u00e5ende webbsida, som kan publiceras p\u00e5 l\u00e4mplig yta. R-koden ser ut s\u00e5 h\u00e4r:<\/p>\n\n\n\n

\r# Load libraries\r\nlibrary(htmltools)\r\nlibrary(htmlwidgets)\r\nlibrary(leaflet)\r\nlibrary(leaflet.extras)\r\nlibrary(sf)\r\n\r\n# Set working directory\r\nsetwd(\"G:\\\\path\\\\\")   # Replace with real path\n\r\n# Read GeoPackage with locations for 2024 and transform EPSG 3006 -> 4326\r\norter_2024 <- st_read(\"G:\\\\path\\\\V\u00e4sterhavsveckan orter 2024.gpkg\")\r\norter_2024 = st_transform(orter_2024, \"EPSG:4326\")\r\n\r\n\r\n# Replace \",\" with --- to increase visibility in popups\r\norter_2024$URL = print(gsub(\",\", \" ---\", orter_2024$URL))\r\n\r\n\r\n# Create Leaflet web map\r\nvasterhavsveckan2024 = leaflet(orter_2024) %>% \r\n  \r\n  # Set map center\r\n  setView(lng = 11.9, lat = 58.4, zoom = 7) %>%\r\n\r\n  # Base groups\r\n  addProviderTiles(providers$CartoDB.Positron, group = \"Positron\") %>%\r\n  addTiles(group = \"OpenStreetMap\") %>%\r\n\r\n  # Overlay groups  \r\n  addMarkers(\r\n    group = \"V\u00e4sterhavsveckan orter 2024\",\r\n    label = ~as.character(Ort),\r\n    labelOptions = labelOptions(textsize = \"14px\"),\r\n    popup = ~as.character(URL),\r\n  ) %>% \r\n\r\n  # Add search function\r\n  addSearchFeatures(\r\n    targetGroups = 'V\u00e4sterhavsveckan orter 2024',\r\n    options = searchFeaturesOptions(zoom = 12,\r\n                                    openPopup = TRUE,\r\n                                    firstTipSubmit = TRUE,\r\n                                    autoCollapse = TRUE,\r\n                                    hideMarkerOnCollapse = TRUE)) %>% \r\n  \r\n  # Layer control\r\n  addLayersControl(\r\n  baseGroups = c(\"Positron\", \"OpenStreetMap\"),\r\n  overlayGroups = c(\"V\u00e4sterhavsveckan orter 2024\"),\r\n  options = layersControlOptions(collapsed = TRUE)\r\n  ) %>% \r\n\r\n  # Mini map\r\n  addMiniMap(\r\n    tiles = providers$CartoDB.Positron,\r\n    toggleDisplay = TRUE,\r\n    minimized = TRUE)\r\n\r\n\r\n# View result\r\nvasterhavsveckan2024\r\n\r\n\r\n# Save map to disk, set page name\r\nsaveWidget(widget = vasterhavsveckan2024, file = \"Vasterhavsveckan_2024.html\", title=\"V\u00e4sterhavsveckan\")\r<\/code><\/pre>\n\n\n\n

R har h\u00e4r skapat filen Vasterhavsveckan_2024.html. Du hittar webbkartan p\u00e5 https:\/\/www.vgregion.se\/ov\/vasterhavsveckan\/har-finns-vi\/<\/a>.<\/p>\n\n\n\n

\u00d6ppna data<\/strong><\/p>\n\n\n\n

Denna datam\u00e4ngd \u00e4r ocks\u00e5 en bra kandidat f\u00f6r publicering som \u00f6ppna data:<\/p>\n\n\n\n