Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 编辑tmap/传单/Shining的默认值(弹出窗口和平铺)_R_Shiny_Leaflet_Tmap - Fatal编程技术网

R 编辑tmap/传单/Shining的默认值(弹出窗口和平铺)

R 编辑tmap/传单/Shining的默认值(弹出窗口和平铺),r,shiny,leaflet,tmap,R,Shiny,Leaflet,Tmap,我正在使用tmap、传单和SHINK创建巴斯克国家(西班牙)的交互式地图。我已经能够创建贴图,但无法编辑renderLeaflet的默认行为,具体来说: 我想编辑默认标签和弹出窗口。理想情况下,我不想弹出窗口(点击),只有标签(鼠标上方);标签将包含弹出窗口中当前显示的信息,以及一些附加信息,并显示在地图的右上角,而不是区域上(类似于此) 我想删除传单平铺,以便只显示Esri.WorldGrayCanvas,因此,不应在平铺之间切换 下面的代码显示了我所说的内容。所需的形状文件可在此处或此处下载

我正在使用tmap、传单和SHINK创建巴斯克国家(西班牙)的交互式地图。我已经能够创建贴图,但无法编辑renderLeaflet的默认行为,具体来说:

  • 我想编辑默认标签和弹出窗口。理想情况下,我不想弹出窗口(点击),只有标签(鼠标上方);标签将包含弹出窗口中当前显示的信息,以及一些附加信息,并显示在地图的右上角,而不是区域上(类似于此)

  • 我想删除传单平铺,以便只显示Esri.WorldGrayCanvas,因此,不应在平铺之间切换

  • 下面的代码显示了我所说的内容。所需的形状文件可在此处或此处下载

    库(闪亮)
    图书馆(shinyWidgets)
    图书馆(单张)
    图书馆(rgdal)
    图书馆(tmap)
    图书馆(tmaptools)
    图书馆(dplyr)
    setwd(~)
    
    形状是否需要使用
    tmap
    ?我认为您只需使用
    传单
    ,就可以获得您想要的行为-请查看此处的指南:

    可行的结构是:

    输出$map%
    addProviderTiles(“ESRI.WorldGrayCanvas”)%%>%
    addPolygons(数据=子集_data(),…)%>%
    添加图例(position=“topright”,…)#使用。。。这里意味着需要更多的东西!
    })
    
    然后,您可以通过将
    color
    fill
    参数传递到
    addPolygons
    来更改形状的颜色;您可以分别使用
    popup
    label
    参数更改弹出窗口和标签

    在图例中(对于多边形颜色),您需要提供调色板和颜色值


    所有详细信息都在上面的链接中-它与您提供的传单JS链接中的choropleth相同,但使用R构建。

    谢谢,我会尝试一下。我开始使用tmap是因为它看起来更简单,但我会按照你们的建议只使用传单,并让你们知道。
        library(shiny)
    library(shinyWidgets)
    library(leaflet)
    library(rgdal)
    library(tmap)
    library(tmaptools)
    library(dplyr)
    
    
    setwd(~)
    
    shape <- read_shape(file="CB_COMARCAS_5000_ETRS89.shp") # Load shape file
    
    shape$COMARCA <- as.character(shape$COMARCA)
    
    shape$COMARCA <- c(# Vector with names of the areas
      "Alto Deba", "Arratia-Nervión", "Bajo Bidasoa", "Bajo Deba", "Cantábrica Alavesa",
      "Donostialdea", "Duranguesado", "Encartaciones", "Estribaciones del Gorbea",
      "Gernika-Bermeo", "Goierri", "Gran Bilbao", "Llanada Alavesa", "Markina-Ondarroa", 
      "Montaña Alavesa", "Plentzia-Mungia", "Rioja Alavesa", "Tolosa", "Urola Costa", "Valles Alaveses")
    
    datawvals$COMARCA <- c(# Vector with names of the areas
      "Alto Deba", "Arratia-Nervión", "Bajo Bidasoa", "Bajo Deba", "Cantábrica Alavesa",
      "Donostialdea", "Duranguesado", "Encartaciones", "Estribaciones del Gorbea",
      "Gernika-Bermeo", "Goierri", "Gran Bilbao", "Llanada Alavesa", "Markina-Ondarroa", 
      "Montaña Alavesa", "Plentzia-Mungia", "Rioja Alavesa", "Tolosa", "Urola Costa", "Valles Alaveses")
    
    datawvals <- bind_rows(datawvals, datawvals, datawvals)
    datawvals$time <- c(rep("2010",20), rep("2014",20), rep("2016",20))
    datawvals$var1 <- runif(60)
    datawvals$var2 <- runif(60)
    datawvals$var3 <- runif(60)
    
    data4map <- left_join(shape, datawvals, by="COMARCA") #join shape with data to be depicted
    
    years <- c(2010,2014,2016)
    
    
    runApp(list(
      ui = fluidPage(
        titlePanel("Shiny tmap!"),
        sidebarLayout(
          sidebarPanel(
            selectInput("var", label = "Variable", choices = c("var1", "var2", "var3"), selected = "var1"),
            sliderTextInput(
              inputId = "time", label = "year", 
              choices = years,  selected = 2010, 
              grid = FALSE
            )
          ),
          mainPanel(
            leafletOutput("map", width=600)
          )
        )
      ),
      server = function(input, output) {
    
        #Subset data based on year
        subsetData <- reactive({
          new_data <- data4map[data4map$time==input$time, ]
          return(new_data)
        })
    
        #Different color palettes for diff vars
        colores <- reactive({
          if(input$var=="var1"){
            colores0 <- "Blues"
          } else{
            colores0 <- "Reds"
          }
    
          return(colores0)
        })
    
        #Actual plot
        output$map = renderLeaflet({
    
            tm <- tm_shape(subsetData()) +
              tm_polygons(input$var, palette=colores())
    
    
          tmap_leaflet(tm)
        })
      }
    ))