Локальные иконки не загружаются, пустое изображение в буклете
Я не могу отображать ссылки на локальные изображения с addControl
,
Сначала я думал, что моя проблема была такой же, как этот вопрос: значки не загружаются (пустое изображение) в R Leaflet с Shiny. Однако я заметил, что при попытке воспроизвести пример я столкнулся с некоторыми проблемами.
Я думаю, что эти вопросы связаны:
- R's Leaflet не может добавлять маркеры для https (только R Studio)
- Листовка в R Studio не может ссылаться на изображения, если указан относительный или абсолютный локальный путь
- Листовка в графическом интерфейсе R не может ссылаться на изображения, если указан локальный путь
Я был удивлен, что некоторые вещи работали в R GUI, а не R Studio. После проверки объектов после их рендеринга в HTML я обнаружил, что изображения преобразуются в базовые 64 объекта. Я думаю, что проблема в том, что makeIcon
использует это: getFromNamespace(".b64EncodeFile", "markdown")
и при добавлении элементов управления HTML, которые ссылаются на относительный путь, протокол отсутствует, поэтому объект не преобразуется.
Вот мой воспроизводимый пример:
library(leaflet)
data(quakes)
quakes <- quakes[1:10,]
leafIcons <- icons(
iconUrl = ifelse(quakes$mag < 4.6,
"https://leafletjs.com/examples/custom-icons/leaf-green.png",
"https://leafletjs.com/examples/custom-icons/leaf-red.png"),
iconWidth = 38, iconHeight = 95,
iconAnchorX = 22, iconAnchorY = 94)
html_legend <- "<img src='data/icons/1.png'>green<br/>
<img src='C:/FULL_ABSOLUTE_PATH/data/icons/2.png'>red"
leaflet(data = quakes) %>% addTiles() %>%
addMarkers(~long, ~lat, icon = leafIcons) %>%
addControl(html = html_legend, position = "bottomleft")
Изображение отображается в R GUI
То же изображение в R Studio:
Вам нужно будет скопировать их локально:
1.png
: