When recentering a world map, most often from the "Atlantic" view with longitudes with range -180 to 180, to the "pacific" view with longitudes with range 0 to 360, lines crossing the offset (0 for this conversion) get stretched horizonally. This function breaks Line objects at the offset (usually Greenwich), inserting a very small gap, and reassembling the Line objects created as Lines. The rgeos package is required to use this function.

nowrapSpatialLines(obj, offset = 0, eps = rep(.Machine$double.eps^(1/2.5), 2))



A Spatial Lines object


default 0, untried for other values


vector of two fuzz values, both default 2.5 root of double.eps


A Spatial Lines object


Roger Bivand

See also


Sl <- SpatialLines(list(Lines(list(Line(cbind(sin(seq(-4,4,0.4)), seq(1,21,1)))), "1")), proj4string=CRS("+proj=longlat +ellps=WGS84")) summary(Sl)
#> Object of class SpatialLines #> Coordinates: #> min max #> x -0.9995736 0.9995736 #> y 1.0000000 21.0000000 #> Is projected: FALSE #> proj4string : [+proj=longlat +ellps=WGS84 +no_defs]
if (require(rgeos)) { nwSL <- nowrapSpatialLines(Sl) summary(nwSL) if(require(maps)) { worldmap <- map("world", plot=FALSE) worldmapLines <- map2SpatialLines(worldmap, proj4string=CRS("+proj=longlat +datum=WGS84")) bbox(worldmapLines) t0 <- nowrapSpatialLines(worldmapLines, offset=180) bbox(t0) } }
#> Warning: CRS object has comment, which is lost in output
#> Warning: CRS object has comment, which is lost in output
#> min max #> x -180.00000 190.27084 #> y -85.19218 83.59961