Description Usage Arguments Details Examples

Convert sfc object to an WKB object

1 2 3 4 5 6 7 8 9 10 | ```
st_as_binary(x, ...)
## S3 method for class 'sfc'
st_as_binary(x, ..., EWKB = FALSE,
endian = .Platform$endian, pureR = FALSE, precision = attr(x,
"precision"), hex = FALSE)
## S3 method for class 'sfg'
st_as_binary(x, ..., endian = .Platform$endian,
EWKB = FALSE, pureR = FALSE, hex = FALSE)
``` |

`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? |

`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.

1 2 3 4 5 | ```
# examples of setting precision:
st_point(c(1/3, 1/6)) %>% st_sfc(precision = 1000) %>% st_as_binary %>% st_as_sfc
st_point(c(1/3, 1/6)) %>% st_sfc(precision = 100) %>% st_as_binary %>% st_as_sfc
st_point(1e6 * c(1/3, 1/6)) %>% st_sfc(precision = 0.01) %>% st_as_binary %>% st_as_sfc
st_point(1e6 * c(1/3, 1/6)) %>% st_sfc(precision = 0.001) %>% st_as_binary %>% st_as_sfc
``` |

sf documentation built on July 24, 2019, 5:05 p.m.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.