nowrapRecenter

0th

Percentile

Break polygons at meridian for recentering

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.

Keywords
spatial
Usage
nowrapRecenter(obj, offset = 0, eps = rep(.Machine$double.eps^(1/2), 2),
 avoidGEOS = FALSE)
nowrapSpatialPolygons(obj, offset = 0, eps=rep(.Machine$double.eps^(1/2), 2),
 avoidGEOS = FALSE)
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 (square root to accommodate rgeos precision rules)
avoidGEOS
use gpclib code even if rgeos is available
Value

  • A SpatialPolygons object

See Also

recenter-methods, nowrapSpatialLines

Aliases
  • nowrapRecenter
  • nowrapSpatialPolygons
Examples
if (!rgeosStatus()) gpclibPermit()
library(maps)
world <- map("world", fill=TRUE, col="transparent", plot=FALSE)
worldSpP <- map2SpatialPolygons(world, world$names, CRS("+proj=longlat"))
worldSpP <- worldSpP[-grep("Antarctica", row.names(worldSpP)),]
# incomplete polygons
worldSpP <- worldSpP[-grep("Ghana", row.names(worldSpP)),]
# self-intersection mouth of Volta
worldSpP <- worldSpP[-grep("UK:Great Britain", row.names(worldSpP)),]
# self-intersection Humber estuary
worldSpPr <- recenter(worldSpP)
plot(worldSpPr)
title("Pacific view without polygon splitting")
worldSpPnr <- nowrapRecenter(worldSpP)
plot(worldSpPnr)
title("Pacific view with polygon splitting")
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)
Documentation reproduced from package maptools, version 0.8-20, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.