我怎样才能使用“a”;至于;循环以映射多个多边形,且传单在R中发亮?

我怎样才能使用“a”;至于;循环以映射多个多边形,且传单在R中发亮?,r,web,mapping,shiny,leaflet,R,Web,Mapping,Shiny,Leaflet,我目前正在努力在一个闪亮的应用程序中映射多个多边形。Shining应用程序的目的是获取一些与多个州疾病传播相关的数据,并绘制出风险最高的地区。应用程序必须能够在点击“开始!”按钮时映射多个状态 (注意:这个应用程序非常大(总共6000多行),所以这里只显示相关代码,我不想给那些试图帮助我的人增加负担) 摘录自: 服务器.R #col_输入和col_名称的目的是创建一个包含函数所有输入参数的二维数组。这样做是为了保持与某些遗留代码的兼容性。另一方面,Catted_states将所有选定的状态合并到

我目前正在努力在一个闪亮的应用程序中映射多个多边形。Shining应用程序的目的是获取一些与多个州疾病传播相关的数据,并绘制出风险最高的地区。应用程序必须能够在点击“开始!”按钮时映射多个状态

(注意:这个应用程序非常大(总共6000多行),所以这里只显示相关代码,我不想给那些试图帮助我的人增加负担)

摘录自:

服务器.R
#col_输入和col_名称的目的是创建一个包含函数所有输入参数的二维数组。这样做是为了保持与某些遗留代码的兼容性。另一方面,Catted_states将所有选定的状态合并到一个列表中。
(示例:c(“AZ”、“FL”、“VA”)

输出$gm我不确定这是否解决了您的问题,但您的示例绝对不可复制,并且存在多个错误。如果您希望在for循环中生成多个多边形,然后将它们添加到传单贴图,下面是代码:

library(shiny)
library(leaflet)

ui <- fluidPage(
  sliderInput("nPolys", "How many Loops", min = 1, max = 20, value = 3),
  ## Map
  leafletOutput("gm")
)

server <- function(input, output) {

  ## Initialize map
  m = leaflet() %>% addTiles()


  ## Render Map
  output$gm <- renderLeaflet({
    ## Loop
    for (I in 1:input$nPolys) {
      ## Create dummy polygons
      Sr1 = Polygon(cbind(c(2,4,4,1,2)*runif(1,1,10),c(2,3,5,4,2)*runif(1,1,10)))
      Sr2 = Polygon(cbind(c(5,4,2,5)*runif(1,1,10),c(2,3,2,2)*runif(1,1,10)))
      Srs1 = Polygons(list(Sr1), "s1"); Srs2 = Polygons(list(Sr2), "s2")
      SpP = SpatialPolygons(list(Srs1,Srs2), 1:2)

      ## add Polygons to map
      m <- addPolygons(m, data=SpP, stroke = FALSE, smoothFactor = 0, fillOpacity = 0.5) 
    }

    ## Call map !
    m
  })
}

shinyApp(ui, server)
库(闪亮)
图书馆(单张)

ui我不确定这是否解决了您的问题,但您的示例绝对不可复制,并且有几个错误。如果您希望在for循环中生成多个多边形,然后将它们添加到传单贴图中,下面是代码:

library(shiny)
library(leaflet)

ui <- fluidPage(
  sliderInput("nPolys", "How many Loops", min = 1, max = 20, value = 3),
  ## Map
  leafletOutput("gm")
)

server <- function(input, output) {

  ## Initialize map
  m = leaflet() %>% addTiles()


  ## Render Map
  output$gm <- renderLeaflet({
    ## Loop
    for (I in 1:input$nPolys) {
      ## Create dummy polygons
      Sr1 = Polygon(cbind(c(2,4,4,1,2)*runif(1,1,10),c(2,3,5,4,2)*runif(1,1,10)))
      Sr2 = Polygon(cbind(c(5,4,2,5)*runif(1,1,10),c(2,3,2,2)*runif(1,1,10)))
      Srs1 = Polygons(list(Sr1), "s1"); Srs2 = Polygons(list(Sr2), "s2")
      SpP = SpatialPolygons(list(Srs1,Srs2), 1:2)

      ## add Polygons to map
      m <- addPolygons(m, data=SpP, stroke = FALSE, smoothFactor = 0, fillOpacity = 0.5) 
    }

    ## Call map !
    m
  })
}

shinyApp(ui, server)
库(闪亮)
图书馆(单张)

ui如果你做了你的例子,你就更有可能得到回应——例如,把一个复制你的问题的最小例子放在一起,其他人可以复制并粘贴到他们的环境中。谢谢你的建议。我会相应地更新问题@symbolxauy如果你做了你的例子,你更有可能得到回应——例如,放在一起这是一个复制您的问题的最小示例,其他人可以复制并粘贴到他们的环境中。谢谢您的建议。我将相应地更新问题@symbolXau
library(shiny)
library(leaflet)

ui <- fluidPage(
  sliderInput("nPolys", "How many Loops", min = 1, max = 20, value = 3),
  ## Map
  leafletOutput("gm")
)

server <- function(input, output) {

  ## Initialize map
  m = leaflet() %>% addTiles()


  ## Render Map
  output$gm <- renderLeaflet({
    ## Loop
    for (I in 1:input$nPolys) {
      ## Create dummy polygons
      Sr1 = Polygon(cbind(c(2,4,4,1,2)*runif(1,1,10),c(2,3,5,4,2)*runif(1,1,10)))
      Sr2 = Polygon(cbind(c(5,4,2,5)*runif(1,1,10),c(2,3,2,2)*runif(1,1,10)))
      Srs1 = Polygons(list(Sr1), "s1"); Srs2 = Polygons(list(Sr2), "s2")
      SpP = SpatialPolygons(list(Srs1,Srs2), 1:2)

      ## add Polygons to map
      m <- addPolygons(m, data=SpP, stroke = FALSE, smoothFactor = 0, fillOpacity = 0.5) 
    }

    ## Call map !
    m
  })
}

shinyApp(ui, server)