# st_as_binary

##### Convert sfc object to an WKB object

Convert sfc object to an WKB object

##### Usage

`st_as_binary(x, ...)`# S3 method for sfc
st_as_binary(x, ..., EWKB = FALSE, endian = .Platform$endian,
pureR = FALSE, precision = attr(x, "precision"), hex = FALSE)

# S3 method for sfg
st_as_binary(x, ..., endian = .Platform$endian, EWKB = FALSE,
pureR = FALSE, hex = FALSE)

##### Arguments

- x
object to convert

- ...
ignored

- EWKB
logical; use EWKB (PostGIS), or (default) ISO-WKB?

- endian
character; either "big" or "little"; default: use that of platform

- pureR
logical; use pure R solution, or C++?

- precision
numeric; if zero, do not modify; to reduce precision: negative values convert to float (4-byte real); positive values convert to round(x*precision)/precision. See details.

- hex
logical; return as (unclassed) hexadecimal encoded character vector?

##### Details

`st_as_binary`

is called on sfc objects on their way to the GDAL or GEOS libraries, and hence does rounding (if requested) on the fly before e.g. computing spatial predicates like st_intersects. The examples show a round-trip of an `sfc`

to and from binary.

For the precision model used, see also https://locationtech.github.io/jts/javadoc/org/locationtech/jts/geom/PrecisionModel.html. There, it is written that: ``... to specify 3 decimal places of precision, use a scale factor of 1000. To specify -3 decimal places of precision (i.e. rounding to the nearest 1000), use a scale factor of 0.001.''. Note that ALL coordinates, so also Z or M values (if present) are affected.

##### Examples

```
# NOT RUN {
x = st_sfc(st_point(c(1/3, 1/6)), precision = 1000)
st_as_sfc(st_as_binary(x)) # rounds
# }
```

*Documentation reproduced from package sf, version 0.6-0, License: GPL-2 | MIT + file LICENSE*