Локальные иконки не загружаются, пустое изображение в буклете - PullRequest
0 голосов
/ 14 февраля 2019

Я не могу отображать ссылки на локальные изображения с addControl.

Сначала я подумал, что моя проблема была такой же, как этот вопрос: Иконки не загружаются (пустое изображение) в R Leaflet с Shiny .Однако я заметил, что при попытке воспроизвести пример я столкнулся с некоторыми проблемами.

Я думаю, что эти проблемы связаны:

  • Буклет R не может добавлять маркеры для 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 enter image description here

То же изображение в R Studio: enter image description here

Вам необходимо скопировать их локально:

1.png: PNG1

2.png: PNG2

...