你如何在 R Leaflet 中实现传单插件 "Leaflet-Pegman"
How do you implement leaflet plugin "Leaflet-Pegman" in R Leaflet
我想在我的 r shiny 应用程序中使用 google 街景。我正在使用传单绘制我的地图。我找到了这个很棒的传单插件“Leaflet Pegman”。
如何将此插件实现到 r shiny 应用程序中?
我尝试使用这个 explanation。
我还找到了另一个 R 包 (googleway),但在我的例子中,我想改用 leaflet。
有人可以给我一个工作示例吗?这是我的代码:
library(shiny)
library(leaflet)
library(htmltools)
library(htmlwidgets)
Googlekey <- "api_key_here"
PluginPegman <- htmlDependency(name = "Pegman",version = "0.1.4"
,src = c(href = "https://unpkg.com/leaflet-pegman/0.1.4/")
,script = "leaflet-pegman.js"
,stylesheet = "leaflet-pegman.css")
registerPlugin <- function(map, plugin) {
map$dependencies <- c(map$dependencies, list(plugin))
map
}
ui <- bootstrapPage(
tags$style(type = "text/css","html,body {width:100%;height:100%}")
,leafletOutput("map",width = "100%",height = "100%")
)
server <- function(input, output) {
output$map <- renderLeaflet({
leaflet() %>%
# Set view to the Netherlands
setView(5.41077,52.13012,zoom = 8) %>%
addProviderTiles(providers$OpenStreetMap,group = "OSM") %>%
registerPlugin(PluginPegman) %>%
onRender("function() {
var pegmanControl = new L.Control.Pegman({
position: 'bottomright', // position of control inside the map
theme: 'leaflet-pegman-v3-default', // or 'leaflet-pegman-v3-small'});
pegmanControl.addTo(map);
}")
})
}
shinyApp(ui = ui, server = server)
非常非常感谢。
我必须将 leaflet-pegman js 文件包含在 UI 的 head
中才能正常工作。我还编辑了 htmlDependency
中的 link,因为它没有引用正确的 link。
这段代码现在对我有用:
library(shiny)
library(leaflet)
library(htmltools)
library(htmlwidgets)
Googlekey <- "api_key_here"
PluginPegman <- htmlDependency(name = "Pegman", version = '0.1.5'
,src = c(href = "https://unpkg.com/leaflet-pegman")
,script = "leaflet-pegman.js"
,stylesheet = "leaflet-pegman.css")
registerPlugin <- function(map, plugin) {
map$dependencies <- c(map$dependencies, list(plugin))
map
}
ui <- bootstrapPage(
tags$head(
tags$script(src='https://unpkg.com/leaflet-pegman@0.1.5/leaflet-pegman.js'),
tags$style(type = "text/css","html,body {width:100%;height:100%}")
),
leafletOutput("map",width = "100%",height = "100%")
)
server <- function(input, output) {
output$map <- renderLeaflet({
leaflet() %>%
# Set view to the Netherlands
setView(5.41077,52.13012,zoom = 8) %>%
addProviderTiles(providers$OpenStreetMap,group = "OSM") %>%
registerPlugin(PluginPegman) %>%
onRender("function(el,x) {
var pegmanControl = new L.Control.Pegman({
position: 'bottomright',
theme: 'leaflet-pegman-v3-default',
apiKey: YOUR API KEY});
pegmanControl.addTo(this);}")
})
}
shinyApp(ui = ui, server = server)
我想在我的 r shiny 应用程序中使用 google 街景。我正在使用传单绘制我的地图。我找到了这个很棒的传单插件“Leaflet Pegman”。
如何将此插件实现到 r shiny 应用程序中?
我尝试使用这个 explanation。 我还找到了另一个 R 包 (googleway),但在我的例子中,我想改用 leaflet。
有人可以给我一个工作示例吗?这是我的代码:
library(shiny)
library(leaflet)
library(htmltools)
library(htmlwidgets)
Googlekey <- "api_key_here"
PluginPegman <- htmlDependency(name = "Pegman",version = "0.1.4"
,src = c(href = "https://unpkg.com/leaflet-pegman/0.1.4/")
,script = "leaflet-pegman.js"
,stylesheet = "leaflet-pegman.css")
registerPlugin <- function(map, plugin) {
map$dependencies <- c(map$dependencies, list(plugin))
map
}
ui <- bootstrapPage(
tags$style(type = "text/css","html,body {width:100%;height:100%}")
,leafletOutput("map",width = "100%",height = "100%")
)
server <- function(input, output) {
output$map <- renderLeaflet({
leaflet() %>%
# Set view to the Netherlands
setView(5.41077,52.13012,zoom = 8) %>%
addProviderTiles(providers$OpenStreetMap,group = "OSM") %>%
registerPlugin(PluginPegman) %>%
onRender("function() {
var pegmanControl = new L.Control.Pegman({
position: 'bottomright', // position of control inside the map
theme: 'leaflet-pegman-v3-default', // or 'leaflet-pegman-v3-small'});
pegmanControl.addTo(map);
}")
})
}
shinyApp(ui = ui, server = server)
非常非常感谢。
我必须将 leaflet-pegman js 文件包含在 UI 的 head
中才能正常工作。我还编辑了 htmlDependency
中的 link,因为它没有引用正确的 link。
这段代码现在对我有用:
library(shiny)
library(leaflet)
library(htmltools)
library(htmlwidgets)
Googlekey <- "api_key_here"
PluginPegman <- htmlDependency(name = "Pegman", version = '0.1.5'
,src = c(href = "https://unpkg.com/leaflet-pegman")
,script = "leaflet-pegman.js"
,stylesheet = "leaflet-pegman.css")
registerPlugin <- function(map, plugin) {
map$dependencies <- c(map$dependencies, list(plugin))
map
}
ui <- bootstrapPage(
tags$head(
tags$script(src='https://unpkg.com/leaflet-pegman@0.1.5/leaflet-pegman.js'),
tags$style(type = "text/css","html,body {width:100%;height:100%}")
),
leafletOutput("map",width = "100%",height = "100%")
)
server <- function(input, output) {
output$map <- renderLeaflet({
leaflet() %>%
# Set view to the Netherlands
setView(5.41077,52.13012,zoom = 8) %>%
addProviderTiles(providers$OpenStreetMap,group = "OSM") %>%
registerPlugin(PluginPegman) %>%
onRender("function(el,x) {
var pegmanControl = new L.Control.Pegman({
position: 'bottomright',
theme: 'leaflet-pegman-v3-default',
apiKey: YOUR API KEY});
pegmanControl.addTo(this);}")
})
}
shinyApp(ui = ui, server = server)