r - 是否可以通过海拔对路径进行着色?
问题描述
我mapdeck::add_path()
用来显示飞机的飞行路径。我想通过海拔给路径着色;这可能吗?这是一个简短的例子:
library(mapdeck)
library(sf)
# From https://github.com/kent37/mapdeck_play/blob/master/tracks_2019_03_11.gpkg?raw=true
one_day = st_read('tracks_2019_03_11.gpkg')
key = 'your_api_key'
mapdeck(location=c(-71.128184, 42.3769824), zoom=14, key=key) %>%
add_path(one_day)
谢谢!
解决方案
目前不可能有一个多色的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"
)
推荐阅读
- javascript - fullcalendar 并非所有事件都显示在议程周视图中
- r - 带有模型矩阵输入的惩罚因子
- python - 我可以将变量挂钩到自定义非处理块吗?
- javascript - 如果字符串存在于javascript中的其他元素中,我想从字符串数组中删除一个元素
- vue.js - 如何使用 dom-to-image 库在服务器 vuejs 中发送图像?
- php - WordPress:将级别指示器添加到类别列表
- groovy - 在groovy中将字符串日期转换为日期格式时出现问题:
- python - 使用 Selenium WebDriver 截屏,同时保持 html (python) 的字体
- vb.net - 需要帮助使用 OracleBulkCopy 插入时间戳
- zsh - zsh 在 vi 模式下;如何更改配色方案?