R: liblwgeom geodetic functions

geod {lwgeom} | R Documentation

## liblwgeom geodetic functions

### Description

liblwgeom geodetic functions for length, area, segmentizing, covers

### Usage

    st_geod_area(x)

    st_geod_length(x)

    st_geod_segmentize(x, max_seg_length)

    st_geod_covers(x, y, sparse = TRUE)

    st_geod_covered_by(x, y, sparse = TRUE)

    st_geod_distance(x, y, tolerance = 0, sparse = FALSE)

### Arguments

`x` | object of class `sf`, `sfc` or `sfg`
`max_seg_length` | segment length in degree, radians, or as a length unit (e.g., m)
`y` | object of class `sf`, `sfc` or `sfg`
`sparse` | logical; if `TRUE`, return a sparse matrix (object of class `sgbp`), otherwise, return a dense logical matrix.
`tolerance` | double or length `units` value: if positive, the first distance less than `tolerance` is returned, rather than the true distance

### Details

`st_area` will give an error message when the area spans the equator and `lwgeom` is linked to a proj.4 version older than 4.9.0 (see lwgeom_extSoftVersion)

longitude coordinates returned are rescaled to [-180,180)

### Note

this function should is used by st_distance, do not use it directly

### Examples

    library(sf)
    nc = st_read(system.file("gpkg/nc.gpkg", package="sf"))
    st_geod_area(nc[1:3,])
    # st_area(nc[1:3,])
    l = st_sfc(st_linestring(rbind(c(7,52), c(8,53))), crs = 4326)
    st_geod_length(l)
    library(units)
    pol = st_polygon(list(rbind(c(0,0), c(0,60), c(60,60), c(0,0))))
    x = st_sfc(pol, crs = 4326)
    seg = st_geod_segmentize(x[1], set_units(10, km))
    plot(seg, graticule = TRUE, axes = TRUE)
    pole = st_polygon(list(rbind(c(0,80), c(120,80), c(240,80), c(0,80))))
    pt = st_point(c(0,90))
    x = st_sfc(pole, pt, crs = 4326)
    st_geod_covers(x[c(1,1,1)], x[c(2,2,2,2)])
    pole = st_polygon(list(rbind(c(0,80), c(120,80), c(240,80), c(0,80))))
    pt = st_point(c(30,70))
    x = st_sfc(pole, pt, crs = 4326)
    st_geod_distance(x, x)

[Package lwgeom version 0.2-7 Index]