Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.100.1/docs/apis/_sources/wkt_wkb_protocol_0.rst.txt

.. index:: single: wkt_wkb_protocol .. _wkt_wkb_protocol/0:

.. rst-class:: right

protocol

wkt_wkb_protocol

Well-Known Text (WKT) and Well-Known Binary (WKB) geometry parser, generator, and validator protocol.

| Availability: | logtalk_load(wkt_wkb(loader))

| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-05-09

| Compilation flags: | static

| Dependencies: | (none)

| Remarks: | (none)

| Inherited public predicates: | (none)

.. contents:: :local: :backlinks: top

Public predicates

.. index:: parse/2 .. _wkt_wkb_protocol/0::parse/2:

parse/2 ^^^^^^^^^^^

Parses a geometry from the given source. Supported sources are wkt(file(Path)), wkt(stream(Stream)), wkt(atom(Atom)), wkt(chars(List)), wkt(codes(List)), wkb(file(Path)), wkb(stream(Stream)), wkb(bytes(List)), wkb(hex(atom(Atom))), wkb(hex(chars(List))), and wkb(hex(codes(List))).

| Compilation flags: | static

| Template: | parse(Source,Geometry) | Mode and number of proofs: | parse(++compound,--term) - one_or_error

| Exceptions: | Source is a variable: | instantiation_error | Source is neither a variable nor a valid source: | domain_error(wkt_wkb_source,Source) | Source data does not represent a valid WKT or WKB geometry: | domain_error(wkt_wkb,Source)


.. index:: generate/2 .. _wkt_wkb_protocol/0::generate/2:

generate/2 ^^^^^^^^^^^^^^

Generates WKT or WKB content using the representation specified in the first argument from a native geometry term. Supported sinks are wkt(file(Path)), wkt(stream(Stream)), wkt(atom(Atom)), wkt(chars(List)), wkt(codes(List)), wkb(file(Path)), wkb(stream(Stream)), wkb(bytes(List)), wkb(hex(atom(Atom))), wkb(hex(chars(List))), wkb(hex(codes(List))), and the same WKB sink wrappers wrapped as wkb(Sink, Order) where Order is little or big.

| Compilation flags: | static

| Template: | generate(Sink,Geometry) | Mode and number of proofs: | generate(+compound,++term) - one_or_error

| Exceptions: | Sink is a variable: | instantiation_error | Sink is neither a variable nor a valid sink: | domain_error(wkt_wkb_sink,Sink) | Geometry is not a valid native geometry term: | domain_error(wkt_wkb,Geometry) | Geometry is valid but cannot be represented in WKT due to special ordinates: | domain_error(wkt_wkb_representation,wkt(Geometry))


.. index:: validate/1 .. _wkt_wkb_protocol/0::validate/1:

validate/1 ^^^^^^^^^^^^^^

True iff the argument is a valid native WKT/WKB geometry term.

| Compilation flags: | static

| Template: | validate(Geometry) | Mode and number of proofs: | validate(@term) - zero_or_one


.. index:: validate/2 .. _wkt_wkb_protocol/0::validate/2:

validate/2 ^^^^^^^^^^^^^^

Validates a native geometry term returning a list of reason terms whose final argument is the failing path.

| Compilation flags: | static

| Template: | validate(Geometry,Errors) | Mode and number of proofs: | validate(@term,-list(compound)) - one_or_error

| Remarks:

  • invalid_geometry_term(Path): The term is not any supported geometry representation.
  • invalid_options(Path): The options argument is not a list.
  • unknown_option(Option, Path): An option term is not recognized.
  • duplicate_option(Name, Path): The same option name occurs more than once.
  • invalid_dimensions(Path): A dimensions/1 option does not use one of the supported values xy, z, m, or zm.
  • invalid_position(Path): A position is not a list of numeric or supported special IEEE-754 coordinates with the expected dimensionality.
  • invalid_position_array(Path): A coordinate array expected to contain positions is not a list.
  • mixed_coordinate_dimension(Path): Coordinates in the same geometry do not all have the same dimensionality.
  • coordinate_dimension_mismatch(Actual, Expected, Path): The coordinates dimensionality does not match the dimensions/1 option.
  • insufficient_positions(MinimumLength, Path): A coordinate array contains fewer positions than required for the enclosing geometry.
  • ring_not_closed(Path): A polygon ring does not repeat its first position as its last position.
  • invalid_polygon(Path): A polygon coordinate structure is invalid.
  • invalid_multi_polygon(Path): A multi-polygon coordinate structure is invalid.
  • invalid_geometry_collection(Path): A geometry collection member is not a list of valid geometry terms.

Protected predicates

(none)

Private predicates

(none)

Operators

(none)

.. seealso::

:ref:`wkt_wkb <wkt_wkb/0>`, :ref:`geojson <geojson/0>`, :ref:`geospatial <geospatial/0>`