Я рисую некоторые точки на карте мира, используя пакет R maps
, например:
Команда рисования базовой карты:
map("world", fill=TRUE, col="white", bg="gray", ylim=c(-60, 90), mar=c(0,0,0,0))
Но мне нужно отобразить карту с центром в центре Тихого океана. Я использую map("world2",
и т.д., Чтобы использовать базовую карту с центром в центре Тихого океана из пакета карт и преобразовать координаты точек данных в моем фрейме данных (df
) с помощью:
df$longitude[df$longitude < 0] = df$longitude[df$longitude < 0] + 360
Это работает, если я не использую параметр fill
, но с fill
полигоны, которые пересекают 0 °, вызывают проблемы.
Я думаю, мне нужно каким-то образом преобразовать данные полигона из библиотеки maps
, чтобы разобраться в этом, но я понятия не имею, как это сделать.
Моим идеальным решением было бы нарисовать карты с левой границей при -20 ° и правую границу при -30 ° (т.е. 330 °). Следующее получает правильные точки и береговые линии на карте, но проблема с пересекающимся нулем одинакова
df$longitude[df$longitude < -20] = df$longitude[d$longitude < -20] + 360
map("world", fill=TRUE, col="white", bg="gray", mar=c(0,0,0,0),
ylim=c(-60, 90), xlim=c(-20, 330))
map("world2", add=TRUE, col="white", bg="gray", fill=TRUE, xlim=c(180, 330))
Любая помощь будет принята с благодарностью.