Methods for function recenter in package sp to shift or re-center geographical coordinates for a Pacific view. All longitudes < 0 are added to 360, to avoid for instance parts of Alaska being represented on the far left and right of a plot because they have values straddling 180 degrees. In general, using a projected coordinate reference system is to be preferred, but this method permits a geographical coordinate reference system to be used. This idea was suggested by Greg Snow, and corresponds to the two world representations in the maps package.

Methods

obj = "SpatialPolygons"

recenter a SpatialPolygons object

obj = "Polygons"

recenter a Polygons object

obj = "Polygon"

recenter an Polygon object

obj = "SpatialLines"

recenter a SpatialLines object

obj = "Lines"

recenter a Lines object

obj = "Line"

recenter an Line object

Examples

crds <- matrix(c(179, -179, -179, 179, 50, 50, 52, 52), ncol=2)
SL <- SpatialLines(list(Lines(list(Line(crds)), "1")),
 CRS("+proj=longlat +ellps=WGS84"))
bbox(SL)
#>    min max
#> x -179 179
#> y   50  52
SLr <- recenter(SL)
bbox(SLr)
#>   min max
#> x 179 181
#> y  50  52
rcrds <- rbind(crds, crds[1,])
SpP <- SpatialPolygons(list(Polygons(list(Polygon(rcrds)), ID="r1")),
 proj4string=CRS("+proj=longlat +ellps=WGS84"))
bbox(SpP)
#>    min max
#> x -179 179
#> y   50  52
SpPr <- recenter(SpP)
bbox(SpPr)
#>   min max
#> x 179 181
#> y  50  52
opar <- par(mfrow=c(1,2))
plot(SpP)
plot(SpPr)

par(opar)
crds <- matrix(c(-1, 1, 1, -1, 50, 50, 52, 52), ncol=2)
SL <- SpatialLines(list(Lines(list(Line(crds)), "1")),
 CRS("+proj=longlat +ellps=WGS84"))
bbox(SL)
#>   min max
#> x  -1   1
#> y  50  52
SLr <- recenter(SL)
bbox(SLr)
#>   min max
#> x   1 359
#> y  50  52
rcrds <- rbind(crds, crds[1,])
SpP <- SpatialPolygons(list(Polygons(list(Polygon(rcrds)), ID="r1")),
 proj4string=CRS("+proj=longlat +ellps=WGS84"))
bbox(SpP)
#>   min max
#> x  -1   1
#> y  50  52
SpPr <- recenter(SpP)
bbox(SpPr)
#>   min max
#> x   1 359
#> y  50  52
opar <- par(mfrow=c(1,2))
plot(SpP)
plot(SpPr)

par(opar)