nowrapRecenter {maptools}R Documentation

Break polygons at meridian for recentering

Description

When recentering a world map, say to change an "Atlantic" view with longitude range -180 to 180, to a "Pacific" view, with longitude range 0 to 360, polygons crossed by the new offset, here 0/360, need to be clipped into left and right sub.polygons to avoid horizontal scratches across the map. The nowrapSpatialPolygons function performs this operation using polygon intersection, and nowrapRecenter recenters the output SpatialPolygons object.

Usage

nowrapRecenter(obj, offset = 0, eps = rep(.Machine$double.eps, 2))
nowrapSpatialPolygons(obj, offset = 0, eps=rep(.Machine$double.eps, 2))

Arguments

obj A SpatialPolygons object
offset offset from the Greenwich meridian
eps vector of two (left and right) fuzz factors to retract the ring from the offset

Value

A SpatialPolygons object

Author(s)

Roger Bivand

See Also

recenter, nowrapSpatialLines

Examples

library(gpclib)
## Not run: 
library(maps)
world <- map("world", fill=TRUE, col="transparent", plot=FALSE)
worldSpP <- map2SpatialPolygons(world, world$names, CRS("+proj=longlat"))
worldSpPr <- recenter(worldSpP)
plot(worldSpPr)
title("Pacific view without polygon splitting")
worldSpPnr <- nowrapRecenter(worldSpP)
plot(worldSpPnr)
title("Pacific view with polygon splitting")
## End(Not run)
crds <- matrix(c(-1, 1, 1, -1, 50, 50, 52, 52), ncol=2)
rcrds <- rbind(crds, crds[1,])
SR <- SpatialPolygons(list(Polygons(list(Polygon(rcrds)), ID="r1")), proj4string=CRS("+proj=longlat"))
bbox(SR)
SRr <- recenter(SR)
bbox(SRr)
SRnr <- nowrapRecenter(SR)
bbox(SRnr)

[Package maptools version 0.6-9 Index]