Używaj innego centrum niż główny południk w planowaniu mapy świata

Nakładam mapę świata zmaps pakiet na aggplot2 geometria rastrowa. Jednak ten raster nie jest wyśrodkowany na pierwszym południku (0 stopni), ale na 180 stopniach (mniej więcej na Morzu Beringa i Pacyfiku). Poniższy kod pobiera mapę i aktualizuje mapę o 180 stopni:

require(maps)
world_map = data.frame(map(plot=FALSE)[c("x","y")])
names(world_map) = c("lon","lat")
world_map = within(world_map, {
  lon = ifelse(lon < 0, lon + 360, lon)
})
ggplot(aes(x = lon, y = lat), data = world_map) + geom_path()

co daje następujący wynik:

Całkiem oczywiste są linie rysujące się między wielobokami, które są na jednym końcu lub drugim południkiem początkowym. Moim obecnym rozwiązaniem jest zastąpienie punktów bliskich południkowi pierwszemu przez NA, zastępującwithin zadzwoń powyżej przez:

world_map = within(world_map, {
  lon = ifelse(lon < 0, lon + 360, lon)
  lon = ifelse((lon < 1) | (lon > 359), NA, lon)
})
ggplot(aes(x = lon, y = lat), data = world_map) + geom_path()

Co prowadzi do poprawnego obrazu. Mam teraz kilka pytań:

Musi istnieć lepszy sposób centrowania mapy na innym południku. Próbowałem użyćorientation parametr wmap, ale ustawiając to naorientation = c(0,180,0) nie dało poprawnego wyniku, w rzeczywistości nic nie zmieniło w obiekcie wynikowym (all.equal wydanyTRUE).Pozbycie się poziomych pasów powinno być możliwe bez usuwania niektórych wielokątów. Być może rozwiązanie punktu 1 rozwiązuje również ten punkt.

questionAnswers(3)

yourAnswerToTheQuestion