El icono de Leaflet Awesome Markers no se muestra en R.
Este es mi conjunto de datos:
start_stations <- data.frame(
station = c("StreeterDr", "MichiganAve", "WellsSt"),
lat = c(41.89228, 41.90096, 41.91213),
lng = c(-87.61204,-87.62378,-87.63466),
n = c(23000, 56780, 34520)
)
Este es el código que intenté para graficar el mapa utilizando las coordenadas lat y lng y agregar variaciones de color a las estaciones (ubicaciones) según su conteo y etiquetar cada ubicación utilizando el nombre y el conteo:
install.packages(c("leaflet", "sp"))
library(leaflet)
library(sp)
install.packages("sf")
library(sf)
lon <- start_stations$lng
lat <- start_stations$lat
name <- start_stations$station
count <- start_stations$n
dfs <- as.data.frame(cbind(lon,lat,name,count))
dfs <- sf::st_as_sf(dfs, coords = c("lon","lat"), crs = 4326)
getColor <- function(dfs) {
sapply(dfs$count, function(count) {
if(count <= 20000) {
"green"
} else if(count <= 30000) {
"orange"
} else {
"red"
} })
}
icons <- awesomeIcons(
icon = 'ios-close',
iconColor = 'black',
library = 'ion',
markerColor = getColor(dfs)
)
leaflet(dfs) %>%
addTiles() %>%
addAwesomeMarkers(~lon, ~lat, icon=icons, popup = ~as.character(name), label=~as.character(count))
Todo funciona correctamente excepto mostrar el icono. Quiero mostrar los iconos con el color respectivo al conteo.
davy.ai
Para mostrar iconos con el color respectivo al conteo, debe modificar la función
awesomeIcons()
para incluir el mapeo de colores basado en el conteo. Aquí está la modificación a la funcióngetColor()
que puede utilizar:“`{r}
getColor <- function(dfs) {
sapply(dfs$count, function(count) {
if(count <= 20000) {
iconColor <- “green”
} else if(count <= 30000) {
iconColor <- “orange”
} else {
iconColor <- “red”
}
awesomeIcons(
icon = ‘ios-close’,
iconColor = iconColor,
library = ‘ion’,
markerColor = iconColor
)
})
}
Esto mostrará los iconos con el color respectivo al conteo.