Отображение кратчайшего пути полета через строку даты в буклете R / Shiny с использованием gcIntermediate [duplicate]

На этот вопрос уже есть ответ:

Составление маршрутов, пересекающих международную линию дат, с использованием библиотеки листовок в R 2 ответа

Я создаю карту австралийских аэропортов и их международных пунктов назначения с помощью R-Leaflet.

Вот мои образцы данных:

df<-data.frame("Australian_Airport" = "Brisbane", 
           "International" =  c("Auckland", "Bandar Seri Begawan","Bangkok","Christchurch","Denpasar","Dunedin","Hamilton","Hong Kong","Honiara","Kuala Lumpur"),
           "Australian_lon" = c(153.117, 153.117,153.117,153.117,153.117,153.117, 153.117, 153.117, 153.117, 153.117),
           "Australian_lat" = c(-27.3842,-27.3842,-27.3842,-27.3842,-27.3842,-27.3842, -27.3842, -27.3842, -27.3842, -27.3842),
           "International_lon" = c(174.7633, 114.9398, 100.5018, 172.6362, 115.2126,-82.77177, -84.56134, 114.10950, 159.97290, 101.68685),
           "International_lat" = c(-36.848460, 4.903052, 13.756331, -43.532054,-8.670458,28.019740, 39.399501, 22.396428, -9.445638,  3.139003)
           )

Я подумал, что было бы здорово использовать изогнутые траектории полета с помощью gcIntermediate, поэтому я создал объект SpatialLines:

library(rgeos)
library(geosphere)

p1<-as.matrix(df[,c(3,4)])

p2<-as.matrix(df[,c(5,6)])

df2 <-gcIntermediate(p1, p2, breakAtDateLine=F, 
                    n=100, 
                    addStartEnd=TRUE,
                    sp=T) 

А потом я нарисовал это с помощью листовки и Shiny:

server <-function(input, output) {

airportmap<- leaflet() %>% addTiles() %>% 
    addCircleMarkers(df, lng = df$Australian_lon, lat = df$Australian_lat, 
    radius = 2, label = paste(df$Australian_Airport, "Airport"))%>% 
    addPolylines(data = df2, weight = 1)

output$mymap <- renderLeaflet({airportmap}) # render the base map
  }


ui<-  navbarPage("International flight path statistics - top routes",
      tabPanel("Interactive map",

      leafletOutput('mymap',  width="100%", height=900)

         )
         )

# Run the application 
shinyApp(ui = ui, server = server)

Это выглядит так:

Так что пути неверны, если они пересекают линию даты. Изменение breakAtDateLine на FALSE не исправляет это (линия исчезает, но путь все еще не работает). На этом этапе я подозреваю, что мне может понадобиться использовать другую систему картирования или что-то еще, но я был бы очень признателен, если у кого-то есть какой-либо совет.

Заранее спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос