2016-09-27 227 views
1

我很努力地在tabPanel地图上显示位置的集群,当在另一个tabPanel上时,热图被激活。R闪亮的clusterOptions不显示在tabPanel上 - 与rCharts冲突?

奇怪的是,当我在ui.R中删除第二个tabPanel(热图)时,那么在第一个tabPanel上显示集群确定。

如果我保留在ui.R中的热图tabPanel并删除server.R中的“clusterOptions = markerClusterOptions()”,那么位置显示在第一个tabPanel上,并且热图是OK的。

这里是我的代码,所以你可以很容易地重现该问题:

global.R

library(shiny) 
library(shinydashboard) 
library(leaflet) 
library(dplyr) 
library(plyr) 
library(rCharts) 

Lat <- c(48.89612,48.87366,48.88739,48.88558,48.87561) 
Long <- c(2.383857,2.383921,2.387161,2.386701,2.387337) 
data_test <- data.frame(Lat,Long) 
data_test <- ddply(data_test, .(Lat, Long), summarise, count = length(Lat)) 

server.R

library(rCharts) 
library(shiny) 
library(shinydashboard) 
library(leaflet) 
library(dplyr) 
library(plyr) 

    shinyServer(function (input, output){ 

     output$map1 <- renderLeaflet({ 
     leaflet() %>% setView(lng = 2.3488000, lat = 48.8534100, zoom = 12) %>% 
     addProviderTiles('CartoDB.Positron') %>% 
     addTiles() %>% 
     addCircleMarkers(lng = data_test$Long, lat = data_test$Lat,color= 
         'red', 
         clusterOptions = markerClusterOptions()) 
      }) 

     output$baseMap <- renderMap({ 
     map2 = Leaflet$new() 
     map2$setView(c(48.85341,2.34880,13)) 
     map2$addParams(height = 590, width = 880, zoom = 12) 
     map2$set(dcom = "baseMap") 
     return(map2) 
      }) 

     output$heatMap <- renderUI({ 

     j <- paste0("[",data_test[,"Lat"], ",", data_test[,"Long"], 
      ",",data_test[,"count"], "]", collapse=",") 
     j <- paste0("[",j,"]") 

     tags$body(tags$script(HTML(sprintf(" 
            var addressPoints = %s 
            if (typeof heat === typeof undefined) { 
            heat = L.heatLayer(addressPoints, {radius: 
            50,blur: 20,maxZoom: 5,max: 6.0, 
            gradient: {0.0: 'green',0.5: 'yellow',1.0: 
            'red' }}), 
            heat.addTo(map)} 
            else {heat.setLatLngs(addressPoints)}", j 
            ))))             

      }) 
     }) 

ui.R

library(rCharts) 
library(shiny) 
library(shinydashboard) 
library(leaflet) 
library(dplyr) 
library(plyr) 

    header <- dashboardHeader(
    title = "Test Paris", titleWidth = 450 
    ) 

    body <- dashboardBody(
    fluidRow(
     column(width = 12, 

      tabBox(width = 12,    
      id = "CartePrincipale",     
      tabPanel("Map of Accidents",leafletOutput("map1", height="590px")), 
      tabPanel("HeatMap of Accidents", 
         showOutput("baseMap", "Leaflet"), 
         tags$style(' .leaflet {height: "590px";}'),  
    tags$head(tags$script(src="http://leaflet.github.io/Leaflet.heat/dist/leaflet-heat.js")),  
         uiOutput("heatMap")) 

         ))) 
    ) 

    dashboardPage(
     header, 
     dashboardSidebar(disable = TRUE), 
     body) 

是否有冲突?与rCharts在哪里? 非常感谢您的协助!

回答

0

嗯,我终于遇到了答案,这要感谢Ramnath在网站上发布的其他人的问题。

在ui.r,第二个tabpanel,诀窍只是更换

showOutput("baseMap", "Leaflet") 

由:

htmlOutput("baseMap") 

群集现在显示在第一的TabPanel好!