我正在通过 tmap 包在交互式地图上绘制一些飞行轨迹。我想同时在飞行轨迹周围创建 5 海里的自助餐。
但是当这些点位于 180° 子午线附近时,这条线将通过不同的方向连接起来。
如何将交互式地图重新定位到合适的中心并避免错误链接轨道?
我有向西飞行的飞行数据,也有一些向东飞行的数据。现在向西飞行的航班正确绘制如下。
我希望 R 总是可以用正确的中心绘制地图。
样本数据 CSV 在这里
我的代码如下
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)