sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1569932 [3/5] - in /sis/trunk: ./ core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ core/sis-metadata/src/main/java/org/apache/sis/io/ core/sis-metadata/src/main/java/org/apache/sis/metadata/ core/sis-metadata/src/main/java...
Date Wed, 19 Feb 2014 21:41:02 GMT
Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/package-info.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/package-info.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -17,7 +17,7 @@
 
 /**
  * Coordinate system definitions as the set of coordinate system axes that spans the coordinate space.
- * An explanation for this package is provided in the {@linkplain org.opengis.referencing.cs OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.referencing.cs OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * <p>The root class in this package is {@link org.apache.sis.referencing.cs.AbstractCS}.

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -29,15 +29,13 @@ import org.opengis.referencing.datum.Dat
 import org.opengis.referencing.ReferenceIdentifier;
 import org.apache.sis.referencing.AbstractIdentifiedObject;
 import org.apache.sis.referencing.IdentifiedObjects;
-import org.apache.sis.io.wkt.Formatter;
 import org.apache.sis.util.iso.Types;
-import org.apache.sis.util.Classes;
 import org.apache.sis.util.ComparisonMode;
 import org.apache.sis.internal.metadata.MetadataUtilities;
 
 import static org.apache.sis.util.Utilities.deepEquals;
 import static org.apache.sis.util.collection.Containers.property;
-import static org.apache.sis.internal.referencing.ReferencingUtilities.canSetProperty;
+import static org.apache.sis.internal.metadata.MetadataUtilities.canSetProperty;
 
 // Related to JDK7
 import org.apache.sis.internal.jdk7.Objects;
@@ -335,17 +333,6 @@ public class AbstractDatum extends Abstr
     }
 
     /**
-     * Gets the type of the datum as an enumerated code. Datum type was provided for all kind of datum
-     * in the legacy OGC 01-009 specification. In the new OGC 03-73 (ISO 19111) specification,
-     * datum type is provided only for vertical datum. Nevertheless, we keep this method around
-     * since it is needed for WKT formatting. Note that we return the datum type ordinal value,
-     * not the code list object.
-     */
-    int getLegacyDatumType() {
-        return 0;
-    }
-
-    /**
      * Returns {@code true} if either the {@linkplain #getName() primary name} or at least
      * one {@linkplain #getAlias() alias} matches the given string according heuristic rules.
      * This method performs the comparison documented in the
@@ -437,20 +424,4 @@ public class AbstractDatum extends Abstr
     protected long computeHashCode() {
         return super.computeHashCode() + Objects.hash(anchorDefinition, realizationEpoch, domainOfValidity, scope);
     }
-
-    /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT)</a> element.
-     *
-     * {@note All subclasses will override this method, but only <code>DefaultGeodeticDatum</code>
-     *        will <strong>not</strong> invoke this parent method, because horizontal datum do not
-     *        write the datum type.}
-     *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name.
-     */
-    @Override
-    protected String formatTo(final Formatter formatter) {
-        formatter.append(getLegacyDatumType());
-        return Classes.getShortClassName(this);
-    }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -30,11 +30,11 @@ import org.apache.sis.util.resources.Err
 import org.apache.sis.internal.util.Numerics;
 import org.apache.sis.internal.util.DoubleDouble;
 import org.apache.sis.referencing.IdentifiedObjects;
+import org.apache.sis.referencing.operation.matrix.MatrixSIS;
 
 import static java.lang.Math.abs;
 import static org.apache.sis.util.ArgumentChecks.*;
 import static org.apache.sis.referencing.operation.matrix.Matrix4.SIZE;
-import static org.apache.sis.internal.referencing.ReferencingUtilities.getNumber;
 
 // Related to JDK7
 import org.apache.sis.internal.jdk7.Objects;
@@ -535,6 +535,23 @@ public class BursaWolfParameters extends
     }
 
     /**
+     * Retrieves the value at the specified row and column of the given matrix, wrapped in a {@code Number}.
+     * The {@code Number} type depends on the matrix accuracy.
+     *
+     * @param matrix The matrix from which to get the number.
+     * @param row    The row index, from 0 inclusive to {@link Matrix#getNumRow()} exclusive.
+     * @param column The column index, from 0 inclusive to {@link Matrix#getNumCol()} exclusive.
+     * @return       The current value at the given row and column.
+     */
+    private static Number getNumber(final Matrix matrix, final int row, final int column) {
+        if (matrix instanceof MatrixSIS) {
+            return ((MatrixSIS) matrix).getNumber(row, column);
+        } else {
+            return matrix.getElement(row, column);
+        }
+    }
+
+    /**
      * Returns the region or timeframe in which a coordinate transformation based on those Bursa-Wolf parameters is
      * valid, or {@code null} if unspecified. If an extent was specified at construction time, then that extent is
      * returned. Otherwise the datum domain of validity (which may be {@code null}) is returned.
@@ -600,17 +617,20 @@ public class BursaWolfParameters extends
     }
 
     /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT) element. The WKT contains the
-     * parameters in <var>translation</var>, <var>rotation</var>, <var>scale</var> order, like below:
+     * Formats this object as a <cite>Well Known Text</cite> {@code ToWGS84[…]} element.
+     * The WKT contains the parameters in <var>translation</var>, <var>rotation</var>, <var>scale</var> order,
+     * like below:
      *
      * <blockquote><code>TOWGS84[{@linkplain #tX}, {@linkplain #tY}, {@linkplain #tZ}, {@linkplain #rX},
      * {@linkplain #rY}, {@linkplain #rZ}, {@linkplain #dS}]</code></blockquote>
      *
-     * The element name is {@code "TOWGS84"} in the common case where the {@linkplain #getTargetDatum() target datum}
+     * {@note <code>TOWGS84</code> is defined in the WKT 1 specification only.}
+     *
+     * The element name is {@code "ToWGS84"} in the common case where the {@linkplain #getTargetDatum() target datum}
      * is WGS 84. For other targets, the element name will be derived from the datum name.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name, usually {@code "TOWGS84"}.
+     * @param  formatter The formatter where to format the inner content of this WKT element.
+     * @return Usually {@code "ToWGS84"}.
      */
     @Override
     protected String formatTo(final Formatter formatter) {
@@ -622,14 +642,14 @@ public class BursaWolfParameters extends
         formatter.append(rZ);
         formatter.append(dS);
         if (isToWGS84()) {
-            return "TOWGS84";
+            return "ToWGS84";
         }
-        String keyword = super.formatTo(formatter); // Declare the WKT as invalid.
-        final String name = IdentifiedObjects.getUnicodeIdentifier(targetDatum);
-        if (name != null) {
-            // We may try to build something better here in future SIS versions, if there is a need for that.
-            keyword = "TO" + name;
+        formatter.setInvalidWKT(BursaWolfParameters.class, null);
+        String name = IdentifiedObjects.getUnicodeIdentifier(targetDatum);
+        if (name == null) {
+            name = "Unknown";
         }
-        return keyword;
+        // We may try to build something better here in future SIS versions, if there is a need for that.
+        return "To" + name;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -37,6 +37,7 @@ import org.apache.sis.internal.referenci
 import org.apache.sis.referencing.IdentifiedObjects;
 import org.apache.sis.referencing.AbstractIdentifiedObject;
 import org.apache.sis.io.wkt.Formatter;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.util.ComparisonMode;
 import org.apache.sis.util.resources.Errors;
 
@@ -71,8 +72,7 @@ import org.apache.sis.internal.jdk7.Obje
  *
  * {@section Distance calculations}
  * This class contains an {@link #orthodromicDistance(double, double, double, double)} convenience method
- * for calculating distances on great circles. This convenience method is provided as an alternative to
- * the {@link org.apache.sis.referencing.GeodeticCalculator}.
+ * for calculating distances on great circles.
  *
  * {@section Creating new ellipsoid instances}
  * New instances can be created either directly by specifying all information to a factory method (choices 3
@@ -606,8 +606,6 @@ public class DefaultEllipsoid extends Ab
      * @param  λ2 Longitude of second point (in decimal degrees).
      * @param  φ2 Latitude  of second point (in decimal degrees).
      * @return The orthodromic distance (in the units of this ellipsoid's axis).
-     *
-     * @see org.apache.sis.referencing.GeodeticCalculator
      */
     public double orthodromicDistance(double λ1, double φ1, double λ2, double φ2) {
         λ1 = toRadians(λ1);
@@ -752,16 +750,27 @@ public class DefaultEllipsoid extends Ab
     }
 
     /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT) element.
+     * Formats this ellipsoid as a <cite>Well Known Text</cite> {@code Ellipsoid[…]} element.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name, which is {@code "SPHEROID"}.
+     * @return {@code "Ellipsoid"} (WKT 2) or {@code "Spheroid"} (WKT 1).
      */
     @Override
     protected String formatTo(final Formatter formatter) {
-        final double ivf = getInverseFlattening();
-        formatter.append(getAxisUnit().getConverterTo(SI.METRE).convert(getSemiMajorAxis()));
-        formatter.append(isInfinite(ivf) ? 0 : ivf);
-        return "SPHEROID";
+        super.formatTo(formatter);
+        final Convention convention = formatter.getConvention();
+        final boolean isWKT1 = convention.majorVersion() == 1;
+        double length = semiMajorAxis;
+        if (isWKT1) {
+            length = unit.getConverterTo(SI.METRE).convert(length);
+        }
+        formatter.append(length);
+        formatter.append(isInfinite(inverseFlattening) ? 0 : inverseFlattening);
+        if (isWKT1) {
+            return "Spheroid";
+        }
+        if (!convention.isSimplified() || !SI.METRE.equals(unit)) {
+            formatter.append(unit);
+        }
+        return "Ellipsoid";
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -163,15 +163,23 @@ public class DefaultEngineeringDatum ext
     }
 
     /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT)</a> element.
-     * The keyword is "{@code LOCAL_DATUM}" in WKT 1.
+     * Formats this datum as a <cite>Well Known Text</cite> {@code EngineeringDatum[…]} element.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name, which is {@code "LOCAL_DATUM"}.
+     * @return {@code "EngineeringDatum"} (WKT 2) or {@code "Local_Datum"} (WKT 1).
      */
     @Override
     protected String formatTo(final Formatter formatter) {
         super.formatTo(formatter);
-        return "LOCAL_DATUM";
+        if (formatter.getConvention().majorVersion() == 1) {
+            /*
+             * Datum type was provided for all kind of datum in the legacy OGC 01-009 specification.
+             * Datum types became provided only for vertical datum in the ISO 19111:2003 specification,
+             * then removed completely in the ISO 19111:2007 revision. We are supposed to format them
+             * in WKT 1, but do not have any indication about what the values should be.
+             */
+            formatter.append(0);
+            return "Local_Datum";
+        }
+        return "EngineeringDatum";
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -497,25 +497,49 @@ public class DefaultGeodeticDatum extend
     }
 
     /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT) element.
+     * Formats this datum as a <cite>Well Known Text</cite> {@code Datum[…]} element.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name, which is {@code "DATUM"}.
+     * <blockquote><font size="-1"><b>Example:</b> Well-Known Text of a WGS 84 datum.
+     *
+     * {@preformat wkt
+     *      Datum["World Geodetic System 1984",
+     *        Ellipsoid["WGS84", 6378137.0, 298.257223563, LengthUnit["metre", 1]],
+     *      Id["EPSG", 6326, Citation["OGP"], URI["urn:ogc:def:datum:EPSG::6326"]]]
+     * }
+     *
+     * <p>Same datum using WKT 1.</p>
+     *
+     * {@preformat wkt
+     *      DATUM["World Geodetic System 1984"
+     *        SPHEROID["WGS84", 6378137.0, 298.257223563],
+     *      AUTHORITY["EPSG", "6326"]]
+     * }
+     * </font></blockquote>
+     *
+     * @return {@code "Datum"}.
      */
     @Override
     protected String formatTo(final Formatter formatter) {
-        // Do NOT invokes the super-class method, because
-        // horizontal datum do not write the datum type.
+        super.formatTo(formatter);
+        formatter.newLine();
         formatter.append(ellipsoid instanceof FormattableObject ? (FormattableObject) ellipsoid :
                          DefaultEllipsoid.castOrCopy(ellipsoid));
-        if (bursaWolf != null) {
-            for (final BursaWolfParameters candidate : bursaWolf) {
-                if (candidate.isToWGS84()) {
-                    formatter.append(candidate);
-                    break;
+        if (formatter.getConvention().majorVersion() == 1) {
+            /*
+             * Note that at the different of other datum (in particular vertical datum),
+             * WKT of geodetic datum do not have a numerical code for the datum type.
+             */
+            if (bursaWolf != null) {
+                for (final BursaWolfParameters candidate : bursaWolf) {
+                    if (candidate.isToWGS84()) {
+                        formatter.newLine();
+                        formatter.append(candidate);
+                        break;
+                    }
                 }
             }
         }
-        return "DATUM";
+        formatter.newLine(); // For writing the ID[…] element on its own line.
+        return "Datum";
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -26,6 +26,7 @@ import org.opengis.referencing.Reference
 import org.opengis.referencing.datum.ImageDatum;
 import org.opengis.referencing.datum.PixelInCell;
 import org.apache.sis.io.wkt.Formatter;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.util.ComparisonMode;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
@@ -230,17 +231,21 @@ public class DefaultImageDatum extends A
     }
 
     /**
-     * Format the inner part of a <cite>Well Known Text</cite> (WKT) element.
-     * {@code ImageDatum} are defined in the WKT 2 specification only.
+     * Formats this datum as a <cite>Well Known Text</cite> {@code ImageDatum[…]} element.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name.
+     * {@note <code>ImageDatum</code> is defined in the WKT 2 specification only.}
+     *
+     * @return {@code "ImageDatum"}.
      */
     @Override
     protected String formatTo(final Formatter formatter) {
         super.formatTo(formatter);
-        formatter.append(pixelInCell);
-        formatter.setInvalidWKT(this);
-        return "GENDATUM"; // Generic datum (WKT 2)
+        final Convention convention = formatter.getConvention();
+        if (convention == Convention.INTERNAL) {
+            formatter.append(pixelInCell); // This is an extension compared to ISO 19162.
+        } else if (convention.majorVersion() == 1) {
+            formatter.setInvalidWKT(this, null);
+        }
+        return "ImageDatum";
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -31,11 +31,12 @@ import org.apache.sis.referencing.Abstra
 import org.apache.sis.internal.jaxb.gco.Measure;
 import org.apache.sis.internal.util.Numerics;
 import org.apache.sis.io.wkt.Formatter;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.util.ComparisonMode;
 
 import static org.apache.sis.util.ArgumentChecks.ensureFinite;
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
-import static org.apache.sis.internal.referencing.ReferencingUtilities.canSetProperty;
+import static org.apache.sis.internal.metadata.MetadataUtilities.canSetProperty;
 
 // Related to JDK7
 import org.apache.sis.internal.jdk7.Objects;
@@ -331,26 +332,23 @@ public class DefaultPrimeMeridian extend
     }
 
     /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT) element.
+     * Formats this prime meridian as a <cite>Well Known Text</cite> {@code PrimeMeridian[…]} element.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name, which is {@code "PRIMEM"}.
+     * @return {@code "PrimeMeridian"} (WKT 2) or {@code "PrimeM"} (WKT 1).
      */
     @Override
     protected String formatTo(final Formatter formatter) {
-        /*
-         * If the PrimeMeridian is written inside a "GEOGCS", then OGC say that it must be
-         * written in the unit of the enclosing geographic coordinate system. Otherwise,
-         * default to decimal degrees. Note that ESRI and GDAL don't follow this rule.
-         */
-        Unit<Angle> context = formatter.getConvention().getForcedUnit(Angle.class);
-        if (context == null) {
-            context = formatter.getAngularUnit();
-            if (context == null) {
-                context = NonSI.DEGREE_ANGLE;
-            }
+        super.formatTo(formatter);
+        final Convention convention = formatter.getConvention();
+        final boolean isWKT1 = convention.majorVersion() == 1;
+        final Unit<Angle> targetUnit = formatter.toContextualUnit(NonSI.DEGREE_ANGLE);
+        formatter.append(isWKT1 ? getGreenwichLongitude(targetUnit) : greenwichLongitude);
+        if (isWKT1) {
+            return "PrimeM";
+        }
+        if (!convention.isSimplified() || !targetUnit.equals(angularUnit)) {
+            formatter.append(angularUnit);
         }
-        formatter.append(getGreenwichLongitude(context));
-        return "PRIMEM";
+        return "PrimeMeridian";
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java Wed Feb 19 21:40:59 2014
@@ -29,9 +29,11 @@ import org.opengis.referencing.datum.Tem
 import org.apache.sis.internal.jaxb.gml.UniversalTimeAdapter;
 import org.apache.sis.internal.metadata.MetadataUtilities;
 import org.apache.sis.util.ComparisonMode;
+import org.apache.sis.io.wkt.Convention;
+import org.apache.sis.io.wkt.Formatter;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
-import static org.apache.sis.internal.referencing.ReferencingUtilities.canSetProperty;
+import static org.apache.sis.internal.metadata.MetadataUtilities.canSetProperty;
 
 // Related to JDK7
 import org.apache.sis.internal.jdk7.Objects;
@@ -271,4 +273,23 @@ public class DefaultTemporalDatum extend
     protected long computeHashCode() {
         return super.computeHashCode() + origin;
     }
+
+    /**
+     * Formats this datum as a <cite>Well Known Text</cite> {@code TimeDatum[…]} element.
+     *
+     * {@note <code>TimeDatum</code> is defined in the WKT 2 specification only.}
+     *
+     * @return {@code "TimeDatum"}.
+     */
+    @Override
+    protected String formatTo(final Formatter formatter) {
+        super.formatTo(formatter);
+        final Convention convention = formatter.getConvention();
+        if (convention == Convention.INTERNAL) {
+            formatter.append(MetadataUtilities.toDate(origin)); // This is an extension compared to ISO 19162.
+        } else if (convention.majorVersion() == 1) {
+            formatter.setInvalidWKT(this, null);
+        }
+        return "TimeDatum";
+    }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -32,7 +32,7 @@ import org.apache.sis.internal.jaxb.Lega
 import org.apache.sis.internal.referencing.VerticalDatumTypes;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
-import static org.apache.sis.internal.referencing.ReferencingUtilities.canSetProperty;
+import static org.apache.sis.internal.metadata.MetadataUtilities.canSetProperty;
 
 // Related to JDK7
 import org.apache.sis.internal.jdk7.Objects;
@@ -247,16 +247,6 @@ public class DefaultVerticalDatum extend
     }
 
     /**
-     * Returns the legacy code for the datum type, or 0 if none.
-     *
-     * @see #getVerticalDatumType()
-     */
-    @Override
-    final int getLegacyDatumType() {
-        return VerticalDatumTypes.toLegacy(getVerticalDatumType().ordinal());
-    }
-
-    /**
      * Returns the type to be marshalled to XML.
      * This element was present in GML 3.0 and 3.1, but has been removed from GML 3.2.
      *
@@ -316,14 +306,22 @@ public class DefaultVerticalDatum extend
     }
 
     /**
-     * Formats the inner part of a <cite>Well Known Text</cite> (WKT) element.
+     * Formats this datum as a <cite>Well Known Text</cite> {@code VerticalDatum[…]} element.
      *
-     * @param  formatter The formatter to use.
-     * @return The WKT element name, which is {@code "VERT_DATUM"}.
+     * {@note OGC 01-009 defined numerical codes for various vertical datum types, for example 2005 for geoidal height
+     *        and 2002 for ellipsoidal height. Such codes were formatted for all <code>Datum</code> subtypes in WKT 1.
+     *        Datum types became provided only for vertical datum in the ISO 19111:2003 specification, then removed
+     *        completely in ISO 19111:2007.}
+     *
+     * @return {@code "VerticalDatum"} (WKT 2) or {@code "Vert_Datum"} (WKT 1).
      */
     @Override
     protected String formatTo(final Formatter formatter) {
         super.formatTo(formatter);
-        return "VERT_DATUM";
+        if (formatter.getConvention().majorVersion() == 1) {
+            formatter.append(VerticalDatumTypes.toLegacy(type().ordinal()));
+            return "Vert_Datum";
+        }
+        return "VerticalDatum";
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/TimeDependentBWP.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/TimeDependentBWP.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/TimeDependentBWP.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/TimeDependentBWP.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -34,7 +34,6 @@ import static org.apache.sis.internal.re
  * by {@link #getTimeReference()}. Those values vary at a rate given by the parameters listed in the
  * table below (codes, names and abbreviations are from the EPSG database):
  *
- * <table class="compact"><tr><td>
  * <table class="sis">
  *   <tr><th>Code</th> <th>Name</th>                                 <th>Abbr.</th></tr>
  *   <tr><td>1040</td> <td>Rate of change of X-axis translation</td> <td>{@link #dtX}</td></tr>

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/AbstractEnvelopeTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/AbstractEnvelopeTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/AbstractEnvelopeTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/AbstractEnvelopeTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -28,7 +28,7 @@ import org.junit.Test;
 
 import static java.lang.Double.NaN;
 import static org.opengis.test.Validators.*;
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/Envelope2DTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/Envelope2DTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/Envelope2DTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/Envelope2DTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -23,7 +23,7 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static org.opengis.test.Validators.*;
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.geometry.AbstractEnvelopeTest.WGS84;
 import static org.apache.sis.geometry.AbstractEnvelopeTest.STRICT;
 
@@ -90,7 +90,6 @@ public final strictfp class Envelope2DTe
      */
     @Test
     @DependsOnMethod("testToRectanglesOnSimpleEnvelope")
-    @org.junit.Ignore("The tested envelope needs to be associated to CRS:84")
     public void testToRectanglesOverAntiMeridian() {
         final Envelope2D envelope = new Envelope2D(WGS84, 155, 0, -150 - 155, 50);
         final Rectangle2D[] rectangles = envelope.toRectangles();

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/GeneralEnvelopeTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -26,7 +26,7 @@ import org.junit.Test;
 
 import static java.lang.Double.NaN;
 import static org.opengis.test.Validators.*;
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.geometry.AbstractEnvelopeTest.WGS84;
 import static org.apache.sis.geometry.AbstractEnvelopeTest.STRICT;
 

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/ImmutableEnvelopeTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/ImmutableEnvelopeTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/ImmutableEnvelopeTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/geometry/ImmutableEnvelopeTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -21,7 +21,7 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static org.opengis.test.Validators.*;
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 import static org.apache.sis.geometry.AbstractEnvelopeTest.WGS84;
 
 

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/AxisDirectionsTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/AxisDirectionsTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/AxisDirectionsTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/AxisDirectionsTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -129,7 +129,21 @@ public final strictfp class AxisDirectio
     }
 
     /**
-     * Tests {@link AxisDirections#isSpatialOrCustom(AxisDirection, boolean)} and
+     * Tests {@link AxisDirections#isGeocentric(AxisDirection)}.
+     */
+    @Test
+    public void testIsGeocentric() {
+        assertTrue (AxisDirections.isGeocentric(GEOCENTRIC_X));
+        assertTrue (AxisDirections.isGeocentric(GEOCENTRIC_Y));
+        assertTrue (AxisDirections.isGeocentric(GEOCENTRIC_Z));
+        assertFalse(AxisDirections.isGeocentric(NORTH));
+        assertFalse(AxisDirections.isGeocentric(UP));
+        assertFalse(AxisDirections.isGeocentric(DOWN));
+        assertFalse(AxisDirections.isGeocentric(FUTURE));
+    }
+
+    /**
+     * Tests {@link AxisDirections#isSpatialOrUserDefined(AxisDirection, boolean)} and
      * {@link AxisDirections#isGrid(AxisDirection)}.
      */
     @Test
@@ -161,7 +175,7 @@ public final strictfp class AxisDirectio
 
     /**
      * Asserts that
-     * {@link AxisDirections#isSpatialOrCustom(AxisDirection)},
+     * {@link AxisDirections#isSpatialOrUserDefined(AxisDirection, boolean)},
      * {@link AxisDirections#isCartesianOrCustom(AxisDirection)} and
      * {@link AxisDirections#isGrid(AxisDirection)}
      * returns the expected value for all the given axis directions.
@@ -172,8 +186,8 @@ public final strictfp class AxisDirectio
         for (final AxisDirection dir : directions) {
             final String name = dir.name();
             assertEquals(name, isGrid, AxisDirections.isGrid(dir));
-            assertEquals(name, isSpatial, AxisDirections.isSpatialOrCustom(dir, false));
-            assertEquals(name, isSpatial | isGrid | isDisplay, AxisDirections.isSpatialOrCustom(dir, true));
+            assertEquals(name, isSpatial, AxisDirections.isSpatialOrUserDefined(dir, false));
+            assertEquals(name, isSpatial | isGrid | isDisplay, AxisDirections.isSpatialOrUserDefined(dir, true));
         }
     }
 

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -38,7 +38,7 @@ import static org.apache.sis.metadata.is
 
 
 /**
- * Tests {@link AbstractIdentifiedObject}.
+ * Tests the {@link AbstractIdentifiedObject} class.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.4 (derived from geotk-2.2)
@@ -95,6 +95,36 @@ public final strictfp class AbstractIden
     }
 
     /**
+     * Tests the {@link AbstractIdentifiedObject#AbstractIdentifiedObject(Map)} constructor without name.
+     * This is invalid and should thrown an exception.
+     */
+    @Test
+    public void testMissingName() {
+        final Map<String,Object> properties = new HashMap<String,Object>(4);
+        assertNull(properties.put(AbstractIdentifiedObject.REMARKS_KEY, "Not a name."));
+        try {
+            new AbstractIdentifiedObject(properties);
+            fail("Should not allow unnamed object.");
+        } catch (IllegalArgumentException e) {
+            // The message may be in any language, but shall
+            // contain at least the missing property name.
+            final String message = e.getMessage();
+            assertTrue(message, message.contains("code"));
+        }
+        // Try again, with error messages forced to English.
+        assertNull(properties.put(AbstractIdentifiedObject.LOCALE_KEY, Locale.US));
+        try {
+            new AbstractIdentifiedObject(properties);
+            fail("Should not allow unnamed object.");
+        } catch (IllegalArgumentException e) {
+            assertEquals("Missing value for “code” property.", e.getMessage());
+        }
+        // "code" with String value is accepted as well.
+        assertNull(properties.put("code", "Test"));
+        assertEquals("Test", new AbstractIdentifiedObject(properties).getName().getCode());
+    }
+
+    /**
      * Tests the {@link AbstractIdentifiedObject#AbstractIdentifiedObject(Map)} constructor without identifier.
      * This method compares the property values against the expected values.
      */

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -19,17 +19,28 @@ package org.apache.sis.referencing;
 import java.util.Map;
 import java.util.HashMap;
 import java.util.Locale;
+import org.opengis.referencing.IdentifiedObject;
 import org.opengis.test.Validators;
+import org.apache.sis.io.wkt.Convention;
+import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.metadata.iso.citation.HardCodedCitations;
+import org.apache.sis.metadata.iso.extent.DefaultExtent;
+import org.apache.sis.metadata.iso.extent.DefaultTemporalExtent;
+import org.apache.sis.metadata.iso.extent.DefaultVerticalExtent;
+import org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox;
+import org.apache.sis.test.mock.VerticalCRSMock;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
+import static org.opengis.referencing.ReferenceSystem.*;
 import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.MetadataAssert.assertWktEquals;
 
 
 /**
- * Tests {@link AbstractReferenceSystem}.
+ * Tests the {@link AbstractReferenceSystem} class.
  *
  * @author  Martin Desruisseaux (IRD)
  * @since   0.4 (derived from geotk-2.2)
@@ -78,4 +89,49 @@ public final strictfp class AbstractRefe
 
         assertNotSame(object, assertSerializedEquals(object));
     }
+
+    /**
+     * Tests WKT formatting with a name that contains the quote character and optional information.
+     * We test that the closing quote character is doubled and the optional information properly formatted.
+     */
+    @Test
+    @DependsOnMethod("testCreateFromMap")
+    public void testWKT() {
+        final Map<String,Object> properties = new HashMap<String,Object>(8);
+        assertNull(properties.put(NAME_KEY, "My “object”."));
+        assertNull(properties.put(SCOPE_KEY, "Large scale topographic mapping and cadastre."));
+        assertNull(properties.put(REMARKS_KEY, "注です。"));
+        assertNull(properties.put(IDENTIFIERS_KEY, new ImmutableIdentifier(
+                HardCodedCitations.OGP, "EPSG", "4326", "8.2", null)));
+        assertNull(properties.put(DOMAIN_OF_VALIDITY_KEY, new DefaultExtent("Netherlands offshore.",
+                new DefaultGeographicBoundingBox(2.54, 6.40, 51.43, 55.77),
+                new DefaultVerticalExtent(10, 1000, VerticalCRSMock.DEPTH),
+                new DefaultTemporalExtent()))); // TODO: needs sis-temporal module for testing that one.
+        final IdentifiedObject object = new AbstractReferenceSystem(properties);
+
+        assertWktEquals(Convention.WKT1,
+                // Closing quote conservatively omitted for WKT 1.
+                "ReferenceSystem[“My “object.”, AUTHORITY[“EPSG”, “4326”]]",
+                object);
+
+        assertWktEquals(Convention.WKT2,
+                "ReferenceSystem[“My “object””.”,\n" +
+                "  Scope[“Large scale topographic mapping and cadastre.”],\n" +
+                "  Area[“Netherlands offshore.”],\n" +
+                "  BBox[51.43, 2.54, 55.77, 6.40],\n" +
+                "  VerticalExtent[-1000, -10, LengthUnit[“metre”, 1]],\n" +
+                "  Id[“EPSG”, 4326, “8.2”, Citation[“OGP”], URI[“urn:ogc:def:referenceSystem:EPSG:8.2:4326”]],\n" +
+                "  Remarks[“注です。”]]",
+                object);
+
+        assertWktEquals(Convention.WKT2_SIMPLIFIED,
+                "ReferenceSystem[“My “object””.”,\n" +
+                "  Scope[“Large scale topographic mapping and cadastre.”],\n" +
+                "  Area[“Netherlands offshore.”],\n" +
+                "  BBox[51.43, 2.54, 55.77, 6.40],\n" +
+                "  VerticalExtent[-1000, -10],\n" +
+                "  Id[“EPSG”, 4326, “8.2”, Citation[“OGP”], URI[“urn:ogc:def:referenceSystem:EPSG:8.2:4326”]],\n" +
+                "  Remarks[“注です。”]]",
+                object);
+    }
 }

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/IdentifiedObjectsTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/IdentifiedObjectsTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/IdentifiedObjectsTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/IdentifiedObjectsTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -28,7 +28,7 @@ import static org.apache.sis.referencing
 
 
 /**
- * Tests {@link IdentifiedObjects}.
+ * Tests the {@link IdentifiedObjects} static methods.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/NamedIdentifierTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/NamedIdentifierTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/NamedIdentifierTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/NamedIdentifierTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -30,7 +30,7 @@ import static org.apache.sis.metadata.is
 
 
 /**
- * Tests {@link NamedIdentifier}.
+ * Tests the {@link NamedIdentifier} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/AbstractCRSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/AbstractCRSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/AbstractCRSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/AbstractCRSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -29,7 +29,7 @@ import static org.apache.sis.test.Assert
 
 
 /**
- * Tests {@link AbstractCRS}
+ * Tests the {@link AbstractCRS} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultCompoundCRSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultCompoundCRSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultCompoundCRSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultCompoundCRSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -22,17 +22,19 @@ import org.opengis.referencing.cs.Coordi
 import org.apache.sis.referencing.cs.DefaultCompoundCS;
 import org.apache.sis.referencing.cs.AxesConvention;
 import org.apache.sis.referencing.cs.HardCodedAxes;
+import org.apache.sis.io.wkt.Convention;
+import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
 import static org.opengis.referencing.cs.CoordinateSystem.NAME_KEY;
-import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
 
 
 /**
- * Tests {@link DefaultCompoundCRS}
+ * Tests the {@link DefaultCompoundCRS} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4
@@ -41,7 +43,8 @@ import static org.apache.sis.test.Assert
  */
 @DependsOn({
     SubTypesTest.class,
-    DefaultGeographicCRSTest.class
+    DefaultGeographicCRSTest.class,
+    DefaultVerticalCRSTest.class
 })
 public final strictfp class DefaultCompoundCRSTest extends TestCase {
     /**
@@ -139,4 +142,60 @@ public final strictfp class DefaultCompo
         assertSame("Expected a no-op.",         shifted, shifted.forConvention(AxesConvention.POSITIVE_RANGE));
         assertSame("Expected cached instance.", shifted, crs4   .forConvention(AxesConvention.POSITIVE_RANGE));
     }
+
+    /**
+     * Tests WKT 1 formatting.
+     */
+    @Test
+    public void testWKT1() {
+        assertWktEquals(Convention.WKT1,
+                "COMPD_CS[“WGS 84 + height + time”,\n" +
+                "  GEOGCS[“WGS 84”,\n" +
+                "    DATUM[“World Geodetic System 1984”,\n" +
+                "      SPHEROID[“WGS84”, 6378137.0, 298.257223563]],\n" +
+                "    PRIMEM[“Greenwich”, 0.0],\n" +
+                "    UNIT[“degree”, 0.017453292519943295],\n" +
+                "    AXIS[“Longitude”, EAST],\n" +
+                "    AXIS[“Latitude”, NORTH]],\n" +
+                "  VERT_CS[“Gravity-related height”,\n" +
+                "    VERT_DATUM[“Mean Sea Level”, 2005],\n" +
+                "    UNIT[“metre”, 1],\n" +
+                "    AXIS[“Gravity-related height”, UP]],\n" +
+                "  TIMECRS[“Time”,\n" +
+                "    TIMEDATUM[“UNIX”],\n" +
+                "    UNIT[“day”, 86400],\n" +
+                "    AXIS[“Time”, FUTURE]]]",
+                HardCodedCRS.GEOID_4D);
+    }
+
+    /**
+     * Tests WKT 2 formatting.
+     */
+    @Test
+    @DependsOnMethod("testWKT1")
+    public void testWKT2() {
+        assertWktEquals(Convention.WKT2,
+                "CompoundCRS[“WGS 84 + height + time”,\n" +
+                "  GeodeticCRS[“WGS 84”,\n" +
+                "    Datum[“World Geodetic System 1984”,\n" +
+                "      Ellipsoid[“WGS84”, 6378137.0, 298.257223563, LengthUnit[“metre”, 1]]],\n" +
+                "      PrimeMeridian[“Greenwich”, 0.0, AngleUnit[“degree”, 0.017453292519943295]],\n" +
+                "    CS[“ellipsoidal”, 2],\n" +
+                "      Axis[“Longitude (λ)”, east],\n" +
+                "      Axis[“Latitude (φ)”, north],\n" +
+                "      AngleUnit[“degree”, 0.017453292519943295]],\n" +
+                "  VerticalCRS[“Gravity-related height”,\n" +
+                "    VerticalDatum[“Mean Sea Level”],\n" +
+                "    CS[“vertical”, 1],\n" +
+                "      Axis[“Gravity-related height (H)”, up],\n" +
+                "      LengthUnit[“metre”, 1]],\n" +
+                "  TimeCRS[“Time”,\n" +
+                "    TimeDatum[“UNIX”],\n" +
+                "    CS[“temporal”, 1],\n" +
+                "      Axis[“Time (t)”, future],\n" +
+                "      TimeUnit[“day”, 86400]],\n" +
+                "  Area[“World”],\n" +
+                "  BBox[-90.00, -180.00, 90.00, 180.00]]",
+                HardCodedCRS.GEOID_4D);
+    }
 }

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeodeticCRSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeodeticCRSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeodeticCRSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeodeticCRSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -27,7 +27,7 @@ import static org.apache.sis.test.Assert
 
 
 /**
- * Tests {@link DefaultGeodeticCRS}
+ * Tests the {@link DefaultGeodeticCRS} class.
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultGeographicCRSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -21,15 +21,17 @@ import org.opengis.referencing.cs.Ellips
 import org.opengis.referencing.cs.CoordinateSystemAxis;
 import org.apache.sis.referencing.cs.AxesConvention;
 import org.apache.sis.referencing.CommonCRS;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.test.DependsOn;
+import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
 
 
 /**
- * Tests {@link DefaultGeographicCRS}
+ * Tests the {@link DefaultGeographicCRS} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4 (derived from geotk-3.20)
@@ -83,4 +85,67 @@ public final strictfp class DefaultGeogr
         assertSame("latitude",  ref.getAxis(0), cs.getAxis(1));
         assertSame("height",    ref.getAxis(2), cs.getAxis(2));
     }
+
+    /**
+     * Tests WKT 1 formatting.
+     */
+    @Test
+    public void testWKT1() {
+        assertWktEquals(Convention.WKT1,
+                "GEOGCS[“WGS 84”,\n" +
+                "  DATUM[“World Geodetic System 1984”,\n" +
+                "    SPHEROID[“WGS84”, 6378137.0, 298.257223563]],\n" +
+                "  PRIMEM[“Greenwich”, 0.0],\n" +
+                "  UNIT[“degree”, 0.017453292519943295],\n" +
+                "  AXIS[“Longitude”, EAST],\n" +
+                "  AXIS[“Latitude”, NORTH]]",
+                HardCodedCRS.WGS84);
+    }
+
+    /**
+     * Tests WKT 2 formatting.
+     */
+    @Test
+    @DependsOnMethod("testWKT1")
+    public void testWKT2() {
+        assertWktEquals(Convention.WKT2,
+                "GeodeticCRS[“WGS 84”,\n" +
+                "  Datum[“World Geodetic System 1984”,\n" +
+                "    Ellipsoid[“WGS84”, 6378137.0, 298.257223563, LengthUnit[“metre”, 1]]],\n" +
+                "    PrimeMeridian[“Greenwich”, 0.0, AngleUnit[“degree”, 0.017453292519943295]],\n" +
+                "  CS[“ellipsoidal”, 2],\n" +
+                "    Axis[“Longitude (λ)”, east],\n" +
+                "    Axis[“Latitude (φ)”, north],\n" +
+                "    AngleUnit[“degree”, 0.017453292519943295],\n" +
+                "  Area[“World”],\n" +
+                "  BBox[-90.00, -180.00, 90.00, 180.00]]",
+                HardCodedCRS.WGS84);
+
+        assertWktEquals(Convention.WKT2_SIMPLIFIED,
+                "GeodeticCRS[“WGS 84”,\n" +
+                "  Datum[“World Geodetic System 1984”,\n" +
+                "    Ellipsoid[“WGS84”, 6378137.0, 298.257223563]],\n" +
+                "    PrimeMeridian[“Greenwich”, 0.0],\n" +
+                "  CS[“ellipsoidal”, 2],\n" +
+                "    Axis[“Longitude (λ)”, east],\n" +
+                "    Axis[“Latitude (φ)”, north],\n" +
+                "    Unit[“degree”, 0.017453292519943295],\n" +
+                "  Area[“World”],\n" +
+                "  BBox[-90.00, -180.00, 90.00, 180.00]]",
+                HardCodedCRS.WGS84);
+
+        assertWktEquals(Convention.INTERNAL,
+                "GeodeticCRS[“WGS 84”,\n" +
+                "  Datum[“World Geodetic System 1984”,\n" +
+                "    Ellipsoid[“WGS84”, 6378137.0, 298.257223563],\n" +
+                "    Id[“EPSG”, 6326]],\n" +
+                "    PrimeMeridian[“Greenwich”, 0.0, Id[“EPSG”, 8901]],\n" +
+                "  CS[“ellipsoidal”, 2],\n" +
+                "    Axis[“Geodetic longitude (λ)”, east],\n" +
+                "    Axis[“Geodetic latitude (φ)”, north],\n" +
+                "    Unit[“degree”, 0.017453292519943295],\n" +
+                "  Area[“World”],\n" +
+                "  BBox[-90.00, -180.00, 90.00, 180.00]]",
+                HardCodedCRS.WGS84);
+    }
 }

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRS.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRS.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -131,6 +131,12 @@ public final strictfp class HardCodedCRS
             getProperties(HardCodedCS.GRAVITY_RELATED_HEIGHT), HardCodedDatum.MEAN_SEA_LEVEL, HardCodedCS.GRAVITY_RELATED_HEIGHT);
 
     /**
+     * A vertical coordinate reference system using Mean Sea Level datum.
+     */
+    public static final DefaultVerticalCRS DEPTH = new DefaultVerticalCRS(
+            getProperties(HardCodedCS.DEPTH), HardCodedDatum.MEAN_SEA_LEVEL, HardCodedCS.DEPTH);
+
+    /**
      * A temporal coordinate reference system for time in days elapsed since the Unix epoch.
      */
     public static final DefaultTemporalCRS TIME = new DefaultTemporalCRS(
@@ -141,7 +147,7 @@ public final strictfp class HardCodedCRS
      * This constant uses the "geoid" term as an approximation for the gravity related height.
      */
     public static final DefaultCompoundCRS GEOID_4D = new DefaultCompoundCRS(
-            properties("WGS 84 + height + time"), GRAVITY_RELATED_HEIGHT, TIME);
+            properties("WGS 84 + height + time"), WGS84, GRAVITY_RELATED_HEIGHT, TIME);
 
     /**
      * A two-dimensional Cartesian coordinate reference system with (column, row) axes.

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -21,7 +21,7 @@ import org.apache.sis.test.TestCase;
 import org.apache.sis.test.DependsOn;
 import org.junit.Test;
 
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.Assert.*;
 import static org.apache.sis.referencing.crs.HardCodedCRS.*;
 
 
@@ -63,25 +63,16 @@ public final strictfp class HardCodedCRS
      */
     @Test
     public void testDimensions() {
-        assertEquals("WGS84 2D", 2, WGS84   .getCoordinateSystem().getDimension());
-        assertEquals("WGS84 3D", 3, WGS84_3D.getCoordinateSystem().getDimension());
-    }
-
-    /**
-     * Tests WKT formatting.
-     */
-    @Test
-    public void testWKT() {
-        assertWktEquals(
-                "GEOGCS[“WGS 84”,\n" +
-                "  DATUM[“World Geodetic System 1984”,\n" +
-                "    SPHEROID[“WGS84”, 6378137.0, 298.257223563],\n" +
-                "    AUTHORITY[“EPSG”, “6326”]],\n" +
-                "  PRIMEM[“Greenwich”, 0.0, AUTHORITY[“EPSG”, “8901”]],\n" +
-                "  UNIT[“degree”, 0.017453292519943295],\n" +
-                "  AXIS[“Geodetic longitude”, EAST],\n" +
-                "  AXIS[“Geodetic latitude”, NORTH]]",
-                WGS84);
+        assertEquals("TIME",         1, TIME        .getCoordinateSystem().getDimension());
+        assertEquals("DEPTH",        1, DEPTH       .getCoordinateSystem().getDimension());
+        assertEquals("WGS84",        2, WGS84       .getCoordinateSystem().getDimension());
+        assertEquals("WGS84_φλ",     2, WGS84_φλ   .getCoordinateSystem().getDimension());
+        assertEquals("WGS84_3D",     3, WGS84_3D    .getCoordinateSystem().getDimension());
+        assertEquals("CARTESIAN_2D", 2, CARTESIAN_2D.getCoordinateSystem().getDimension());
+        assertEquals("CARTESIAN_3D", 3, CARTESIAN_3D.getCoordinateSystem().getDimension());
+        assertEquals("GEOCENTRIC",   3, GEOCENTRIC  .getCoordinateSystem().getDimension());
+        assertEquals("SPHERICAL",    3, SPHERICAL   .getCoordinateSystem().getDimension());
+        assertEquals("GEOID_4D",     4, GEOID_4D     .getCoordinateSystem().getDimension());
     }
 
     /**
@@ -91,5 +82,6 @@ public final strictfp class HardCodedCRS
     public void testSerialization() {
         assertSerializedEquals(WGS84);
         assertSerializedEquals(WGS84_3D);
+        assertSerializedEquals(GEOID_4D);
     }
 }

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/SubTypesTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/SubTypesTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/SubTypesTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/SubTypesTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -25,7 +25,7 @@ import static org.junit.Assert.*;
 
 
 /**
- * Tests {@link SubTypes}
+ * Tests the {@link SubTypes} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/AbstractCSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/AbstractCSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/AbstractCSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/AbstractCSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -27,11 +27,12 @@ import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
 import static org.opengis.referencing.cs.CoordinateSystem.NAME_KEY;
+import static org.apache.sis.referencing.cs.CoordinateSystemsTest.STRICT;
 import static org.apache.sis.test.Assert.*;
 
 
 /**
- * Tests {@link AbstractCS}.
+ * Tests the {@link AbstractCS} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4
@@ -90,11 +91,18 @@ public final strictfp class AbstractCSTe
          * Some expected axes, identical to the ones in HardCodedAxes except for name or units.
          */
         final DefaultCoordinateSystemAxis EASTING = new DefaultCoordinateSystemAxis(
-                singletonMap(NAME_KEY, Vocabulary.format(Vocabulary.Keys.Unnamed)), "E",
-                AxisDirection.EAST, SI.METRE, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, null);
+                singletonMap(NAME_KEY, Vocabulary.format(Vocabulary.Keys.Unnamed)), "E", AxisDirection.EAST, SI.METRE);
         final DefaultCoordinateSystemAxis HEIGHT = new DefaultCoordinateSystemAxis(
-                singletonMap(NAME_KEY, "Height"), "h",
-            AxisDirection.UP, SI.METRE, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, null);
+                singletonMap(NAME_KEY, "Height"), "h", AxisDirection.UP, SI.METRE);
+        /*
+         * Verifies the properties inferred by the constructor.
+         */
+        assertEquals("minimumValue", Double.NEGATIVE_INFINITY, EASTING.getMinimumValue(), STRICT);
+        assertEquals("maximumValue", Double.POSITIVE_INFINITY, EASTING.getMaximumValue(), STRICT);
+        assertNull  ("rangeMeaning", EASTING.getRangeMeaning());
+        assertEquals("minimumValue", Double.NEGATIVE_INFINITY, HEIGHT.getMinimumValue(), STRICT);
+        assertEquals("maximumValue", Double.POSITIVE_INFINITY, HEIGHT.getMaximumValue(), STRICT);
+        assertNull  ("rangeMeaning", HEIGHT.getRangeMeaning());
         /*
          * Test RIGHT_HANDED as a matter of principle before to test NORMALIZED.
          */

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CoordinateSystemsTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CoordinateSystemsTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CoordinateSystemsTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CoordinateSystemsTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -53,7 +53,7 @@ public final strictfp class CoordinateSy
     /**
      * Tolerance threshold for strict floating point comparisons.
      */
-    private static final double STRICT = 0;
+    static final double STRICT = 0;
 
     /**
      * Tests {@link CoordinateSystems#parseAxisDirection(String)}.

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCompoundCSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCompoundCSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCompoundCSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCompoundCSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -24,7 +24,7 @@ import static org.junit.Assert.*;
 
 
 /**
- * Tests {@link DefaultCompoundCS}.
+ * Tests the {@link DefaultCompoundCS} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -16,23 +16,27 @@
  */
 package org.apache.sis.referencing.cs;
 
+import javax.measure.unit.SI;
 import javax.measure.unit.NonSI;
 import org.opengis.referencing.cs.AxisDirection;
 import org.opengis.referencing.cs.RangeMeaning;
 import org.opengis.test.Validators;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.util.ComparisonMode;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.apache.sis.referencing.Assert.*;
+import static java.util.Collections.singletonMap;
+import static org.apache.sis.test.MetadataAssert.*;
 import static org.apache.sis.referencing.cs.HardCodedAxes.*;
 import static org.apache.sis.referencing.IdentifiedObjects.getProperties;
+import static org.apache.sis.referencing.cs.CoordinateSystemsTest.STRICT;
 
 
 /**
- * Tests {@link DefaultCoordinateSystemAxis}.
+ * Tests the {@link DefaultCoordinateSystemAxis} class.
  *
  * @author  Martin Desruisseaux (IRD)
  * @since   0.4 (derived from geotk-2.2)
@@ -82,17 +86,36 @@ public final strictfp class DefaultCoord
      */
     @Test
     public void testWKT() {
-        assertWktEquals("AXIS[“x”, EAST]",                   X);
-        assertWktEquals("AXIS[“y”, NORTH]",                  Y);
-        assertWktEquals("AXIS[“z”, UP]",                     Z);
-        assertWktEquals("AXIS[“Longitude”, EAST]",           LONGITUDE_gon);
-        assertWktEquals("AXIS[“Latitude”, NORTH]",           LATITUDE_gon);
-        assertWktEquals("AXIS[“Altitude”, UP]",              ALTITUDE);
-        assertWktEquals("AXIS[“Time”, FUTURE]",              TIME);
-        assertWktEquals("AXIS[“Geodetic longitude”, EAST]",  GEODETIC_LONGITUDE);
-        assertWktEquals("AXIS[“Spherical longitude”, EAST]", SPHERICAL_LONGITUDE);
-        assertWktEquals("AXIS[“Geodetic latitude”, NORTH]",  GEODETIC_LATITUDE);
-        assertWktEquals("AXIS[“Spherical latitude”, NORTH]", SPHERICAL_LATITUDE);
+        assertWktEquals("Axis[“x”, east, LengthUnit[“metre”, 1]]",  X);
+        assertWktEquals("Axis[“y”, north, LengthUnit[“metre”, 1]]", Y);
+        assertWktEquals("Axis[“z”, up, LengthUnit[“metre”, 1]]",    Z);
+        assertWktEquals("Axis[“Longitude (λ)”, east, AngleUnit[“grade”, 0.015707963267948967]]",            LONGITUDE_gon);
+        assertWktEquals("Axis[“Latitude (φ)”, north, AngleUnit[“grade”, 0.015707963267948967]]",            LATITUDE_gon);
+        assertWktEquals("Axis[“Altitude (h)”, up, LengthUnit[“metre”, 1]]",                                 ALTITUDE);
+        assertWktEquals("Axis[“Time (t)”, future, TimeUnit[“day”, 86400]]",                                 TIME);
+        assertWktEquals("Axis[“Longitude (λ)”, east, AngleUnit[“degree”, 0.017453292519943295]]",           GEODETIC_LONGITUDE);
+        assertWktEquals("Axis[“Spherical longitude (Ω)”, east, AngleUnit[“degree”, 0.017453292519943295]]", SPHERICAL_LONGITUDE);
+        assertWktEquals("Axis[“Latitude (φ)”, north, AngleUnit[“degree”, 0.017453292519943295]]",           GEODETIC_LATITUDE);
+        assertWktEquals("Axis[“Spherical latitude (Θ)”, north, AngleUnit[“degree”, 0.017453292519943295]]", SPHERICAL_LATITUDE);
+
+        assertWktEquals(Convention.WKT1,     "AXIS[“x”, EAST]",  X);
+        assertWktEquals(Convention.WKT1,     "AXIS[“y”, NORTH]", Y);
+        assertWktEquals(Convention.WKT1,     "AXIS[“z”, UP]",    Z);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Geodetic longitude (λ)”, east, Unit[“degree”, 0.017453292519943295]]",  GEODETIC_LONGITUDE);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Spherical longitude (Ω)”, east, Unit[“degree”, 0.017453292519943295]]", SPHERICAL_LONGITUDE);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Geodetic latitude (φ)”, north, Unit[“degree”, 0.017453292519943295]]",  GEODETIC_LATITUDE);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Spherical latitude (Θ)”, north, Unit[“degree”, 0.017453292519943295]]", SPHERICAL_LATITUDE);
+    }
+
+    /**
+     * Tests the WKT of axis of the kind "South along 90°W".
+     */
+    @Test
+    @DependsOnMethod("testWKT")
+    public void testMeridianWKT() {
+        assertWktEquals("Axis[“South along 90°W (x)”, south, Meridian[-90.0, AngleUnit[“degree”, 0.017453292519943295]], LengthUnit[“metre”, 1]]",
+                new DefaultCoordinateSystemAxis(singletonMap(DefaultCoordinateSystemAxis.NAME_KEY, "South along 90°W"),
+                        "x", DirectionAlongMeridian.parse("South along 90°W").getDirection(), SI.METRE));
     }
 
     /**
@@ -120,10 +143,21 @@ public final strictfp class DefaultCoord
          * (GEODETIC_LONGITUDE, GEODETIC_LATITUDE) except for the name.
          */
         final DefaultCoordinateSystemAxis LONGITUDE = new DefaultCoordinateSystemAxis(getProperties(LONGITUDE_gon),
-                "λ", AxisDirection.EAST, NonSI.DEGREE_ANGLE, -180, 180, RangeMeaning.WRAPAROUND);
+                "λ", AxisDirection.EAST, NonSI.DEGREE_ANGLE);
         final DefaultCoordinateSystemAxis LATITUDE = new DefaultCoordinateSystemAxis(getProperties(LATITUDE_gon),
-                "φ", AxisDirection.NORTH, NonSI.DEGREE_ANGLE, -90, 90, RangeMeaning.EXACT);
-
+                "φ", AxisDirection.NORTH, NonSI.DEGREE_ANGLE);
+        /*
+         * Verifies the properties inferred by the constructor.
+         */
+        assertEquals("minimumValue", -180, LONGITUDE.getMinimumValue(), STRICT);
+        assertEquals("maximumValue", +180, LONGITUDE.getMaximumValue(), STRICT);
+        assertEquals("rangeMeaning", RangeMeaning.WRAPAROUND, LONGITUDE.getRangeMeaning());
+        assertEquals("minimumValue", -90, LATITUDE.getMinimumValue(), STRICT);
+        assertEquals("maximumValue", +90, LATITUDE.getMaximumValue(), STRICT);
+        assertEquals("rangeMeaning", RangeMeaning.EXACT, LATITUDE.getRangeMeaning());
+        /*
+         * Those axes shall be considered different.
+         */
         assertFalse("X",         X        .equals(GEOCENTRIC_X,        ComparisonMode.IGNORE_METADATA));
         assertFalse("Longitude", LONGITUDE.equals(GEODETIC_LONGITUDE,  ComparisonMode.STRICT));
         assertFalse("Longitude", LONGITUDE.equals(SPHERICAL_LONGITUDE, ComparisonMode.STRICT));

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DirectionAlongMeridianTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -21,7 +21,7 @@ import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
-import static org.junit.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
 
 
 /**
@@ -105,4 +105,13 @@ public final strictfp class DirectionAlo
         assertEquals( +1, m2.compareTo(m1));
         assertFalse (m1.equals(m2));
     }
+
+    /**
+     * Test Well Known Text formatting.
+     */
+    @Test
+    public void testWKT() {
+        assertWktEquals("Meridian[-90.0, AngleUnit[“degree”, 0.017453292519943295]]",
+                DirectionAlongMeridian.parse("South along 90°W"));
+    }
 }

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedAxes.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedAxes.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedAxes.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedAxes.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -16,14 +16,14 @@
  */
 package org.apache.sis.referencing.cs;
 
+import java.util.Map;
+import java.util.HashMap;
 import javax.measure.unit.Unit;
 import javax.measure.unit.SI;
 import javax.measure.unit.NonSI;
 import org.opengis.referencing.cs.AxisDirection;
 import org.opengis.referencing.cs.RangeMeaning;
 
-import static java.util.Collections.singletonMap;
-
 
 /**
  * Collection of axes for testing purpose.
@@ -43,7 +43,6 @@ public final strictfp class HardCodedAxe
      * <p>This axis is usually part of a {@link #GEODETIC_LONGITUDE}, {@link #GEODETIC_LATITUDE},
      * {@link #ELLIPSOIDAL_HEIGHT} set.</p>
      *
-     * @see #LONGITUDE
      * @see #SPHERICAL_LONGITUDE
      * @see #GEODETIC_LATITUDE
      */
@@ -59,7 +58,6 @@ public final strictfp class HardCodedAxe
      * <p>This axis is usually part of a {@link #GEODETIC_LONGITUDE}, {@link #GEODETIC_LATITUDE},
      * {@link #ELLIPSOIDAL_HEIGHT} set.</p>
      *
-     * @see #LATITUDE
      * @see #SPHERICAL_LATITUDE
      * @see #GEODETIC_LONGITUDE
      */
@@ -80,7 +78,6 @@ public final strictfp class HardCodedAxe
      *
      * @see #GEODETIC_LONGITUDE
      * @see #SPHERICAL_LONGITUDE
-     * @see #LATITUDE
      */
     public static final DefaultCoordinateSystemAxis LONGITUDE_gon = create("Longitude", "λ",
             AxisDirection.EAST, NonSI.GRADE, -200, 200, RangeMeaning.WRAPAROUND);
@@ -93,7 +90,6 @@ public final strictfp class HardCodedAxe
      *
      * @see #GEODETIC_LATITUDE
      * @see #SPHERICAL_LATITUDE
-     * @see #LONGITUDE
      */
     public static final DefaultCoordinateSystemAxis LATITUDE_gon = create("Latitude", "φ",
             AxisDirection.NORTH, NonSI.GRADE, -100, 100, RangeMeaning.EXACT);
@@ -139,7 +135,8 @@ public final strictfp class HardCodedAxe
      * Increasing ordinates values go {@linkplain AxisDirection#UP up} and units are {@linkplain SI#METRE metres}.
      * The abbreviation is lower case "<var>h</var>".
      *
-     * <p>This axis is usually part of a {@link #LONGITUDE}, {@link #LATITUDE}, {@link #ALTITUDE} set.</p>
+     * <p>This axis is usually part of a {@link #GEODETIC_LONGITUDE}, {@link #GEODETIC_LATITUDE},
+     * {@link #ALTITUDE} tuple.</p>
      *
      * @see #ELLIPSOIDAL_HEIGHT
      * @see #GEOCENTRIC_RADIUS
@@ -189,7 +186,6 @@ public final strictfp class HardCodedAxe
      * <p>This axis is usually part of a {@link #SPHERICAL_LONGITUDE}, {@link #SPHERICAL_LATITUDE},
      * {@link #GEOCENTRIC_RADIUS} set.</p>
      *
-     * @see #LONGITUDE
      * @see #GEODETIC_LONGITUDE
      * @see #SPHERICAL_LATITUDE
      */
@@ -206,7 +202,6 @@ public final strictfp class HardCodedAxe
      * <p>This axis is usually part of a {@link #SPHERICAL_LONGITUDE}, {@link #SPHERICAL_LATITUDE},
      * {@link #GEOCENTRIC_RADIUS} set.</p>
      *
-     * @see #LATITUDE
      * @see #GEODETIC_LATITUDE
      * @see #SPHERICAL_LONGITUDE
      */
@@ -419,8 +414,12 @@ public final strictfp class HardCodedAxe
             final AxisDirection direction, final Unit<?> unit, final double minimum, final double maximum,
             final RangeMeaning meaning)
     {
-        return new DefaultCoordinateSystemAxis(singletonMap(DefaultCoordinateSystemAxis.NAME_KEY, name),
-                abbreviation, direction, unit, minimum, maximum, meaning);
+        final Map<String,Object> properties = new HashMap<String,Object>(8);
+        properties.put(DefaultCoordinateSystemAxis.NAME_KEY, name);
+        properties.put(DefaultCoordinateSystemAxis.MINIMUM_VALUE_KEY, minimum);
+        properties.put(DefaultCoordinateSystemAxis.MAXIMUM_VALUE_KEY, maximum);
+        properties.put(DefaultCoordinateSystemAxis.RANGE_MEANING_KEY, meaning);
+        return new DefaultCoordinateSystemAxis(properties, abbreviation, direction, unit);
     }
 
     /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCS.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCS.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -83,15 +83,17 @@ public final strictfp class HardCodedCS 
 
     /**
      * A three-dimensional spherical CS with
-     * <var>{@linkplain HardCodedAxes#SPHERICAL_LONGITUDE longitude}</var>,
      * <var>{@linkplain HardCodedAxes#SPHERICAL_LATITUDE latitude}</var>,
+     * <var>{@linkplain HardCodedAxes#SPHERICAL_LONGITUDE longitude}</var>,
      * <var>{@linkplain HardCodedAxes#GEOCENTRIC_RADIUS radius}</var>
      * axes.
+     * This axis order is the one of EPSG:6404.
+     * Note that this is not a right-handed system.
      */
     public static final DefaultSphericalCS SPHERICAL = new DefaultSphericalCS(
             singletonMap(NAME_KEY, "Spherical"),
-            HardCodedAxes.SPHERICAL_LONGITUDE,
             HardCodedAxes.SPHERICAL_LATITUDE,
+            HardCodedAxes.SPHERICAL_LONGITUDE,
             HardCodedAxes.GEOCENTRIC_RADIUS);
 
     /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCSTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCSTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCSTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCSTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -91,7 +91,6 @@ public final strictfp class HardCodedCST
     public void testNormalized() {
         AbstractCS cs;
         cs = GRID;               assertSame(cs, cs.forConvention(AxesConvention.NORMALIZED));
-        cs = SPHERICAL;          assertSame(cs, cs.forConvention(AxesConvention.NORMALIZED));
         cs = GEOCENTRIC;         assertSame(cs, cs.forConvention(AxesConvention.NORMALIZED));
         cs = CARTESIAN_2D;       assertSame(cs, cs.forConvention(AxesConvention.NORMALIZED));
         cs = CARTESIAN_3D;       assertSame(cs, cs.forConvention(AxesConvention.NORMALIZED));

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -28,7 +28,7 @@ import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
 import static org.opengis.referencing.cs.CoordinateSystem.NAME_KEY;
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.ReferencingAssert.*;
 
 
 /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/BursaWolfParametersTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/BursaWolfParametersTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/BursaWolfParametersTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/BursaWolfParametersTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -34,7 +34,7 @@ import static org.apache.sis.test.mock.G
 
 
 /**
- * Tests {@link BursaWolfParameters}.
+ * Tests the {@link BursaWolfParameters} class.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4 (derived from geotk-2.2)
@@ -196,7 +196,7 @@ public final strictfp class BursaWolfPar
     @Test
     public void testToString() {
         final BursaWolfParameters bursaWolf = createED87_to_WGS84();
-        assertEquals("TOWGS84[-82.981, -99.719, -110.709, -0.5076, 0.1503, 0.3898, -0.3143]", bursaWolf.toString());
+        assertEquals("ToWGS84[-82.981, -99.719, -110.709, -0.5076, 0.1503, 0.3898, -0.3143]", bursaWolf.toString());
     }
 
     /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -30,7 +30,7 @@ import org.apache.sis.test.DependsOnMeth
 import org.junit.Test;
 
 import static java.lang.StrictMath.*;
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
 
 
 /**
@@ -166,7 +166,7 @@ public final strictfp class DefaultEllip
     @Test
     public void testToWKT() {
         final DefaultEllipsoid e = new DefaultEllipsoid(GeodeticDatumMock.WGS84.getEllipsoid());
-        assertWktEquals("SPHEROID[“WGS84”, 6378137.0, 298.257223563]", e);
+        assertWktEquals("Ellipsoid[“WGS84”, 6378137.0, 298.257223563, LengthUnit[“metre”, 1]]", e);
     }
 
     /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java?rev=1569932&r1=1569931&r2=1569932&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java [UTF-8] Wed Feb 19 21:40:59 2014
@@ -27,14 +27,16 @@ import org.opengis.referencing.operation
 import org.opengis.referencing.datum.GeodeticDatum;
 import org.opengis.test.Validators;
 import org.apache.sis.xml.Namespaces;
+import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.metadata.iso.extent.DefaultExtent;
 import org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox;
 import org.apache.sis.test.XMLTestCase;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
+import org.apache.sis.test.TestStep;
 import org.junit.Test;
 
-import static org.apache.sis.referencing.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
 import static org.apache.sis.test.mock.GeodeticDatumMock.*;
 import static org.apache.sis.referencing.GeodeticObjectVerifier.*;
 
@@ -176,14 +178,14 @@ public final strictfp class DefaultGeode
     }
 
     /**
-     * Tests {@link DefaultEllipsoid#toWKT()}.
+     * Tests {@link DefaultGeodeticDatum#toWKT()}.
      */
     @Test
     public void testToWKT() {
         final DefaultGeodeticDatum datum = new DefaultGeodeticDatum(WGS84);
         assertWktEquals(
-                "DATUM[“WGS84”,\n" +
-                "  SPHEROID[“WGS84”, 6378137.0, 298.257223563]]",
+                "Datum[“WGS84”,\n" +
+                "  Ellipsoid[“WGS84”, 6378137.0, 298.257223563, LengthUnit[“metre”, 1]]]",
                 datum);
     }
 
@@ -221,10 +223,14 @@ public final strictfp class DefaultGeode
     /**
      * Tests unmarshalling.
      *
+     * <p>This method is part of a chain.
+     * The next method is {@link #testUnmarshalledWKT()}.</p>
+     *
+     * @return The unmarshalled datum.
      * @throws JAXBException If an error occurred during unmarshalling.
      */
-    @Test
-    public void testUnmarshalling() throws JAXBException {
+    @TestStep
+    public DefaultGeodeticDatum testUnmarshalling() throws JAXBException {
         final DefaultGeodeticDatum datum = unmarshalFile(DefaultGeodeticDatum.class, XML_FILE);
         assertIsWGS84(datum, true);
         /*
@@ -241,5 +247,40 @@ public final strictfp class DefaultGeode
                 datum.getRealizationEpoch());
         assertEquals("remarks", "Defining parameters cited in EPSG database.",
                 datum.getEllipsoid().getRemarks().toString());
+        return datum;
+    }
+
+    /**
+     * Tests the WKT formatting of the datum created by {@link #testUnmarshalling()}.
+     *
+     * @throws JAXBException If an error occurred during unmarshalling.
+     */
+    @Test
+    @DependsOnMethod("testToWKT")
+    public void testUnmarshalledWKT() throws JAXBException {
+        final DefaultGeodeticDatum datum = testUnmarshalling();
+        assertWktEquals(Convention.WKT1,
+                "DATUM[“World Geodetic System 1984”,\n" +
+                "  SPHEROID[“WGS 84”, 6378137.0, 298.257223563],\n" +
+                "  AUTHORITY[“EPSG”, “6326”]]",
+                datum);
+
+        assertWktEquals(Convention.WKT2,
+                "Datum[“World Geodetic System 1984”,\n" +
+                "  Ellipsoid[“WGS 84”, 6378137.0, 298.257223563, LengthUnit[“metre”, 1]],\n" +
+                "  Id[“EPSG”, 6326, Citation[“OGP”], URI[“urn:ogc:def:datum:EPSG::6326”]]]",
+                datum);
+
+        assertWktEquals(Convention.INTERNAL,
+                "Datum[“World Geodetic System 1984”,\n" +
+                "  Ellipsoid[“WGS 84”, 6378137.0, 298.257223563, Id[“EPSG”, 7030, Citation[“OGP”]],\n" +
+                "    Remarks[“Defining parameters cited in EPSG database.”]],\n" +
+                "  Anchor[“Station coordinates changed by a few centimetres in 1994, 1997, 2002 and 2012.”],\n" +
+                "  Scope[“Satellite navigation.”],\n" +
+                "  Area[“World.”],\n" +
+                "  BBox[-90.00, -180.00, 90.00, 180.00],\n" +
+                "  Id[“EPSG”, 6326, Citation[“OGP”]],\n" +
+                "  Remarks[“No distinction between the original and subsequent WGS 84 frames.”]]",
+                datum);
     }
 }



Mime
View raw message