目前不可能有一个多色的path
,但它在我的待办事项清单上。
为了实现你所追求的,你必须使用一个line
图层,它需要一个“起点”和“终点”并绘制一条直线(即 a 的组成部分path
)
要获得 Origin-Destination 列,我们需要将sf
对象分解为 data.frame,添加“_to”列,然后再次使其成为sf
对象。
(我还有一个todo允许 data.frames 使用 Z 和 M,但现在我们必须sf
再次进行最后的转换)
library(data.table)
library(sfheaders)
df <- sfheaders::sf_to_df( one_day, fill = TRUE )
setDT( df )[
, `:=`(
x_to = shift(x, type = "lead")
, y_to = shift(y, type = "lead")
, z_to = shift(z, type = "lead")
, m_to = shift(m, type = "lead")
)
, by = flight
]
df <- df[ !is.na( x_to ) ]
df$origin <- sfheaders::sfc_point(
obj = df
, x = "x"
, y = "y"
, z = "z"
, m = "m"
)
df$destination <- sfheaders::sfc_point(
obj = df
, x = "x_to"
, y = "y_to"
, z = "z_to"
, m = "m_to"
)
sf <- sf::st_as_sf( df )
mapdeck(
style = mapdeck_style("dark")
) %>%
add_line(
data = sf
, origin = "origin"
, destination = "destination"
, stroke_colour = "z"
)
