使用R'添加弯曲飞行轨迹;单张套装

使用R'添加弯曲飞行轨迹;单张套装,r,leaflet,R,Leaflet,目前,我能够使用以下代码在国家之间画一条直线: library(leaflet) leaflet() %>% addTiles() %>% addPolylines(lat=c(38.8833, 35.00), lng=c(-77.0167, 103.00)) 我想做的是一个更真实的飞行轨迹,直线实际上是弯曲的。与此类似: 对于这个问题,我想在传单包中定制答案。任何帮助都将不胜感激。您正在寻找这样的帮助: 在回答中,使用了带有函数gcIntermediate()的包geosp

目前,我能够使用以下代码在国家之间画一条直线:

library(leaflet) 
leaflet() %>% addTiles() %>% addPolylines(lat=c(38.8833, 35.00), lng=c(-77.0167, 103.00))

我想做的是一个更真实的飞行轨迹,直线实际上是弯曲的。与此类似:


对于这个问题,我想在
传单
包中定制答案。任何帮助都将不胜感激。

您正在寻找这样的帮助: 在回答中,使用了带有函数
gcIntermediate()
的包
geosphere

inter <- gcIntermediate(c(lon_1, lat_1), c(lon_2, lat_2), n=50, addStartEnd=TRUE)
lines(inter)

inter跟进mrub,只需将从gcIntermediate获得的对象传递到传单。大概是这样的:

library(leaflet)
library(geosphere)
gcIntermediate(c(5,52), c(-120,37),
               n=100, 
               addStartEnd=TRUE,
               sp=TRUE) %>% 
leaflet() %>% 
addTiles() %>% 
addPolylines()

在尝试使用einar发布的方法显示多行时,我无法同时显示这两行。经过大量的挖掘,我发现了一些新的帖子。下面是两个不同行的小代码

library(geosphere)
library(leaflet)
library(dplyr)

lat_ny <- 40.73
lng_ny <- -73.9
lat_del <- 28.63
lng_del <- 77.21
lng_ca <- -121.6406
lat_ca <- 39.16414

inter1 <- gcIntermediate(c(lng_ny, lat_ny), c(lng_del, lat_del), n=10, addStartEnd=TRUE, sp = TRUE, breakAtDateLine = TRUE)
lines(inter1)

inter2 <- gcIntermediate(c(lng_ca, lat_ca), c(lng_del, lat_del), n=10, addStartEnd=TRUE, sp = TRUE, breakAtDateLine = TRUE)
lines(inter2)

inters <- c(inter1,inter2)

ll0 <- lapply( inters , function(x) `@`(x , "lines") )
ll1 <- lapply( unlist( ll0 ) , function(y) `@`(y,"Lines") )
Sl <- SpatialLines( list( Lines( unlist( ll1 ) , ID = 1 ) ) )

leaflet(Sl) %>% addTiles() %>% addPolylines()
库(geosphere)
图书馆(单张)
图书馆(dplyr)

最近,我正在寻找
传单
包装中保留的东西。可以在
传单
中调用该函数吗?我不知道您专门想使用
传单
。为此,你可以使用传单插件。你能提供一个在R中使用该插件的例子吗?在我看来,你提供的插件只针对JavaScript。你是对的,目前无法从R内部调用该插件。不过,我会看看其他选项,然后再报告。太棒了!你怎么知道要将gcIntermediate传递给传单?gcIntermediate返回的对象类是“SpatialLines”。传单很喜欢那个类(或任何其他“空间…”类:-)