在 R 上构建地图时显示方向
Showing direction when constructing maps on R
所以我想创建一个地图并有一条连接经度和纬度两个点的线,我已经弄明白了。但我需要帮助来显示线路的前进方向。所以在下面的示例中,我想显示一个从卡利到德克萨斯的箭头。另一个问题是如何画出这条线,使其不越过陆地。所以在这个例子中,从卡利到德克萨斯的线将从太平洋穿过巴拿马运河,最后到达德克萨斯(基本上这条线都是在水域内绘制的)。我不确定这是否可行,但我们将不胜感激。
代码如下:
library(maps)
library(geosphere)
xlim=c(-171.738281, -56.601563)
ylim=c(12.039321, 71.856229)
map("world", col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05, xlim=xlim, ylim=ylim)
lat_ca=39.164141
lon_ca=-121.640625
lat_tx=29.954935
lon_tx=-98.701172
inter2=gcIntermediate(c(lon_ca, lat_ca), c(lon_tx, lat_tx), n=50, addStartEnd=TRUE)
lines(inter2, col="red",lwd = 12)
对于问题的第一部分,即箭头,尝试将箭头添加到大圆路径的最后部分,如下所示:
arrows(x0=inter2[51,'lon'], y0=inter2[51,'lat'], x1=inter2[52,'lon'],
y1=inter2[52,'lat'], col="red",lwd = 12)
我在这里输入 51 和 52,因为它们是你大圆的最后两行,但更好的解决方案是
arrows(x0=inter2[nrow(inter2)-1,'lon'], y0=inter2[nrow(inter2)-1,'lat'],
x1=inter2[nrow(inter2),'lon'], y1=inter2[nrow(inter2),'lat'], col="red",lwd = 12)
所以我想创建一个地图并有一条连接经度和纬度两个点的线,我已经弄明白了。但我需要帮助来显示线路的前进方向。所以在下面的示例中,我想显示一个从卡利到德克萨斯的箭头。另一个问题是如何画出这条线,使其不越过陆地。所以在这个例子中,从卡利到德克萨斯的线将从太平洋穿过巴拿马运河,最后到达德克萨斯(基本上这条线都是在水域内绘制的)。我不确定这是否可行,但我们将不胜感激。
代码如下:
library(maps)
library(geosphere)
xlim=c(-171.738281, -56.601563)
ylim=c(12.039321, 71.856229)
map("world", col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05, xlim=xlim, ylim=ylim)
lat_ca=39.164141
lon_ca=-121.640625
lat_tx=29.954935
lon_tx=-98.701172
inter2=gcIntermediate(c(lon_ca, lat_ca), c(lon_tx, lat_tx), n=50, addStartEnd=TRUE)
lines(inter2, col="red",lwd = 12)
对于问题的第一部分,即箭头,尝试将箭头添加到大圆路径的最后部分,如下所示:
arrows(x0=inter2[51,'lon'], y0=inter2[51,'lat'], x1=inter2[52,'lon'],
y1=inter2[52,'lat'], col="red",lwd = 12)
我在这里输入 51 和 52,因为它们是你大圆的最后两行,但更好的解决方案是
arrows(x0=inter2[nrow(inter2)-1,'lon'], y0=inter2[nrow(inter2)-1,'lat'],
x1=inter2[nrow(inter2),'lon'], y1=inter2[nrow(inter2),'lat'], col="red",lwd = 12)