Map2poly              package:maptools              R Documentation

_C_r_e_a_t_e _p_o_l_y_g_o_n _l_i_s_t_s _a_n_d _b_o_u_n_d_i_n_g _b_o_x_e_s _f_r_o_m _i_m_p_o_r_t_e_d _s_h_a_p_e_f_i_l_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     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 Stphane 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(). 
     '*2lines()' and '*2points()' do the same as '*2poly()' for
     shapefiles of types 3=lines and 1=points; polygons are type=5.

_U_s_a_g_e:

     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)

_A_r_g_u_m_e_n_t_s:

     Map: object of class '"Map"', imported from a GIS polygon vector
          file

   shape: list returned by 'read.shapefile()', imported from a GIS
          polygon vector file using the package "shapefiles"

region.id: character vector of region ids to be added to the neighbours
          list as attribute 'region.id'

     raw: default TRUE _until next release_, if TRUE, do not run sanity
          check for ring directions implying holes in no surrounding
          polygon

   quiet: if TRUE, suppress reports of ring direction changes

      pl: list of old-style multipart polygons of class 'polylist'

_D_e_t_a_i_l_s:

     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 'Map2poly1'. 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: <URL:
     http://shapelib.maptools.org/dl/shapefile.pdf>: "The order of
     vertices or orientation for a ring indicates which side of the
     ring is the interior of the polygon. The neighborhood to the right
     of an observer walking along the ring in vertex order is the
     neighborhood inside the polygon. Vertices of rings defining holes
     in polygons are in a counterclockwise direction. Vertices for a
     single, ringed polygon are, therefore, always in clockwise order"
     (p.8). If raw=FALSE, an additional attempt is made to enforce the
     final stipulation, where the polygon's bounding box does not fall
     wholly inside the bounding box of another polygon. This may
     generate warnings indicating when this has taken place, indicating
     an unexpected ring direction in the imported shapefile.

_V_a_l_u_e:

     'Map2poly', 'shape2poly', 'convert.pl' return polylist objects,
     lists of polygon boundary coordinates (divided by NA where the
     polygon object is represented by more than one polygon) with many
     attributes; 'Map2lines', 'shape2lines' return lineslist objects;
     'Map2points', 'shape2points' return (n x 2) matrices; and
     'Map2bbs', 'shape2bbs' return bounding box matrixes, c(x1, y1, x2,
     y2) with coordinates for the lower left corner and upper right
     corner.

_A_u_t_h_o_r(_s):

     Roger Bivand and Stphane Dray, Roger.Bivand@nhh.no

_S_e_e _A_l_s_o:

     'read.shape', 'read.shapefile'

_E_x_a_m_p_l_e_s:

     try2 <- read.shape(system.file("shapes/columbus.shp", package="maptools")[1])
     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")[1])
     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")[1])
     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")

