GeoSQL.PostGIS (GeoSQL v1.2.0)

View Source

Non-standard GIS functions found in PostGIS.

Summary

Types

quantize_coordinate()

@type quantize_coordinate() :: :x | :y | :z | :m

quantize_precision()

@type quantize_precision() :: [{quantize_coordinate(), number()}]

Affine Transformations

affine(geometry, a, b, d, e, x_offset, y_offset)

(macro)
@spec affine(
  GeoSQL.geometry_input(),
  a :: number(),
  b :: number(),
  d :: number(),
  e :: number(),
  x_offset :: number(),
  y_offset :: number()
) :: GeoSQL.fragment()

affine(geometry, a, b, c, d, e, f, g, h, i, x_offset, y_offset, z_offset)

(macro)
@spec affine(
  GeoSQL.geometry_input(),
  a :: number(),
  b :: number(),
  c :: number(),
  d :: number(),
  e :: number(),
  f :: number(),
  g :: number(),
  h :: number(),
  i :: number(),
  x_offset :: number(),
  y_offset :: number(),
  z_offset :: number()
) :: GeoSQL.fragment()

rotate(geometry, rotate_radians)

(macro)

rotate(geometry, rotate_radians, origin_point)

(macro)

rotate_x(geometry, rotate_radians)

(macro)

rotate_y(geometry, rotate_radians)

(macro)

rotate_z(geometry, rotate_radians)

(macro)

scale(geometry, scale_by)

(macro)

scale(geometry, scale_by, origin)

(macro)
@spec scale(
  GeoSQL.geometry_input(),
  scale :: GeoSQL.geometry_input(),
  origin :: GeoSQL.geometry_input()
) :: GeoSQL.fragment()

scale(geometry, scale_x, scale_y, scale_z)

(macro)
@spec scale(
  GeoSQL.geometry_input(),
  scale_x :: number(),
  scale_y :: number(),
  scale_z :: number()
) ::
  GeoSQL.fragment()

trans_scale(geometry, translate_x, translate_y, scale_x, scale_y)

(macro)
@spec trans_scale(
  GeoSQL.geometry_input(),
  translate_x :: number(),
  translate_y :: number(),
  scale_x :: number(),
  scale_y :: number()
) :: GeoSQL.fragment()

Bounding Boxes

expand(geometry, dx, dy)

(macro)
@spec expand(
  geometry :: GeoSQL.geometry_input(),
  dx :: number(),
  dy :: number()
) :: GeoSQL.fragment()

expand(geometry, dx, dy, dz)

(macro)
@spec expand(
  geometry :: GeoSQL.geometry_input(),
  dx :: number(),
  dy :: number(),
  dz :: number()
) :: GeoSQL.fragment()

expand(geometry, dx, dy, dz, dm)

(macro)
@spec expand(
  geometry :: GeoSQL.geometry_input(),
  dx :: number(),
  dy :: number(),
  dz :: number(),
  dm :: number()
) :: GeoSQL.fragment()

make_box_2d(geometryA, geometryB)

(macro)

Distance Relationships

d_fully_within(geometryA, geometryB, distance)

(macro)

d_within(geometryA, geometryB, float, return_value \\ :by_srid)

(macro)

Geometry Accessors

bounding_diagonal(geometry, best_fit? \\ false)

(macro)

dump(geometry)

(macro)
@spec dump(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

dump_points(geometry)

(macro)
@spec dump_points(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

dump_rings(geometry)

(macro)
@spec dump_rings(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

dump_segments(geometry)

(macro)
@spec dump_segments(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

has_arc(geometry)

(macro)
@spec has_arc(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

has_m(geometry)

(macro)
@spec has_m(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

has_z(geometry)

(macro)
@spec has_z(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

is_collection(geometry)

(macro)
@spec is_collection(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

mem_size(geometry)

(macro)
@spec mem_size(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

points(geometry)

(macro)
@spec points(GeoSQL.Geometry.t()) :: GeoSQL.fragment()

summary(geometry)

(macro)

zm_flag(geometry)

(macro)

Geometry Constructors

make_envelope(xMin, yMin, xMax, yMax)

(macro)

make_envelope(xMin, yMin, xMax, yMax, srid)

(macro)

Geometry Editors

collection_homogenize(collection)

(macro)
@spec collection_homogenize(collection :: GeoSQL.geometry_input()) ::
  GeoSQL.fragment()

line_to_curve(geometry)

(macro)
@spec line_to_curve(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

normalize(geometry)

(macro)
@spec normalize(geometry :: GeoSQL.geometry_input()) :: GeoSQL.fragment()

quantize_coordinates(geometry, precisions)

(macro)
@spec quantize_coordinates(geometry :: GeoSQL.geometry_input(), quantize_precision()) ::
  GeoSQL.fragment()

remove_irrelevant_points_for_view(geometry, bbox_bounds, cartesian? \\ false)

(macro)
@spec remove_irrelevant_points_for_view(
  geometry :: GeoSQL.geometry_input(),
  bbox_bounds :: GeoSQL.geometry_input(),
  cartesian? :: boolean()
) :: GeoSQL.fragment()

remove_small_parts(geometry, minSizeX, minSizeY \\ false)

(macro)
@spec remove_small_parts(
  geometry :: GeoSQL.geometry_input(),
  minSizeX :: number(),
  minSizeY :: number()
) :: GeoSQL.fragment()

scroll(linestring, point)

(macro)
@spec scroll(linestring :: GeoSQL.geometry_input(), point :: GeoSQL.geometry_input()) ::
  GeoSQL.fragment()

swap_ordinates(geometry, ordinates)

(macro)

wrap_x(geometry, wrap, move)

(macro)
@spec wrap_x(geometry :: GeoSQL.geometry_input(), wrap :: number(), move :: number()) ::
  GeoSQL.fragment()

Geometry Processing

generate_points(geometryA, npoints)

(macro)

generate_points(geometry, npoints, seed)

(macro)

Geometry Validation

make_valid(geometry, params)

(macro)

Linear Referencing

locate_along(geometry, measure, offset \\ 0)

(macro)

PostGIS extension to locate_along with an offset

locate_between(geometry, measure_start, measure_end, offset)

(macro)

PostGIS extension to locate_between with an offset

locate_between_elevations(geometry, elevation_start, elevation_end)

(macro)
@spec locate_between_elevations(
  GeoSQL.geometry_input(),
  elevation_start :: number(),
  elevation_end :: number()
) :: GeoSQL.fragment()

Measurement

angle(geometryA, geometryB)

(macro)

distance_sphere(geometryA, geometryB)

(macro)

longest_line(geometryA, geometryB)

(macro)

Overlays

mem_union(geometryList)

(macro)

Spatial Reference Systems

inverse_transform_pipeline(geometry, pipeline, srid)

(macro)
@spec inverse_transform_pipeline(
  GeoSQL.geometry_input(),
  pipeline :: String.t(),
  srid :: pos_integer()
) :: GeoSQL.fragment()

Topology Relationships

contains_properly(geometryA, geometryB, use_indexes? \\ :with_indexes)

(macro)
@spec contains_properly(
  GeoSQL.geometry_input(),
  GeoSQL.geometry_input(),
  use_indexes? :: :with_indexes | :without_indexes
) :: GeoSQL.fragment()

line_crossing_direction(linestringA, linestringB)

(macro)
@spec line_crossing_direction(
  linestringA :: Geometry.LineString.t() | GeoSQL.geometry_input(),
  linestringB :: Geometry.LineString.t() | GeoSQL.geometry_input()
) :: GeoSQL.fragment()