如何解决如何在R Leaflet中实现传单插件“ Leaflet-Pegman”
我想在我的闪亮应用程序中使用Google Streetview。我正在使用传单来绘制地图。我找到了这个很棒的传单插件“ Leaflet Pegman”。
如何将该插件实现到r闪亮的应用程序中?
我尝试使用此explanation。 我还找到了另一个R包(googleway),但就我而言,我想改用传单。
有人可以给我提供一个可行的例子吗?现在这是我的代码:
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)
非常感谢您。
解决方法
我必须在UI的head
中包括leaflet-pegman js文件,它才能正常工作。我还编辑了htmlDependency
中的链接,因为它没有引用正确的链接。
此代码现在对我有效:
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。