Hi Martin,<br><br><div class="gmail_quote">On Fri, May 30, 2008 at 1:03 PM, Martin Desruisseaux &lt;<a href="mailto:martin.desruisseaux@geomatys.fr">martin.desruisseaux@geomatys.fr</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello all<br>
<br>
Daniele Romagnoli a écrit :<br>
&gt; (...snip...)<br>
<div class="Ih2E3d">&gt; VerticalCRS (as defined in 19111) which can&#39;t be used to handle<br>
&gt; ellipsoidal height since this height only lives within a 3D GeographicCRS.<br>
&gt; Under these conditions, how should I handle the 3rd component of a<br>
&gt; GeographicCRS to follow the 19115/19111?<br>
<br>
</div>As far a 19111 is concerned, 3D and 4D CRS should be handle as CompoundCRS. Or<br>
to be more specific, you need to build an array on SingleCRS of length 2 or 3:<br>
<br>
General case *except* GeographicCRS with ellipsoidal height:<br>
------------------------------------------------------------<br>
SingleCRS[] components = new SingleCRS[] {<br>
 &nbsp; &nbsp; horizontalCRS, // Typically a 2D GeographicCRS or a ProjectedCRS<br>
 &nbsp; &nbsp; verticalCRS,<br>
 &nbsp; &nbsp; temporalCRS<br>
};<br>
<br>
<br>
Special case for a GeographicCRS with ellipsoidal height:<br>
------------------------------------------------------------<br>
SingleCRS[] components = new SingleCRS[] {<br>
 &nbsp; &nbsp; geographicCRS, &nbsp;// Shall be 3D.<br>
 &nbsp; &nbsp; temporalCRS<br>
};<br>
<br>
<br>
Then, give this array to the CompoundCRS constructor.<br>
</blockquote><div><br>Yes, this is the approach I thought to use.<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
<br>
&gt; (...snip...)<br>
<div class="Ih2E3d">&gt; Now I&#39;m not sure about the meaning of that SC_CRS. It is referring to a<br>
&gt; general CRS containing a &quot;height related&quot; component (Such as a 3D<br>
&gt; GeographicCRS or a CompoundCRS)?. Or the SC_CRS has been used to<br>
&gt; indicate the base class of a VerticalCRS to point out that the Datum<br>
&gt; class is no more needed)?<br>
<br>
</div>The SC_CRS object mentioned in ISO 19111/19115 is called<br>
CoordinateReferenceSystem in GeoAPI. This mapping between the GeoAPI name and<br>
the original ISO 19111 name is documented in the following annotation:<br>
<br>
@UML(identifier=&quot;SC_CRS&quot;, specification=ISO_19111)<br>
<br>
which appears just before the class declaration:<br>
<br>
<a href="http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html" target="_blank">http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html</a></blockquote>
<div><br>Sorry, I have badly expressed my doubts about the CRS role in the Vertical context and maybe I was too brief.<br>Can I &quot;link&quot; the VerticalExtent to a CompoundCRS (extending SC_CRS) which should contain a GeographicCRS or a VerticalCRS, to identify the CRS of this vertical extent?<br>
<br>Regards,<br>
Daniele<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><a href="http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html" target="_blank"></a><br>

Actually the naming and class hierarchy in ISO specifications are a little bit<br>
convolved regarding that &quot;CRS&quot; class for historical reasons (compatibility and<br>
interoperability between ISO 19111 and ISO 19115 because the later defined<br>
objects that duplicate ISO 19111).<br>
<br>
VerticalCRS extends CoordinateReferenceSystem and thus inherit a datum field.<br>
You can invoke VerticalCRS.getDatum() in order to get the VerticalDatum.<br>
<br>
<a href="http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/crs/VerticalCRS.html#getDatum%28%29" target="_blank">http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/crs/VerticalCRS.html#getDatum()</a><br>

<div class="Ih2E3d"><br>
&gt; Maybe the ISO 19115 VerticalExtent could be related to a more general<br>
&gt; CoordinateReferenceSystem within it lives instead of a VerticalCRS.<br>
<br>
</div>ISO 19111 defines a &quot;domain of validity&quot; for every CoordinateReferenceSystem. So<br>
it is possible to invoke VerticalCRS.getDomainOfValidity() in order to get an<br>
Extent. Whatever this extent is relevant or not is left to implementations...<br>
<br>
<a href="http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/ReferenceSystem.html#getDomainOfValidity%28%29" target="_blank">http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/ReferenceSystem.html#getDomainOfValidity()</a></blockquote>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Martin<br>
<br>
-------------------------------------------------------------------------<br>
This SF.net email is sponsored by: Microsoft<br>
Defy all challenges. Microsoft(R) Visual Studio 2008.<br>
<a href="http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/" target="_blank">http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/</a><br>
_______________________________________________<br>
Geotools-devel mailing list<br>
<a href="mailto:Geotools-devel@lists.sourceforge.net">Geotools-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/geotools-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/geotools-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>-------------------------------------------------------<br>Eng. Daniele Romagnoli <br>Software Engineer<br><br>GeoSolutions S.A.S.<br>Via Carignoni 51<br>55041 Camaiore (LU)<br>
Italy<br><br>phone: +39 0584983027<br>fax: +39 0584983027<br>mob: +39 328 0559267<br><br><br><a href="http://www.geo-solutions.it">http://www.geo-solutions.it</a><br><br>-------------------------------------------------------<br>