This is fantastic, Martin! Thanks a lot and keep it up... On Dec 17, 2012, at 1:30 PM, Martin Desruisseaux wrote:
> 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 >
