只有第一个多边形出现在 Leaflet 2.0.1 等值线图中

Only the first polygon is showing up in Leaflet 2.0.1 choropleth plot

我的 Shiny App 中的 leaflet 等值线图仅显示最近包更新到 Leaflet 2.0.1 后的第一个多边形。

我从 Leaflet for R 网页上改编了代码,它曾经有效。

这是一个 MRE:

library(sf)
library(leaflet)

From http://leafletjs.com/examples/choropleth/us-states.js

states <- read_sf("~/Downloads/cb_2017_us_state_20m/cb_2017_us_state_20m.shp")

leaflet(states) %>%
  setView(-96, 37.8, 2) %>%
  addPolygons(color = "#444444", weight = 1, smoothFactor = 0.5,
              opacity = 1.0, fillOpacity = 0.5,
              fillColor = ~colorQuantile("YlOrRd", ALAND)(ALAND),
              highlightOptions = 
    highlightOptions(color = "white", 
                     weight = 2, bringToFront = TRUE, dashArray = ""))

仅显示第一个多边形的输出:

我已经检查了数据集和 shapefile,它看起来是正确的,并且可以使用 plot 函数成功绘制。

这是 leaflet v 2.x.x

的已知错误

如果删除 dashArray = "" 命令,它应该可以正常显示,即

states <- read_sf("~/Downloads/cb_2017_us_state_20m/cb_2017_us_state_20m.shp")

leaflet(states) %>%
  setView(-96, 37.8, 2) %>%
  addPolygons(color = "#444444", weight = 1, smoothFactor = 0.5,
              opacity = 1.0, fillOpacity = 0.5,
              fillColor = ~colorQuantile("YlOrRd", ALAND)(ALAND),
              highlightOptions = 
    highlightOptions(color = "white", 
                     weight = 2, bringToFront = TRUE))

我找到了解决方案,即分配 dashArray = NULL。在 Leaflet for R 网页中,代码有 dashArray = ""。将空字符串分配给 dashArray 曾经作为默认值工作,但现在它会导致传单仅绘制第一个多边形。

library(sf)
library(leaflet)

From http://leafletjs.com/examples/choropleth/us-states.js

states <- read_sf("~/Downloads/cb_2017_us_state_20m/cb_2017_us_state_20m.shp")

leaflet(states) %>%
  setView(-96, 37.8, 2) %>%
  addPolygons(color = "#444444", weight = 1, smoothFactor = 0.5,
          opacity = 1.0, fillOpacity = 0.5,
          fillColor = ~colorQuantile("YlOrRd", ALAND)(ALAND),
          highlightOptions = highlightOptions(color = "white", weight = 2,
                                              bringToFront = TRUE,
                                              dashArray = NULL
                                              ))

这会输出正确的图: