
Convert foreign geometry object to an sfc object
Source:R/db.R
, R/sfc.R
, R/wkb.R
, and 4 more
st_as_sfc.Rd
Convert foreign geometry object to an sfc object
Usage
# S3 method for pq_geometry
st_as_sfc(
x,
...,
EWKB = TRUE,
spatialite = FALSE,
pureR = FALSE,
crs = NA_crs_
)
# S3 method for list
st_as_sfc(x, ..., crs = NA_crs_)
# S3 method for blob
st_as_sfc(x, ...)
# S3 method for bbox
st_as_sfc(x, ...)
# S3 method for WKB
st_as_sfc(
x,
...,
EWKB = FALSE,
spatialite = FALSE,
pureR = FALSE,
crs = NA_crs_
)
# S3 method for raw
st_as_sfc(x, ...)
# S3 method for character
st_as_sfc(x, crs = NA_integer_, ..., GeoJSON = FALSE)
# S3 method for factor
st_as_sfc(x, ...)
st_as_sfc(x, ...)
# S3 method for SpatialPoints
st_as_sfc(x, ..., precision = 0)
# S3 method for SpatialPixels
st_as_sfc(x, ..., precision = 0)
# S3 method for SpatialMultiPoints
st_as_sfc(x, ..., precision = 0)
# S3 method for SpatialLines
st_as_sfc(x, ..., precision = 0, forceMulti = FALSE)
# S3 method for SpatialPolygons
st_as_sfc(x, ..., precision = 0, forceMulti = FALSE)
# S3 method for map
st_as_sfc(x, ...)
# S3 method for s2_geography
st_as_sfc(
x,
...,
crs = st_crs(4326),
endian = match(.Platform$endian, c("big", "little")) - 1L
)
Arguments
- x
object to convert
- ...
further arguments
- EWKB
logical; if TRUE, parse as EWKB (extended WKB; PostGIS: ST_AsEWKB), otherwise as ISO WKB (PostGIS: ST_AsBinary)
- spatialite
logical; if
TRUE
, WKB is assumed to be in the spatialite dialect, see https://www.gaia-gis.it/gaia-sins/BLOB-Geometry.html; this is only supported in native endian-ness (i.e., files written on system with the same endian-ness as that on which it is being read).- pureR
logical; if TRUE, use only R code, if FALSE, use compiled (C++) code; use TRUE when the endian-ness of the binary differs from the host machine (
.Platform$endian
).- crs
coordinate reference system to be assigned; object of class
crs
- GeoJSON
logical; if
TRUE
, try to read geometries from GeoJSON text strings geometry, seest_crs()
- precision
precision value; see st_as_binary
- forceMulti
logical; if
TRUE
, force coercion intoMULTIPOLYGON
orMULTILINE
objects, else autodetect- endian
integer; 0 or 1: defaults to the endian of the native machine
Details
When converting from WKB, the object x
is either a character vector such as typically obtained from PostGIS (either with leading "0x" or without), or a list with raw vectors representing the features in binary (raw) form.
If x
is a character vector, it should be a vector containing
well-known-text, or
Postgis EWKT or GeoJSON representations of a single geometry for each vector element.
If x
is a factor
, it is converted to character
.
Examples
wkb = structure(list("01010000204071000000000000801A064100000000AC5C1441"), class = "WKB")
st_as_sfc(wkb, EWKB = TRUE)
#> Geometry set for 1 feature
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 181072 ymin: 333611 xmax: 181072 ymax: 333611
#> Projected CRS: Amersfoort / RD New
#> POINT (181072 333611)
wkb = structure(list("0x01010000204071000000000000801A064100000000AC5C1441"), class = "WKB")
st_as_sfc(wkb, EWKB = TRUE)
#> Geometry set for 1 feature
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 181072 ymin: 333611 xmax: 181072 ymax: 333611
#> Projected CRS: Amersfoort / RD New
#> POINT (181072 333611)
st_as_sfc(st_as_binary(st_sfc(st_point(0:1)))[[1]], crs = 4326)
#> Geometry set for 1 feature
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 0 ymin: 1 xmax: 0 ymax: 1
#> Geodetic CRS: WGS 84
#> POINT (0 1)
st_as_sfc("SRID=3978;LINESTRING(1663106 -105415,1664320 -104617)")
#> Geometry set for 1 feature
#> Geometry type: LINESTRING
#> Dimension: XY
#> Bounding box: xmin: 1663106 ymin: -105415 xmax: 1664320 ymax: -104617
#> Projected CRS: NAD83 / Canada Atlas Lambert
#> LINESTRING (1663106 -105415, 1664320 -104617)