Иконки не загружаются (пустое изображение) в буклет R с блестящими
[R-3.4.3 64-bit, RStudio, shinydashboard_0.6.1, глянцевый_1.0.5, leaflet.extras_0.2, Chrome]
Я делаю иконки для использования в R/Leaflet с Shiny, и все, что я получаю, это ниже, но я понятия не имею, почему:
Это на примере игрушки отсюда:
oceanIcons <- iconList(
ship = makeIcon("ferry-18.png", "ferry-18@2x.png", 18, 18),
pirate = makeIcon("danger-24.png", "danger-24@2x.png", 24, 24)
)
# Some fake data
df <- sp::SpatialPointsDataFrame(
cbind(
(runif(20) - .5) * 10 - 90.620130, # lng
(runif(20) - .5) * 3.8 + 25.638077 # lat
),
data.frame(type = factor(
ifelse(runif(20) > 0.75, "pirate", "ship"),
c("ship", "pirate")
))
)
leaflet(df) %>% addTiles() %>%
# Select from oceanIcons based on df$type
addMarkers(icon = ~oceanIcons[type])
И следующее, с различными, но похожими данными игрушек, при использовании runApp(shinyApp(ui, server), launch.browser = TRUE)
;
1 ответ
Решение
Смотрите документацию для makeIcon. В качестве первого аргумента он ожидает:
iconUrl: the URL or file path to the icon image
Так что ваш код будет работать только если у вас есть png
в рабочем каталоге измените путь, чтобы он содержал правильный путь к изображению на вашем жестком диске, или вы можете использовать URL. Таким рабочим примером будет:
# Make a list of icons. We'll index into it based on name.
oceanIcons <- iconList(
ship = makeIcon("http://globetrotterlife.org/blog/wp-content/uploads/leaflet-maps-marker-icons/ferry-18.png", 18, 18),
pirate = makeIcon("http://globetrotterlife.org/blog/wp-content/uploads/leaflet-maps-marker-icons/danger-24.png", 24, 24)
)
# Some fake data
df <- sp::SpatialPointsDataFrame(
cbind(
(runif(20) - .5) * 10 - 90.620130, # lng
(runif(20) - .5) * 3.8 + 25.638077 # lat
),
data.frame(type = factor(
ifelse(runif(20) > 0.75, "pirate", "ship"),
c("ship", "pirate")
))
)
leaflet(df) %>% addTiles() %>%
# Select from oceanIcons based on df$type
addMarkers(icon = ~oceanIcons[type])
Надеюсь это поможет!