Polygons not getting plotted on leaflet map since update

This was crossposted (and solved) on Stack Overflow:

I reply also here for completeness.

The problem seems related to the fact that ms_simplify() adds names to the geometry column:

polys_sf<-st_read(system.file("shape/nc.shp", package="sf") ) %>% 
  st_transform(crs="+init=epsg:4326") %>% 
  ms_simplify(.)

names(st_geometry(polys_sf))

  [1] "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25"
 [27] "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51"
 [53] "52" "53" "54" "55" "56" "57" "58" "59" "60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "70" "71" "72" "73" "74" "75" "76" "77"
 [79] "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88" "89" "90" "91" "92" "93" "94" "95" "96" "97" "98" "99"

as suggested in Polygons and polylines do not display in Leaflet · Issue #880 · r-spatial/sf · GitHub, removing the names will solve the issue. Therefore, this works:

library(shiny)
library(shinydashboard)
library(leaflet)
library(sf)
library(rmapshaper)
### Read in shapefiles  ###
polys_sf<-st_read(system.file("shape/nc.shp", package="sf") ) %>% 
  st_transform(crs="+init=epsg:4326") %>% 
  ms_simplify(.)

names(st_geometry(polys_sf)) = NULL

ui<- dashboardPage(
  header = dashboardHeader(),
  sidebar = dashboardSidebar(),
  body = dashboardBody(
    box(width=12,leafletOutput("leaf"))))
### Server ###
server<- function(input,output,session){
  ### This creates interactive map ###
  output$leaf<- renderLeaflet({
    leaflet(options = leafletOptions(minZoom = 7))%>%
      addPolygons(data= polys_sf)
  })
}

shinyApp(ui,server)

, while if the names(st_geometry(polys_sf)) = NULL line is removed the polygons are not shown.

@KWANGER : please have a look at FAQ: Is it OK if I cross-post? regarding policies about cross-posting on this forum.

2 Likes