- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是动画车辆从 A 移动到 B 的示例。[由@mrhellmann 解决 here , 也有解决方案]
我想制作从 A 到 B 的车辆动画,然后在 B 等待一段时间,然后返回 A。下面是包含这两个行程(A-B 和 B-A)的动画的代码。
我们如何合并 osroute_sampled_1
和 osroute_sampled_2
以创建单个动画?
此外,我们如何增加等待时间(让车辆在 B 处静止几秒钟?
注意 - 车辆可能不会返回 A,它可能会去 C。因此通过 B 创建使用相同起点和目的地 (A) 的单一路线可能行不通
# load packages
library(sf)
library(dplyr)
library(tidygeocoder)
library(osrm)
library(tmap)
library(gifski)
# 1. One World Trade Center, NYC
# 2. Madison Square Park, NYC
adresses <- c("285 Fulton St, New York, NY 10007",
"11 Madison Ave, New York, NY 10010")
# geocode the two addresses & transform to {sf} data structure
data <- tidygeocoder::geo(adresses, method = "osm") %>%
st_as_sf(coords = c("long", "lat"), crs = 4326)
# route from One World Trade Center to Madison Square
osroute_1 <- osrm::osrmRoute(loc = data,
returnclass = "sf")
# route from Madison Square to One World Trade Center
osroute_2 <- osrm::osrmRoute(loc = data %>% arrange(-row_number()),
returnclass = "sf")
summary(osroute_1)
summary(osroute_2)
# sample osroute 50 times regularly, cast to POINT, return sf (not sfc) object
osroute_sampled_1 <- st_sample(osroute_1, type = 'regular', size = 50) %>%
st_cast('POINT') %>%
st_as_sf()
# sample osroute 50 times regularly, cast to POINT, return sf (not sfc) object
osroute_sampled_2 <- st_sample(osroute_2, type = 'regular', size = 50) %>%
st_cast('POINT') %>%
st_as_sf()
# use lapply to crate animation maps. taken from reference page:
# https://mtennekes.github.io/tmap/reference/tmap_animation.html
m1 <- lapply(seq_along(1:nrow(osroute_sampled_1)), function(point){
x <- osroute_sampled_1[point,] ## bracketted subsetting to get only 1 point
tm_shape(osroute_1) + ## full route
tm_sf() +
tm_shape(data) + ## markers for start/end points
tm_markers() +
tm_shape(x) + ## single point
tm_sf(col = 'red', size = 3)
})
# Render the animation
tmap_animation(m1, width = 300, height = 600, delay = 10)
# use lapply to crate animation maps. taken from reference page:
# https://mtennekes.github.io/tmap/reference/tmap_animation.html
m2 <- lapply(seq_along(1:nrow(osroute_sampled_2)), function(point){
x <- osroute_sampled_2[point,] ## bracketted subsetting to get only 1 point
tm_shape(osroute_2) + ## full route
tm_sf() +
tm_shape(data) + ## markers for start/end points
tm_markers() +
tm_shape(x) + ## single point
tm_sf(col = 'red', size = 3)
})
# Render the animation
tmap_animation(m2, width = 300, height = 600, delay = 10)
最佳答案
要为动画添加时间戳,您可以采用以下方法:
sf
对象,其中包含与您的行程一样多的行和恒定坐标(最好是 cornder 中的那个,可以通过 st_bbox
找到)。sf
。sf
并使用 tm_text
来显示时间戳:timings <- st_sf(geometry = st_sfc(do.call(st_point,
list(unname(st_bbox(osroute_sampled_total)[3:2])))),
timestamp = seq(Sys.time(), by = "min", ## add whatever you want
length.out = nrow(osroute_sampled_total)),
crs = st_crs(osroute_sampled_total))
m1 <- lapply(seq_along(1:nrow(osroute_sampled_total)), function(point){
x <- osroute_sampled_total[point,] ## bracketted subsetting to get only 1 point
tm_shape(osroute_total) + ## full route
tm_sf() +
tm_shape(data) + ## markers for start/end points
tm_markers() +
tm_shape(x) + ## single point
tm_sf(col = 'red', size = 3) +
tm_shape(timings[point, ]) +
tm_text("timestamp", just = "right")
})
关于r - 车辆从 A 到 B,然后沿着路线从 B 到 A 的动画(在 B 有一些等待时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68915606/
我希望向订单输入系统添加一项功能,以实时显示订单位置与指定送货车之间的距离(以公里为单位)。 货车有一个 GPS 跟踪系统,来自 High Point GPS , 带有查询司机位置的API,以LAT/
我正在尝试为 C 中的以下内容动态分配空间,我想知道是否有人可以解释如何操作?字符* (*车辆)[][5]; 这 5 个元素是车辆的详细信息,第一个数组用于不同的车辆。所以我正在尝试为不同的车辆动态分
我有难得的机会在几个小时内与负责为美国交通部实现车辆 2 车辆通信的人员和其他 2 人会面。 您有什么问题要问他吗? 我知道这有点不正常,但这是一个“反向”线程,我觉得他对我想与这个社区分享的主题有一
我对 GraphHopper 路由引擎稳定版本 0.5 有疑问 使用vehicle=car时我可以获取路线,但使用自行车和步行则无法获取路线。 Here is an example在 GraphHop
有谁知道以 PHP、Perl 或 Python(或任何其他语言,我可以轻松转换代码)作为开源/免费软件提供的 ISO 3779 车辆 VIN 解码器库? 即使只是解码 WMI 部分(前 3 个位置)也
我正在尝试使用 L5 分页,一切看起来都很好,直到我点击第二页链接。当我点击它时出现此错误: Laravel 5 Pagination undefined variable vehicles in v
我是一名优秀的程序员,十分优秀!