---
title: ISO 19111 — Referencing by coordinates
description: Assesses ISO 19111:2019 through the adopted OGC 18-005r5 corrigendum and identifies LongitudeOne coordinate-reference limitations.
canonical_html: ./iso-19111.html
canonical_markdown: ./iso-19111.md
---

[View HTML version](./iso-19111.html)

ISO 19111 describes coordinate reference systems and coordinate operations.
LongitudeOne stores reference identifiers alongside coordinates; that capability
does not implement the complete CRS model or establish ISO conformance.

## Normative source

- ISO, **ISO 19111:2019**, *Geographic information — Referencing by coordinates*,
  edition 3, January 2019: [ISO catalogue][iso2019].
- **Adopted technical reference:** OGC **18-005r5**, *OGC Abstract Specification
  Topic 2: Referencing by coordinates Corrigendum*, version **5.0.1**, approved
  **2021-03-26**, published **2021-07-02**: [official HTML][ogc2019].
  Alexandre selected this reference during correction of
  [Story #61's review][review]. All technical citations below refer to its
  numbered HTML clauses; the HTML publication has no printed page numbering.

**Corrigendum scope:** the preface states consistency with ISO 19111:2019 and
incorporation of three editorial corrections from **ISO 19111:2019/Amd 1:2021**.
The revision history identifies definition 3.18 (numbered 3.1.18 in the body),
7.4 Figure 5 and Table 2 as corrected locations. This reference uses that
corrected text rather than the superseded OGC 08-015r2/2007 analysis.
Separately, **OGC 20-040r3, clause 3**, explicitly identifies OGC 18-005r5 and
ISO 19111:2019 as [identical in normative content][equivalence]. These are
OGC's source statements, not a claim of direct inspection of the ISO publication.
Later OGC revisions and additional ISO corrections are outside this assessment.

## Purpose and scope

The relevant subjects are the definition of a CRS, its axes and units,
identification of reference objects, and operations that change coordinates.
These distinguish an identifier attached to a geometry from a complete reference
system definition and from a calculation that changes its coordinates.

This assessment covers the adopted 2019 model, including static and dynamic CRS
metadata. CRS encodings and DBMS axis conventions remain outside this page.

## Relevant requirements

**Normative summaries from OGC 18-005r5:**

- **CRS definition (9.1.1):** a CRS normally combines a coordinate system with
  a datum or datum ensemble; a derived CRS adds a defining conversion.
- **Axes and tuples (7.2, 10.1):** the coordinate system defines axis names, units,
  directions and sequence. A coordinate tuple has one ordinate per axis and
  follows that axis sequence.
- **Identification (7.2):** a CRS may be identified by a full description or
  a register citation plus the identifier of its defining record.
- **Coordinate metadata (7.3.1–7.3.2, Requirements 1–2):** all tuples in a set
  must share one CRS; a dynamic CRS additionally requires one coordinate epoch.
- **Operations (3.1.6, 3.1.12, 12.1):** conversion changes coordinates between
  CRSs based on the same datum; transformation uses CRSs based on different
  datums. Point motion changes coordinates between epochs within one CRS.
- **Conformance (4, Table 1):** separate conformance classes assess coordinate
  metadata, CRS descriptions and coordinate-operation descriptions.

**Informative explanation:** recording `EPSG:4326` supplies a reference to a
definition. It does not itself provide axes, units, datum parameters or a
coordinate operation implementation. A PHP XY/XYZ/XYM/XYZM layout alone cannot
establish conformity with the axes of a particular CRS.

## LongitudeOne support

**Assessed implementation:** Spatial Types pre-1.0 development snapshot after
`0.0.1-alpha.4`, revision `ceaee5d142c77fc3922ab50c762fa6648fea0e30`.
This is evidence about a development snapshot, not a released 1.x promise.
No DBMS integration is assessed.

| Feature                     | Implementation scope | Status              | Limitations                                  | Implementation decision          | Extensions      | Evidence                     |
| --------------------------- | -------------------- | ------------------- | -------------------------------------------- | -------------------------------- | --------------- | ---------------------------- |
| Reference identification    | Types snapshot       | Partially supported | Identifier only; no full CRS definition      | Integer and optional authority   | None documented | [Reference value][reference] |
| CRS definition              | Types snapshot       | Unsupported         | No datum, axes or units model                | Reference identity only          | None documented | [Reference value][reference] |
| CRS axis validation         | Types snapshot       | Unsupported         | No CRS lookup or tuple/axis verification     | Stored ordinates retained        | None documented | [SRS guide][guide]           |
| Dynamic coordinate metadata | Types snapshot       | Unsupported         | No coordinate epoch or reference-frame model | Identifier metadata only         | None documented | [Reference value][reference] |
| Coordinate operations       | Types snapshot       | Unsupported         | External calculation required                | Relabeling preserves coordinates | None documented | [SRS guide][guide]           |

**LongitudeOne implementation decisions:** `SpatialReference` compares the integer
identifier and optional authority. Identifier `0` is an unnamed reference rather
than a wildcard. Aggregate members must share the parent's full reference.
These identity rules are project behavior. Full identity matching supports a
single-reference invariant, but does not establish CRS-definition or dynamic
coordinate-metadata conformance under clauses 4 and 7.3.

`withSpatialReference()` changes the declared reference on an immutable copy
without calculating new ordinates. It therefore does not perform the
coordinate operations described in OGC 18-005r5, clause 12.1. A caller must obtain
the target ordinates through an external component.

**Extensions:** none are documented for this assessed subset. This is not an
ecosystem-wide absence claim. No blanket ISO 19111 conformance is claimed.

## Related references

- [SQL/MM Spatial reference](iso-iec-13249-3.md)
- [Spatial Core primitives](../../spatial-core/v1/geometry/index.md)
- [Reference authoring contract](../../shared/spatial-reference-documentation-architecture.md)
- [Task #66](https://github.com/longitude-one/spatial-docs/issues/66)

[iso2019]: https://www.iso.org/standard/74039.html

[ogc2019]: https://docs.ogc.org/as/18-005r5/18-005r5.html

[equivalence]: https://docs.ogc.org/as/20-040r3/20-040r3.html#toc10

[review]: https://github.com/longitude-one/spatial-docs/pull/94#issuecomment-6109813244

[reference]: https://github.com/longitude-one/spatial-types/blob/ceaee5d142c77fc3922ab50c762fa6648fea0e30/lib/Reference/SpatialReference.php

[guide]: https://github.com/longitude-one/spatial-types/blob/ceaee5d142c77fc3922ab50c762fa6648fea0e30/docs/spatial-reference-systems.md
