如何避免R世界地图中的断行?

时间:2013-06-29 11:34:17

标签: r world-map

我需要在世界地图中可视化一些地理数据。我已经学会了流动数据的great circle mapping tutorial,结果看起来很奇怪。它如下所示:

The result is here

显然我需要避免这些交叉画面线。但是我该怎么做呢?绘制地图的代码是:

map("world", col="#f2f2f2", fill=TRUE, bg="white",lwd=0.05) 
for (j in 1:length(location$lon)) {
 inter <- gcIntermediate(c(lon_nj, lat_nj), c(location$lon[j], location$lat[j]),      n=100, addStartEnd=TRUE)
lines(inter, col="black", lwd=0.8)
}

我已尝试过gpe Automating great-circle map production in R

提供的代码
 map("world", col="#f2f2f2", fill=TRUE, bg="white",lwd=0.05) 
 for (j in 1:length(location$lon)) {
 inter <- clean.Inter(c(lon_nj, lat_nj), c(location$lon[j], location$lat[j]),n=100, addStartEnd=TRUE)
  lines(inter, col="black", lwd=0.8)
 }

结果是这样的: The inter-clear method

我只想用最短的距离到达所需的地方。

来自网络的答案,比如使用像greatCircle()这样的其他功能也未能实现我的目标。

那么有没有人知道如何实现这个目的呢?

非常感谢!!

1 个答案:

答案 0 :(得分:1)

一种选择是切换到以太平洋为中心并分裂大西洋的地图。这可能是最容易查看的。

另一种选择是检查inter对象(可能是带有x和y的列表,但我不熟悉所使用的确切函数)并查看x坐标是否会增加或减少。寻找突然向另一个方向跳跃并在那里插入NA的地方(并在y值的相同位置),然后不会显示穿过整个地块的线。如果这不起作用,您可以在点之间的距离超过阈值的任何地方插入NA。

可能足够好的另一个快速想法(部分取决于每条曲线使用了多少点)是绘制点而不是线,使用points(inter, pch='.')而不是线命令。