[R] maptools, write.polylistShape

Roger Bivand Roger.Bivand at nhh.no
Sun Jan 8 22:03:50 CET 2006

On Sat, 7 Jan 2006, Patrick Giraudoux wrote:

> Dear Roger,
> I am trying to use the write.polylistShape() function of maptools for 
> the first time and realize that it handles list of polygons of class 
> 'polylist'. However, it seems that no as.polylist() function exist in 
> the package. The question behind that is: in your opinion, which would 
> be the best  way to convert a list of matrix of polygon nodes 
> coordinates into an object of  class polylist?

Certainly through sp classes - construct a list of Polygons objects each 
with one (or more) Polygon objects, raise to SpatialPolygons, then back 
out through writePolyShape(). Assuming each list member matrix is the 
perimeter of a single polygon, and each Polygons object only has one 

n <- length(list_of_matrices)
list_of_polygons <- vector(mode="list", length=n)
for (i in 1:n) {
  Pl <- Polygon(list_of_matrices[[i]])
  list_of_polygons[[i]] <- Polygons(list(Pl), ID=as.character(i))
# could be done with lapply too
SPs <- SpatialPolygons(list_of_polygons)
rownames(mydata) <- as.character(1:n)
SPDF <- SpatialPolygonsDataFrame(SPs, mydata)
writePolyShape(SPDF, "outfile")

(untried - but close enough).

Best wishes,


> All the best,
> Patrick

Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no

More information about the R-help mailing list