Постройте МУЛЬТИЛИНЕСТРИНГ, используя буклет - PullRequest
1 голос
/ 02 августа 2020

Я новичок в листовках и картах в R. Я пытаюсь визуализировать объем трафика c для определенной мультистроки в R. Ближайший ответ, который я нашел, был:

Как для построения MULTILINESTRING в буклете addPolylines?

Но я хочу сопоставить эти мультистроки на основе их объемов или количества. Мои многострочные данные изначально были в символах, поэтому я использовал библиотеку sf, чтобы преобразовать их в sfc_multilinestring. Вы можете найти исходный набор данных здесь

Мои образцы данных:

data <- data.frame(
    multilinestring = c("MULTILINESTRING ((-114.06036700906716 51.04831941917631, -114.05790835100508 51.04824965329041))", "MULTILINESTRING ((-114.06876825342002 50.96863425573366, -114.0714654457777 50.96864796962547))", "MULTILINESTRING ((-114.03372206187294 51.053232488239935, -114.03370889695204 51.05088210489753))"),
    VOLUME = c(22000,5000,5000))

После преобразования в sfc_MULTILINESTRING

data$geom <- st_as_sfc(data$multilinestring)

Я пробовал то же самое код в ссылке (я поделился выше), но я не могу определить интенсивность цвета.

leaflet((data$geom) %>% 
  addTiles() %>% 
  addPolygons() 

Приведенный выше код отображает многострочность, но я не знаю, как изменить интенсивность цвета многострочного на основе их ОБЪЕМА.

Это то, что я хочу получить в конечном итоге (с моим полным набором данных):

http://www.gisresources.com/free-u-s-traffic-count-data-use-maptitude-2018-mapping-software/

Вот моя система и версия R:

платформа x86_64-w64-mingw32 арка x86_64 ОС mingw32 система x86_64, mingw32 положение дел майор 4 второстепенный 0,2 SVN Rev 78730 язык R version.string R версия 4.0.2 (2020-06-22)

1 Ответ

0 голосов
/ 04 августа 2020

Вот как это можно сделать. Следует отметить несколько моментов:

  • Я использую st_as_sf(), который преобразует фрейм данных в объект sf.
  • Для Leaflet вам нужно создать свою собственную цветовую палитру ( colorNumeric())
  • Я передаю весь объект sf в вызов leaflet()
data <- data.frame(
  multilinestring = c("MULTILINESTRING ((-114.06036700906716 51.04831941917631, -114.05790835100508 51.04824965329041))", "MULTILINESTRING ((-114.06876825342002 50.96863425573366, -114.0714654457777 50.96864796962547))", "MULTILINESTRING ((-114.03372206187294 51.053232488239935, -114.03370889695204 51.05088210489753))"),
  VOLUME = c(22000,5000,5000)
)
data$geom <- st_as_sfc(data$multilinestring)
data <- st_as_sf(data)

pal <- colorNumeric(
  palette = "Reds",
  domain = data$VOLUME
)

leaflet(data) %>% 
  addTiles() %>%
  addPolylines(color = ~pal(VOLUME))

Наконец, вы захотите настроить свою цветовую палитру, как минимум -Volume ссылки отображаются бледным цветом, который трудно увидеть. См. Здесь для получения дополнительной информации: https://rstudio.github.io/leaflet/colors.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...