【发布时间】:2016-04-11 16:46:41
【问题描述】:
这里是新的,对 R 来说也相对较新,所以请先原谅我,让我知道我在这篇文章中做错了什么,以免将来惹恼其他人:
我正在尝试创建传单地图序列(1971 年 9 月至 1972 年 4 月)。最后,我想将它们加工成闪亮的,并让用户播放/暂停动画(闪亮的循环动画滑块)。
没有适合我的 while 和 for 循环。当我在运行代码后检查我的is 时,增量起作用了,传单不起作用。没有循环,我的“Dynamic Leaflet Fails”(参见下面的代码部分)工作并打开了一张地图。
不能按顺序制作传单吗?
#set working directory
require(leaflet)
require(dplyr)
#Build data.frame with 10 obs + 3 cols
power <- data.frame(Latitude <-c(33.515556, 38.060556, 47.903056, 49.71, 49.041667, 31.934167, 54.140586, 54.140586, 48.494444, 48.494444), Longitude <- c(
129.837222, -77.789444, 7.563056, 8.415278, 9.175, -82.343889, 13.664422, 13.664422, 17.681944, 17.681944), start <- c(as.Date(
"15-Sep-1971", "1-Dec-1971", "1-Feb-1972", "1-Feb-1972", "1-Feb-1972", "1-Feb-1972", "1-Apr-1972", "1-Apr-1972", "24-Apr-1972", "24-Apr-1972", format = "%d-%b-%Y")))
#"Dynamic" leaflet Fails1: While+For combo
i<- as.Date("1971-09-14")
while (i < as.Date("1972-05-01")) { for(star in start){
if (star > i) {
leaflet(power) %>% addTiles() %>%
addCircleMarkers(lng = ~Longitude, lat = ~Latitude)
}}
i <- i+60}
#"Dynamic" leaflet Fails2: For+break combo
lap <- seq(as.Date("1971-09-14"), as.Date("1972-05-01"), by = "month")
for(i in lap) {
leaflet (data = power[power$start > i,]) %>%
addTiles() %>%
addCircleMarkers(lng = ~Longitude, lat = ~Latitude)
if (i > as.Date("1951-01-01"))
{ break }}
【问题讨论】:
-
鉴于传单构建动态地图,最好构建一张地图,您可以在其中调整开始日期。
shiny让它变得非常简单。否则,如果您使用传单制作静态地图(不是一个好主意)构建绘图功能,或者至少存储您正在构建的地图,以便您可以使用它们做一些事情。 -
感谢阿利斯泰尔! (单个)动态和静态传单地图有什么区别?如果有的话,我错过了一些巨大的东西。在我看来,传单不会让闪亮干扰调整,但我可能错了,我愿意接受建议。有了这一切,我试图创建这样的东西:(seth127.shinyapps.io/slider) 但我无法从以前的任何其他项目中找到代码,其中结合了闪亮的循环动画和传单。如果您有建议如何解决这个问题,请赐教!
-
呃! -3 研究工作。回到本科,我的心都碎了。说真的,我在网上进行了大量的试验和错误,也许比我的帖子所涉及的要多。请与我分享你的大脑,请
-
这是我想要绘制的所有坐标的单张传单地图:(homepage.univie.ac.at/a1009991/power.html) 按顺序绘制标记确实讲述了一个惊人的故事,伙计们,让它运行起来真是太棒了!有任何想法吗?我想创建这样的东西:(skeate.github.io/Leaflet.timeline/earthquakes.html)
-
我不同意 -3 的说法,而且我不知道还有其他人对此提出了解决方案,因此我会尽快尝试回答。