使用传单绘制 MULTILINESTRING
Plot MULTILINESTRING using leaflet
我对 R 中的传单和映射还很陌生。我正在尝试可视化 R 中某些多线串的流量。我找到的 closest 答案是:
但我想根据它们的数量或数量映射ose 多线串。我的多行字符串数据最初是字符,所以我使用 'sf' 库将它们转换为 sfc_multilinestring。可以找到原始数据集here
我的示例数据:
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)
我在 link(我在上面分享过)中尝试了相同的代码,但我无法计算出颜色强度。
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
osmingw32
系统 x86_64, mingw32
状态
专业 4
轻微 0.2
svn 版本 78730
语言 R
version.string R 版本 4.0.2 (2020-06-22)
以下是您可以执行此操作的方法。需要指出的几点:
- 我使用
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))
最后,您需要自定义调色板,因为 low-volume 链接显示为浅色,很难看清。有关更多指导,请参阅此处:https://rstudio.github.io/leaflet/colors.html
我对 R 中的传单和映射还很陌生。我正在尝试可视化 R 中某些多线串的流量。我找到的 closest 答案是:
但我想根据它们的数量或数量映射ose 多线串。我的多行字符串数据最初是字符,所以我使用 'sf' 库将它们转换为 sfc_multilinestring。可以找到原始数据集here
我的示例数据:
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)
我在 link(我在上面分享过)中尝试了相同的代码,但我无法计算出颜色强度。
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
osmingw32
系统 x86_64, mingw32
状态
专业 4
轻微 0.2
svn 版本 78730
语言 R
version.string R 版本 4.0.2 (2020-06-22)
以下是您可以执行此操作的方法。需要指出的几点:
- 我使用
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))
最后,您需要自定义调色板,因为 low-volume 链接显示为浅色,很难看清。有关更多指导,请参阅此处:https://rstudio.github.io/leaflet/colors.html