s2 (version 1.0.0)

s2_geog_point: Create and Format Geography Vectors

Description

These functions create and export geography vectors. Unlike the BigQuery geography constructors, these functions do not sanitize invalid or redundant input using s2_union(). Note that when creating polygons using s2_make_polygon(), rings can be open or closed.

Usage

s2_geog_point(longitude, latitude)

s2_make_line(longitude, latitude, feature_id = 1L)

s2_make_polygon( longitude, latitude, feature_id = 1L, ring_id = 1L, oriented = FALSE, check = TRUE )

s2_geog_from_text(wkt_string, oriented = FALSE, check = TRUE)

s2_geog_from_wkb(wkb_bytes, oriented = FALSE, check = TRUE)

s2_as_text(x, precision = 16, trim = TRUE)

s2_as_binary(x, endian = wk::wk_platform_endian())

Arguments

longitude, latitude

Vectors of latitude and longitude

feature_id, ring_id

Vectors for which a change in sequential values indicates a new feature or ring. Use factor() to convert from a character vector.

oriented

TRUE if polygon ring directions are known to be correct (i.e., exterior rings are defined counter clockwise and interior rings are defined clockwise).

check

Use check = FALSE to error on invalid geometries

wkt_string

Well-known text

wkb_bytes

A list() of raw()

x

geography vectors. These inputs are passed to as_s2_geography(), so you can pass other objects (e.g., character vectors of well-known text) directly.

precision

The number of significant digits to export when writing well-known text. If trim = FALSE, the number of digits after the decimal place.

trim

Should trailing zeroes be included after the decimal place?

endian

The endian to use when writing well-known binary. Defaults to the platform endian. See wk::as_wkb().

See Also

See as_s2_geography() for other ways to construct geography vectors.

BigQuery's geography function reference:

Examples

Run this code
# NOT RUN {
# create point geographies using coordinate values:
s2_geog_point(-64, 45)

# create line geographies using coordinate values:
s2_make_line(c(-64, 8), c(45, 71))

# optionally, separate features using feature_id:
s2_make_line(
  c(-64, 8, -27, -27), c(45, 71, 0, 45),
  feature_id = c(1, 1, 2, 2)
)

# create polygon geographies using coordinate values:
# (rings can be open or closed)
s2_make_polygon(c(-45, 8, 0), c(64, 71, 90))

# optionally, separate rings and/or features using
# ring_id and/or feature_id
s2_make_polygon(
  c(20, 10, 10, 30, 45, 30, 20, 20, 40, 20, 45),
  c(35, 30, 10, 5, 20, 20, 15, 25, 40, 45, 30),
  feature_id = c(rep(1, 8), rep(2, 3)),
  ring_id = c(1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1)
)

# import and export well-known text
(geog <- s2_geog_from_text("POINT (-64 45)"))
s2_as_text(geog)

# import and export well-known binary
(geog <- s2_geog_from_wkb(wk::as_wkb("POINT (-64 45)")))
s2_as_binary(geog)

# }

Run the code above in your browser using DataLab