2016-08-10 7 views
7

リーフレットパッケージを使ってRで地図を作っています。地図は基本的に中国からアメリカへの線を描いています。しかし、それは私が期待するように来ていません。以下は地図のイメージです。 enter image description hereリーフレットRに正しく線をプロットする方法は?

だから、中国とアメリカとの間の線が見えますが、直接的な海路ではなく、陸地を横切っています。

マップを生成するためのコードは以下の通りです:

library(leaflet) 
structure(list(lat = c(21.4982662200928, 25.3100662231445, 25.8857326507568, 
33.5610008239746, 33.9683494567871, 46.2030830383301), lng = c(121.90234375, 
131.111709594727, 133.618789672852, 159.100082397461, 165.190643310547, 
-123.813652038574), row_rank = structure(1:6, .Label = c("1", 
"2", "3", "4", "5", "6"), class = "factor")), .Names = c("lat", 
"lng", "row_rank"), row.names = c(NA, -6L), class = "data.frame") 

map <- leaflet() %>% addTiles(urlTemplate ="http://server.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer/tile/{z}/{y}/{x}") #"http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" 
map <- map %>% 
    addCircleMarkers(data=df1, radius = 8, color = 'red', fill = TRUE, label = ~as.character(row_rank), labelOptions=c(noHide=TRUE)) %>% 
    addPolylines(data=df1, lng = ~lng, lat = ~lat) 
map 

どのように私はこれを修正することができますか?

+0

'addCircleMarkers()'が 'label'と' labelOptions'を取るこ​​とができるのだろうかと思います。あなたのコードを実行すると、次のメッセージが表示されます: 'addCircleMarkersのエラー(.data = df1、radius = 8、color =" red "、fill = TRUE、: 未使用の引数(label =〜as.character(row_rank) 、labelOptions = c(noHide = TRUE)) ' – jazzurro

答えて

6

これはちょっと珍しいかもしれませんが、第6ポイントの経度に360度を追加して-123.813652038574 + 360 = 236.813652038574とし、その値をデータフレームで変更して、大陸を越えて倍増するのではなく、直接的な海路を探しています。

library(leaflet) 
df1 <- structure(list(lat = c(21.4982662200928, 25.3100662231445, 25.8857326507568, 
         33.5610008239746, 33.9683494567871, 46.2030830383301), lng = c(121.90234375, 
                         131.111709594727, 133.618789672852, 159.100082397461, 165.190643310547, 
                         -123.813652038574 + 360), row_rank = structure(1:6, .Label = c("1", 
                                       "2", "3", "4", "5", "6"), class = "factor")), .Names = c("lat", 
                                                     "lng", "row_rank"), row.names = c(NA, -6L), class = "data.frame") 

map <- leaflet() %>% addTiles() #"http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" 
map <- map %>% 
    addCircleMarkers(data=df1, radius = 8, color = 'red', fill = TRUE, label = ~as.character(row_rank), labelOptions=c(noHide=TRUE)) %>% 
    addPolylines(data=df1, lng = ~lng, lat = ~lat) 
map 
関連する問題