R: Convert polygonal '"sfg"' to '"gpc.poly"'

sfg2gpc {polyCub} | R Documentation

## Convert polygonal `"sfg"` to `"gpc.poly"`

### Description

Package polyCub implements a converter from class `"(MULTI)POLYGON"` of package sf to `"gpc.poly"` of package rgeos (originally from gpclib) such that `polyCub.exact.Gauss` can be used with simple feature polygons.

### Usage

    sfg2gpc(object)

### Arguments

`object` | a `"POLYGON"` or `"MULTIPOLYGON"` `"sfg"` object.

### Value

The converted polygon of class `"gpc.poly"`. If neither package rgeos nor gpclib are available, `sfg2gpc` will just return the `pts` slot of the `"gpc.poly"` (no formal class) with a warning.

### Note

Package rgeos (or gpclib) is required for the formal class definition of a `"gpc.poly"`.

### Author(s)

Sebastian Meyer

### See Also

`xylist`

### Examples

    if (require("rgeos") && require("sf")) {
        ## use example polygons from
        example(plotpolyf, ask = FALSE)

        letterR  # a simple "xylist"
        letterR.sfg <- st_polygon(lapply(letterR, function(xy)
            rbind(cbind(xy$x, xy$y), c(xy$x[1], xy$y[1]))))
        print(letterR.sfg)
        stopifnot(identical(letterR, xylist(letterR.sfg)))

        ## convert sf "POLYGON" to a "gpc.poly"
        letterR.gpc_from_sfg <- sfg2gpc(letterR.sfg)
        print(letterR.gpc_from_sfg)
        letterR.xylist_from_gpc <- xylist(letterR.gpc_from_sfg) # with hole info
        stopifnot(identical(letterR, lapply(letterR.xylist_from_gpc, "[", 1:2)))
    }

[Package polyCub version 0.8.0 Index]