library(flexdashboard) library(shiny) library(jsonlite) library(maptools) library(ggplot2) library(tidyr) library(dplyr) library(purrr) library(leaflet) library(plotly) sites <- fromJSON(flatten=TRUE, "https://raw.githubusercontent.com/ottlngr/2016-15/ottlngr/ottlngr/sites.json") sites$locations <- map(sites$locations, function(x) { if (nrow(x) == 0) { data_frame(latitude=NA, longitude=NA, postal_code=NA, name=NA, street_address=NA) } else { x } }) sites <- unnest(sites) sites <- sites[complete.cases(sites[,c("longitude", "latitude")]),] sites$ratingcol <- ifelse(sites$site.rating == 0, "orange", ifelse(sites$site.rating == 1, "green", ifelse(sites$site.rating == 2, "red", "black"))) sites$ratingf <- factor(sites$site.rating, levels=c(3:0), labels=c("Remote or no potential for radioactive contamination.", "No authority to clean up or status unclear.", "Cleanup declared complete.", "Cleanup in progress.")) sites$campus <- ifelse(grepl("University", sites$site.name) | grepl("University", pattern = sites$street_address) | grepl("Campus", sites$street_address), 1, 0) sites$campuscol <- ifelse(sites$campus == 1, "red", "black")
leaflet() %>% addTiles() %>% fitBounds(-127.44,24.05,-65.30,50.35) %>% addCircleMarkers(sites$longitude, sites$latitude, color = sites$ratingcol, radius = 6, fill = T, fillOpacity = 0.2, opacity = 0.6, popup = paste(sites$site.city, sites$site.name, sep = "<br>")) %>% addLegend("bottomleft", colors = c("orange","green", "red", "black"), labels = c("Cleanup in progress.", "Cleanup complete.", "Status unclear.", "No potential for radioactive contamination."), opacity = 0.8)
sites %>% count(ratingf) %>% plot_ly(type = "bar", x = ratingf, y = n, color = ratingf, text = paste(n,ratingf,sep="<br>"), hoverinfo = "text") %>% layout(xaxis = list(showline = F, showticklabels = F, fixedrange = T, title = ""), yaxis = list(fixedrange = T, title = ""))
leaflet() %>% addTiles() %>% fitBounds(-127.44,24.05,-65.30,50.35) %>% addCircleMarkers(sites[sites$campus == 1, ]$longitude, sites[sites$campus == 1, ]$latitude, color = sites[sites$campus == 1, ]$campuscol, radius = 6, fill = T, fillOpacity = 0.2, opacity = 0.6, popup = paste(sites[sites$campus == 1, ]$site.city, sites[sites$campus == 1, ]$site.name, sep = "<br>"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.