3

Rを使用して(mapとwrld_simplを使用して)、世界地図上で2つの都市の間に線を引こうとしています。

2点間の滑らかな線を取得するにはどうすればよいですか? 米国とオーストラリアの間に線を引くと、3 つの異なるセグメントがあります

require(rworldmap)

map("world", col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05)

data(wrld_simpl)

US_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'United States']
US_lon = wrld_simpl$LON[wrld_simpl$NAME == 'United States']

australia_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'Australia']
australia_lon = wrld_simpl$LON[wrld_simpl$NAME == 'Australia']

lines(c(US_lon, US_lat), c(australia_lon, australia_lat))

これは線を引きますが、aus と US の間に正しくありません。私は何を間違っていますか?

4

2 に答える 2

2

このメソッドは、 x 座標とy座標linesのベクトルを取ります。したがって、行は次のようになります。xy

lines(c(US_lon, australia_lon), c(US_lat, australia_lat))

大円が必要な場合は、次のようにします。

require(geosphere)
gc <- gcIntermediate(c(US_lon, US_lat), c(australia_lon, australia_lat), breakAt=TRUE, n=1000)
invisible(lapply(gc, lines, col='red', lwd=2))
于 2011-12-11T01:56:21.240 に答える
1

grid.curve() を使用して「曲線」を描くこともできます。

grid.curve(US_lon, australia_lon, US_lat, australia_lat)

...そして、曲線の「外観」を定義できます。

于 2015-11-17T13:59:24.707 に答える