只有第一个多边形出现在 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
))
这会输出正确的图:
我的 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
))
这会输出正确的图: