Hello all

Following on the addition of Envelope classes, there is a tiny introduction to the most basic ISO 19107 (geometry) objects.

The root of all geometric objects in ISO 19107 is GM_Object. But GeoAPI uses the Geometry name instead.

There is two objects representing points in ISO 19107:

 * GM_Point (simply named Point in GeoAPI) is a GM_Object (GeoAPI:
   Geometry) sub-type. Like every geometries, it may be relatively
   heavy depending on the geometry library implementation.
 * DirectPosition is a lightweight structure containing only ordinate
   values associated to a Coordinate Reference System (CRS).
   DirectPosition are *not* geometries in the classes hierarchy.
 * In C/C++, Position is an /union/ (in the C/C++ sense) of GM_Point
   and DirectPosition, allowing the same API to work with one or other
   type. Since unions do not exist in Java, GeoAPI simulate the union
   effect by defining Position as a parent interface of both Point and
   DirectPosition.


In ISO 19107, Envelope is simply defined by the DirectPosition of 2 corners. Like DirectPosition, Envelope is a relatively lightweight structure, not a geometry sub-type.

GeoAPI and SIS defines many additional methods for envelopes, but the internal structure stay lightweight: only the corner ordinate values and the CRS.

    Martin

Reply via email to