r-使用传单绘制MULTILINESTRING



我对R中的传单和地图还很陌生。我正在尝试可视化R中某些多重限制的交通量。我找到的最接近的答案是:

如何在传单addPolylines中绘制MULTILINESTRING?

但我想根据它们的体积或数量来绘制这些多重限制。我的多重限制数据最初是以字符为单位的,所以我使用"sf"库将它们转换为sfc_multilisting。你可以在这里找到原始数据集

我的样本数据:

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() 

上面的代码绘制了多重限制,但我不知道如何根据它们的VOLUME来更改多重限制的颜色强度。

这就是我最终想要得到的(使用我的完整数据集(:

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

这是我的系统和R版本:

平台x86_64-w64-mingw32
arch x86_64
os mingw32统x86_64,mingw32
状态
major 4
minor 0.2
svn rev 78730
language R
版本.string R版本4.0.2(2020-06-22(

以下是如何做到这一点。需要指出的几点:

  • 我使用st_as_sf(),它将数据帧转换为sf对象
  • 对于传单,您必须创建自己的调色板(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))

最后,你需要自定义你的调色板,因为低音量链接显示为一种很难看到的浅色。请参阅此处获取更多指导:https://rstudio.github.io/leaflet/colors.html

相关内容

  • 没有找到相关文章

最新更新