将空间点连接到线交叉180°子午线?

时间:2018-06-11 04:17:10

标签: r sp tmap

我正在通过tmap包在交互式地图上绘制一些飞行轨迹。我想在飞行轨道上同时创建5海里的自助餐。

但是当这些点位于180°子午线周围时,该线将通过不同的方向连接。

The map outcome sample is here

如何将交互式地图重新定位到合适的中心并避免错误链接?

我的飞行数据向西飞行,有些飞往东部。 现在正向西航行的航班正确绘制如下。

The map outcome sample 2

我希望R总能用正确的中心绘制地图。

示例数据CSV在这里

data sample on google drive

我的代码如下

library(tmap)
library(rgeos)
library(sp)
temp<-read.csv("demo1.csv")

sp.data <- SpatialPointsDataFrame(temp[,c("LONGITUDE","LATITUDE")],temp,proj4string=CRS("+init=epsg:4326"))  

tmap_mode("view")
ls1 <- Lines(Line(temp[,c("LONGITUDE","LATITUDE")]),ID=as.character("demo1"))  
OFPtrack <- SpatialLines(list(ls1),proj4string=CRS("+init=epsg:4326"))
OFPtrack.moll <- sp::spTransform(OFPtrack, CRSobj = "+proj=moll")
  #create buffer polygon
  line_buffers <- rgeos::gBuffer(OFPtrack.moll,width=9260,byid=T) 
#9260meters=5 Nautical Miles  
  m <- tm_shape(OFPtrack)+tm_lines()+
   tm_shape(line_buffers)+tm_borders(alpha=0.4)+tm_fill(col="grey",alpha=0.4)+
   tm_shape(sp.data)+tm_dots(col="grey",border.lwd=0.1)

0 个答案:

没有答案