---
title: "Meetpunten HHSK"
#author: "Johan van Tent"
date: "`r format(Sys.time(), '%d %B %Y')`"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: scroll
#social: menu
source_code: embed
css: CSS/flexdashboard_JT.css
favicon: images/favicon.ico
logo: images/logo_hhsk_wit_48px.gif
editor_options:
chunk_output_type: console
---
```{r setup, include=FALSE}
# Knit options
knitr::opts_chunk$set(warning = FALSE, message = FALSE)
# Libraries
library(tidyverse)
library(knitr)
library(DT)
library(leaflet)
library(HHSKwkl)
library(readxl)
library(lubridate)
library(crosstalk)
# source("R/temp.R")
# Other options
options(DT.options = list(
language = list(
paginate = list(previous = 'Vorige', `next` = 'Volgende'),
search = "Zoeken",
decimal = ",",
info = 'Rijen _START_ tot _END_ Totaal: _TOTAL_ rijen',
lengthMenu = "Toon _MENU_ rijen"
)
))
# options(OutDec = ",")
my_datatable <- function(df, ...) {
DT::datatable(data = df, extensions = 'Buttons',
options = list(dom = 'lfirtpB', buttons = c('csv', 'excel', 'pdf')), ...)
}
copy_data(c("meetpunten.csv", "fys_chem.csv", "biologie.csv"))
# source("R/copy_data.R")
```
```{r load_data, include = FALSE}
mp_types <- tibble::tribble(
~type_code, ~type_omschrijving,
1, "Regulier",
2, "KRW",
3, "Quickscan",
4, "Vlakdekkend",
5, "KWA",
6, "Diepteprofiel",
7, "NVO",
8, "Overig",
9, "Vis",
10, "Maaibeheer",
11, "Stadswater",
12, "Gebiedsgerichte aanpak",
13, "Ad Hoc",
14, "Handhaving"
) %>%
mutate(type_omschrijving = fct_inorder(type_omschrijving))
laatste_meetjaar_fc <- import_fys_chem() %>%
add_jaar() %>%
group_by(mp) %>%
summarise(laatste_jaar = max(jaar)) %>%
mutate(fc_bio = "Fysisch-chemisch")
laatste_meetjaar_bio <- read_csv2("data/biologie.csv") %>%
add_jaar() %>%
group_by(mp) %>%
summarise(laatste_jaar = max(jaar)) %>%
mutate(fc_bio = "Alleen biologie") %>%
anti_join(laatste_meetjaar_fc, by = "mp")
laatste_meetjaar <- bind_rows(laatste_meetjaar_fc, laatste_meetjaar_bio)
meetpunten <- import_meetpunten() %>%
add_lat_long() %>% mutate(lat = round(lat, 6), long = round(long, 6)) %>%
left_join(mp_types, by = c("meetpunttypering" = "type_code")) %>%
left_join(laatste_meetjaar, by = "mp") %>%
select(Meetpunt = mp, Omschrijving = mpomsch, X = x, Y = y, Longitude = long, Latitude = lat, Meetpunttype = type_omschrijving, Deelgebied = gebiednaam, `Laatste meetjaar` = laatste_jaar, `Chemie of biologie` = fc_bio)
```
## Selectie {.sidebar data-width=400}
```{r}
mp_shared <- meetpunten %>% filter(X != 0)%>% SharedData$new()
pal <- colorFactor(RColorBrewer::brewer.pal(9, "Set1"), mp_shared$data()$Meetpunttype)
crosstalk::filter_select("mpcode", "Selecteer een meetpuntcode", mp_shared, ~Meetpunt)
crosstalk::filter_checkbox("mp_type", label = "Selecteer een meetpunttype", mp_shared,
group = ~Meetpunttype, columns = 2)
crosstalk::filter_checkbox("gebied", label = "Selecteer een gebied", mp_shared,
group = ~Deelgebied, columns = 2)
crosstalk::filter_checkbox("fc_bio", label = "Selecteer soort metingen", mp_shared,
group = ~`Chemie of biologie`, columns = 2)
crosstalk::filter_slider("meetjaar", "Laatste meetjaar", mp_shared, column = ~`Laatste meetjaar`, step = 1, sep = "")
```
##
### kaart {data-height=600}
```{r}
popup_fun <- function(mp, mpomsch, x, y, gebied, type){
glue::glue("Meetpunt: {mp}
Beschrijving: {mpomsch}
Deelgebied: {gebied}
Meetpunttype: {type}
X: {x}
Y: {y}")
}
mp_shared %>%
basiskaart() %>%
addCircleMarkers(stroke = FALSE,
radius = 6,
fillOpacity = 1,
fillColor = ~pal(Meetpunttype),
label = ~Meetpunt,
popup = ~popup_fun(Meetpunt, Omschrijving, X, Y, Deelgebied, Meetpunttype)) %>%
addLegend(pal = pal, values = ~Meetpunttype, opacity = 1) %>%
leaflet.extras::addFullscreenControl() %>%
leaflet.extras::addHash() %>%
leaflet.extras::addSearchOSM()
```
### tabel
```{r}
mp_shared %>% my_datatable()
```