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?
Hallo Bhaskar, wie r u? Danke für die Antwort!! –
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. –
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 –