2015-12-28 5 views
9

を使用して飛行曲がりパスの追加:現在、私は次のコードを使用して国の間に直線を引くことができるよRのリーフレットパッケージ

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

enter image description here

私が作るしようとしているどのようなことはもっとあります直線が実際に湾曲している現実的な飛行経路。これと同様に:この質問の便宜上

Curved Path Example

、私はLeafletパッケージ内の答えを調整したいと思います。どんな助けでも大歓迎です。

答えて

10

はmrubフォローアップ、ちょうどあなたがリーフレットするgcIntermediateから取得するオブジェクトを渡します。

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

素晴らしい!あなたはgcIntermediateをリーフレットに渡すことをどのように知っていましたか? –

+3

gcIntermediateによって返されるオブジェクトのクラスは "SpatialLines"です。リーフレットは、そのクラス(または他の「Spatial ...」非常に:-)が好きです – einar

1

あなたはこのような何かを探しています:機能gcIntermediate()と、答えはHow to draw great circles パッケージgeosphereが使用されます。

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

「リーフレット」パッケージ内に残っているものを探しています。その関数を 'リーフレット'の内部で呼び出すことはできますか? –

+0

私はあなたが専らリーフレットを使いたかったことを知らなかった。そのためには、リーフレットのプラグイン[arc](https://github.com/springmeyer/arc.js)を使用できます。 – mrub

+0

あなたはRで利用されているそのプラグインの例を提供できますか?あなたが提供したプラグインはJavaScriptのみのためです。 –

2

einarが投稿した方法で複数の行を表示しようとしているうちに、両方を同時に表示できませんでした。多くの掘削の後、私はthisthisの投稿に出会いました。ここには2つの異なる行の小さなコードがあります。

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() 

のハードコーディングの緯度と経度は良いアイデアではありませんが、私は唯一のトップ5の接続場所を選ぶ必要があったとして、私は、リストのインデックス作成のために多くの時間を費やしていませんでした。また、私はまだそれがシャイニーと一体化しているかどうかをチェックしています。

Output

関連する問題