2016-09-23 3 views
1

Ich versuche, einen pulsierenden Marker aus einem Prospekt-Plugin auf einer Shiny App Map zu setzen. Es funktioniert sehr gut auf einem grundlegenden R Studio-Konsole finden Sie hier: Add a popup when clicked through to a 'plugin' pulsing marker in R Leaflethtmlwidget onRender-Funktion funktioniert nicht in R Shiny

Aber die folgenden nicht:

library(shiny) 
library(leaflet) 
library(htmltools) 
library(htmlwidgets) 

ui <- bootstrapPage(
    tags$style(type = "text/css", "html, body {width:100%;height:100%}"), 
    leafletOutput("map", width = "100%", height = "100%") 
) 

server <- function(input, output, session) { 

    #js and css plugin files are stored locally, but you can access to them here : 
# https://raw.githubusercontent.com/mapshakers/leaflet-icon-pulse/master/src/L.Icon.Pulse.js 
# https://raw.githubusercontent.com/mapshakers/leaflet-icon-pulse/master/src/L.Icon.Pulse.css 
    esriPlugin <- htmlDependency("leaflet-icon-pulse",version = "1.0", 
           src = "C:/HOME/", 
           script = "L.Icon.Pulse.js",stylesheet ="L.Icon.Pulse.css") 

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

    output$map <- renderLeaflet({ 
    leaflet() %>% 
     addProviderTiles("CartoDB.DarkMatter") %>% setView(-122.4105513,37.78250256, zoom = 12) %>% 
     registerPlugin(esriPlugin) %>% 
     onRender("function(el,x) { 
       var pulsingIcon = L.icon.pulse({iconSize:[5,5],color:'red',heartbeat:0.5}); 
       var pulsingIcon2 = L.icon.pulse({iconSize:[10,10],color:'orange',heartbeat:2}); 
       var marker = L.marker([37.78,-122.41],{icon: pulsingIcon}).bindPopup('<b>Hello world!</b><br>I am a popup.').openPopup().addTo(this); 
       var marker = L.marker([37.75,-122.39],{icon: pulsingIcon2}).addTo(this);}") 
    }) 

} 

shinyApp(ui, server) 

Jeder sehen, warum es nicht funktionieren?

Antwort

2

Das sieht in der Tat um einen Fehler in Shiny (oder htmlwidgets), habe ich ein reproduzierbares Beispiel erstellt und eingereicht ein Problem https://github.com/rstudio/shiny/issues/1389

+0

Hallo Bhaskar, wie r u? Danke für die Antwort!! –

+0

Ich habe jetzt ein Plugin, das Puls-Symbol unterstützt. https://github.com/bhaskarvk/leaflet.extras, aber Sie müssen Flugblatt von https://github.com/bhaskarvk/leaflet/commits/milestone/v1.1 bauen. –

+0

Hallo, Es scheint, dass ich nicht in der Lage bin, das zu tun, was Sie empfohlen haben, da running: library (devtools); dev_mode (ein = T); install_github ("Bhaskarvk/Prospekt"); install_github ("bhaskarvk/leaflet.extras"); Und Ihr RPub-Code Beispiel, ich baue eine Karte, aber ohne pulsierende Marker. Kannst du sehen, wo ich falsch liege? Danke Bhaskar –