добавить государственные границы к выходу листовки, где входные данные являются графическим файлом - PullRequest
4 голосов
/ 19 июня 2019

Я скачал округ shapefile с data.gov . Я могу использовать их в листовке следующим образом, чтобы построить графы в WA, ID и OR. Я хотел бы сделать государственные границы более толстыми. Как я могу это сделать?

counties <- readOGR(paste0(dir, "/tl_2017_us_county.shp"),
                    layer = "tl_2017_us_county", GDAL1_integer64_policy = TRUE)

counties <- counties[counties@data$STATEFP %in% c("16", "41", "53"), ]
counties <- subset(counties, STATEFP %in% c("16", "41", "53") )
counties <- rmapshaper::ms_simplify(counties)

counties %>%
leaflet() %>%
setView(lng = -118.4942, lat = 47.2149, zoom = 5) %>%
addPolygons( fillColor = "green", fillOpacity = 0.5,
             color = "black", opacity = 1.0, weight = .6, smoothFactor = 0.5,
             highlightOptions = highlightOptions(color="white", weight=2, bringToFront = TRUE),
             label= ~ NAME) 

P.S. Я хотел бы сделать это в R studio, я не знаю здесь ни одной расширенной кодировки: https://leafletjs.com/

enter image description here


Редактировать Цель состояла в том, чтобы сделать государства различимыми, что я сделал со следующим:

factpal <- colorFactor(topo.colors(5), counties$category)

counties %>%
leaflet() %>%
# addTiles() %>% 
setView(lng = -118.4942, lat = 47.2149, zoom = 5) %>%
addPolygons( fillColor = ~factpal(STATEFP), fillOpacity = 0.5,
             # The following line is associated with borders
             color = "black", opacity = 1.0, weight = .6, smoothFactor = 0.5,
             highlightOptions = highlightOptions(color="white", weight=2, bringToFront = TRUE),
             label= ~ NAME)

Я все еще хотел бы знать ответ, как сделать границы более толстыми.

enter image description here

1 Ответ

2 голосов
/ 21 июня 2019

Вероятно, нет встроенной опции для достижения этой цели, поскольку вы пытаетесь построить контур всех графств-полигонов, принадлежащих государству.Конечно, это работает, когда вы выделяете состояния, окрашивая все полигоны внутри него.

Чтобы добиться того, что вы хотите с помощью sp -пакета, вы можете сделать это:

library(sp)
library(leaflet)

states <- aggregate(counties[, "STATEFP"], by = list(ID = counties@data$STATEFP), 
                    FUN = unique, dissolve = T)

counties %>%
  leaflet() %>%
  setView(lng = -118.4942, lat = 47.2149, zoom = 5) %>%
  addPolygons( fillColor = "green", fillOpacity = 0.5,
               color = "black", opacity = 1.0, weight = .6, smoothFactor = 0.5,
               highlightOptions = highlightOptions(color="white", weight=2, bringToFront = TRUE),
               label= ~ NAME) %>%
  addPolylines(data = states, color = "black", opacity = 1, weight = 3)

enter image description here

...