如何将Leflet插件添加到R脚本

如何将Leflet插件添加到R脚本,r,leaflet,R,Leaflet,在R代码中添加传单插件时遇到问题。具体来说,我正在尝试添加插件(请参见中的左上角) 我一直没有成功地尝试遵循,这是我到目前为止,这是没有工作 library(leaflet) library(htmltools) library(htmlwidgets) library(dplyr) map <- leaflet::leaflet() %>% leaflet::addTiles(group = "OSM") zoom_home_plugin <- htmlDep

在R代码中添加传单插件时遇到问题。具体来说,我正在尝试添加插件(请参见中的左上角)

我一直没有成功地尝试遵循,这是我到目前为止,这是没有工作

library(leaflet)
library(htmltools)
library(htmlwidgets)
library(dplyr)

map <- 
  leaflet::leaflet() %>% 
  leaflet::addTiles(group = "OSM")

zoom_home_plugin <- htmlDependency(
  name = "leaflet.zoomhome", 
  version = "99.99.99",
  src = c(href = "https://github.com/torfsen/leaflet.zoomhome/tree/master/dist/"),
  script = "leaflet.zoomhome.js")

RegisterPlugin <- function(map, plugin) {
  map$dependencies <- c(map$dependencies, list(plugin))

  return(map)
}

map <- RegisterPlugin(map, zoom_home_plugin) %>%
  onRender("function(el, x) {
    zoomHome.addTo(this);
  }")

map
图书馆(传单)
图书馆(htmltools)
库(htmlwidgets)
图书馆(dplyr)
映射%
传单::addTiles(group=“OSM”)

zoom_home_plugin我用以下代码得到了一些东西:

library(leaflet)
library(tidyverse)
library(htmlwidgets)
library(htmltools)

map <- leaflet(options = leafletOptions(zoomControl = FALSE)) %>% 
  addTiles() %>%
  onRender(
    "
function(el,x) {
  var zoomHome = L.Control.zoomHome();
  zoomHome.addTo(this);
}
")

temp_folder <- tempdir()
download.file(
  "https://raw.githubusercontent.com/torfsen/leaflet.zoomhome/master/dist/leaflet.zoomhome.js",
  file.path(temp_folder, 'leaflet.zoomhome.js')
)
download.file(
  "https://raw.githubusercontent.com/torfsen/leaflet.zoomhome/master/dist/leaflet.zoomhome.css",
  file.path(temp_folder, 'leaflet.zoomhome.css')
)

tagList(
  tags$head(
    includeScript(file.path(temp_folder, 'leaflet.zoomhome.js')),
    includeCSS(file.path(temp_folder, 'leaflet.zoomhome.css')),
    tags$link(rel="stylesheet", href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"),
  ),
  map
) %>%
  browsable()
图书馆(传单)
图书馆(tidyverse)
库(htmlwidgets)
图书馆(htmltools)
映射%
addTiles()%>%
onRender(
"
函数(el,x){
var zoomHome=L.Control.zoomHome();
zoomHome.addTo(这个);
}
")
临时文件夹%
可浏览的
据我所知,您的代码正试图访问“”,但正确的方法是指向“”。即使这样,在标题中放置
标记似乎对原始github链接也不起作用,因为js和样式表没有加载(至少在我所有的尝试中是这样)。因此,作为一种解决方法,我将脚本和样式表直接下载到一个临时文件夹中,并在html标题中使用该文件

此外,我还添加了fontawesome依赖项,并修改了
onRender
脚本以匹配中的示例