# ISO19125 Draft Comments

This page is a collection of notes/questions based upon readings of the ISO19125 draft standard.

# General Questions & Answers

1) Confirmation that ST_AsText() and ST_AsBinary() can handle more than 2 dimensions and also parse SRID information. How should the SRID be parsed in both WKT and WKB?

2) A decision as to where the central authority for allocating/administering ISO-19125 SRIDs should reside. Who would maintain this information? How can we download updates to this information?

3) A matrix to define the handling of spatial predicates when NULL/EMPTY geometries form one or both of the input geometries. We've already attempted to document this on the wiki here: http://trac.osgeo.org/postgis/wiki/DevWikiEmptyGeometry but there are still many cases that need to resolved.

4) A matrix to define which spatial functions are valid for which geometry types (e.g. POINT, POLYGON etc.), and if so, what should they return? e.g. if calculating distance between a POINT and a POLYGON, or between 2 surfaces - how should this be done?

5) If the specification is to allow > 2 dimensions, I'd like to see a table documenting how the spatial predicates such as ST_Union(), ST_Within() etc. should behave in these cases.

Should we ignore the 3rd dimension or calculate in 2.5D? A complete set of examples for all predicates should be given in the documentation to allow us to verify the behaviour of existing geometry libraries (e.g. GEOS, Boost).

6) Clarification of precision models used for all calculations.

Do we assume double precision floating point numbers for all inputs? What if users want to specify their own precision? Does there need to be a fixed point alternative representation?

7) Clarification on the definitions of IsSimple? and IsValid?. Is IsSimple? just for point and linear features and IsValid? just for areal features as PostGIS has interpreted the current specs to be? Or is IsValid? for all feature types as SQL Server has interpreted the specs to be?

8) Documentation for each type detailing the exact criteria which make a geometry valid (e.g. minimum number of points, size)

Is a geometry with repeated points considered valid?

9) Do the spatial predicates require validity to function? How should the database behave if a non-valid geometry is passed into one of these functions? Should the WKT/WKB parser explicitly reject invalid geometries?

10) Why has the ST_ function prefix been dropped?

11) Definition of TRIANGLE:

Unless I'm wrong, this is just a really stupid definition for the TRIANGLE WKB (from the "modularized" ISO draft)

WKBTriangle {

byte byteOrder; static uint32 wkbType = 17; uint32 numRings; LinearRing? rings[numRings]

}

I mean, it's a triangle right? How many rings does it have? And how many points are in that ring? At a minimum it should be reduced to:

WKBTriangle {

byte byteOrder; static uint32 wkbType = 17; LinearRing? ring;

}

12) Clarification of acceptance of data from other sources, e.g. WKB geometries encoded with SQL-MM geometry types such as 1000000001 - how/should these be accepted?

13) How are empty geometries encoded in WKB?