将邮政编码数据添加到R中的闪亮传单地图中

时间:2020-10-02 21:48:56

标签: r shiny leaflet interactive

下面是我的代码。我有一个工作地图,单击该地图可以放大每个县,但是我希望根据特定位置的邮政编码数量和每个州的数据计数,将地图的阴影变暗或变亮。

任何帮助将不胜感激!

require(leaflet)
require(maps)
require(maptools)
require(sp)
require(rgeos)

zipdata=data2$LossZipCode
statedata=data2$LossStateAbbreviation
mapStates=map("state",fill=TRUE,plot=FALSE)
mapCounty=map("county",fill=TRUE,plot=FALSE)

shinyApp(
  ui = fluidPage(leafletOutput('myMap'),
             br(),
             leafletOutput('myMap2')),

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


#leafletOutput("myMap"),br(),leafletOutput("myMap2")

output$myMap=renderLeaflet({

leaflet()%>%
addProviderTiles("Stamen.TonerLite",options=providerTileOptions(noWrap=TRUE))%>%
    addPolygons(lng=mapStates$x, lat=mapStates$y,fillColor=topo.colors(10,alpha=NULL),stroke=FALSE)
})


  observeEvent(input$myMap_shape_click, {
        click <- input$myMap_shape_click
        if(is.null(click))
          return()       

    lat <- click$lat
    lon <- click$lng

    coords <- as.data.frame(cbind(lon, lat))
    point <- SpatialPoints(coords)
    mapStates_sp <- map2SpatialPolygons(mapStates, IDs = mapStates$names)
    i <- point [mapStates_sp, ]
    selected <- mapStates_sp [i]
    mapCounty_sp <- map2SpatialPolygons(mapCounty, IDs = mapCounty$names)
    z <- over(mapCounty_sp, selected)
    r <- mapCounty_sp[(!is.na(z))] 

    output$myMap2 <- renderLeaflet({
        leaflet() %>% 
          addProviderTiles("Stamen.TonerLite",
                       options = providerTileOptions(noWrap = TRUE)) %>%
          addPolygons(data=r,
                      fillColor = topo.colors(10, alpha = NULL), 
                      stroke = FALSE)
    })
  })
  })

0 个答案:

没有答案
相关问题