Я рисую несколько траекторий полета на интерактивной карте через пакет 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)