Create polygon lists and bounding boxes from imported shapefiles
Map2poly() is a function to make imported GIS vector polygons into a "polylist" object from a "Map" object. Map2bbs() retrieves polygon bounding boxes; analogous functions for the "shapefiles" package are shape2poly() and shape2bbs() (thanks to St�phane Dray for his contribution); convert.pl() serves to convert the deprecated "multipart" "polylist" format to an NA-separated format now used by plot() for polylist objects and poly2nb().
*2points() do the same as
*2poly() for shapefiles of types 3=lines and 1=points; polygons are type=5.
Map2poly1(Map, region.id = NULL, raw=TRUE) Map2poly(Map, region.id = NULL, quiet=TRUE) Map2lines(Map) Map2points(Map)Map2bbs(Map) MapShapeIds(Map) shape2poly(shape, region.id = NULL) shape2lines(shape) shape2points(shape)shape2bbs(shape) convert.pl(pl)
- object of class
"Map", imported from a GIS polygon vector file
- list returned by
read.shapefile(), imported from a GIS polygon vector file using the package "shapefiles"
- character vector of region ids to be added to the neighbours list as attribute
- default TRUE until next release, if TRUE, do not run sanity check for ring directions implying holes in no surrounding polygon
- if TRUE, suppress reports of ring direction changes
- list of old-style multipart polygons of class
From release 0.4-12,
Map2poly replaces the plotting order heuristic with plotting only in strict decreasing order of top-level (multi)polygon area. In multipolygons, the components are plotted in decreasing area order. The multpolygons themselves are assigned their area sum for plotting order. Ring directions are all set to clockwise - very many shapefiles have been observed with quite unrealistic ring orders, so respecting input ring orders seems worse than imposing uniformity. The previous plot order assignment mechanism is retained using
From release 0.4-1,
Map2poly tries to determine a plotting order for multiple parts of a single polygon object, and for lists of polygon objects to avoid overplotting. It also tries to respect the ESRI-stipulated rule that lakes are anti-clockwise and islands are clockwise:
convert.plreturn polylist objects, lists of polygon boundary coordinates (divided by NA where the polygon object is represented by more than one polygon) with many attributes;
shape2linesreturn lineslist objects;
shape2pointsreturn (n x 2) matrices; and
shape2bbsreturn bounding box matrixes, c(x1, y1, x2, y2) with coordinates for the lower left corner and upper right corner.
try2 <- read.shape(system.file("shapes/columbus.shp", package="maptools")) mappolys <- Map2poly(try2, as.character(try2$att.data$NEIGNO), quiet=FALSE) plot(mappolys) title(main="Polygons for Columbus OH from maptools package") mappolys <- Map2poly1(try2, as.character(try2$att.data$NEIGNO), raw=FALSE) plot(mappolys) title(main="Polygons for Columbus OH from maptools package") try3 <- read.shape(system.file("shapes/baltim.shp", package="maptools")) baltpts <- Map2points(try3) xylims <- attr(baltpts, "maplim") plot(xylims$x, xylims$y, asp=1, type='n', xlab="", ylab="") points(baltpts) title(main="Baltimore points from maptools package") try4 <- read.shape(system.file("shapes/fylk-val.shp", package="maptools")) fylk.val <- Map2lines(try4) xylims <- attr(fylk.val, "maplim") plot(xylims$x, xylims$y, asp=1, type='n', xlab="", ylab="") for (i in 1:length(fylk.val)) lines(fylk.val[[i]]) title(main="Norwegian river centrelines from maptools package")