ISO 19111 — Referencing by coordinates
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.
- 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. Alexandre selected this reference during correction of Story #61's 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. 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 |
| CRS definition | Types snapshot | Unsupported | No datum, axes or units model | Reference identity only | None documented | Reference value |
| CRS axis validation | Types snapshot | Unsupported | No CRS lookup or tuple/axis verification | Stored ordinates retained | None documented | SRS guide |
| Dynamic coordinate metadata | Types snapshot | Unsupported | No coordinate epoch or reference-frame model | Identifier metadata only | None documented | Reference value |
| Coordinate operations | Types snapshot | Unsupported | External calculation required | Relabeling preserves coordinates | None documented | SRS 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.