This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 3b73a0822347463daabf29601853dca249ad238a
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Fri Jan 10 14:33:53 2020 +0100

    Add axis names for extra-terrestial planets.
---
 .../org/apache/sis/internal/metadata/AxisNames.java   | 19 ++++++++++++++++++-
 .../java/org/apache/sis/io/wkt/Transliterator.java    | 14 +++++++++++---
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
index cebcfe2..2adcf16 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
@@ -25,9 +25,10 @@ import org.apache.sis.internal.system.Modules;
 
 /**
  * Constants for axis names specified by ISO 19111 and ISO 19162.
+ * Contains also some extensions used in astronomy.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.0
+ * @version 1.1
  * @since   0.6
  * @module
  */
@@ -53,11 +54,24 @@ public final class AxisNames {
     public static final String GEODETIC_LATITUDE = "Geodetic latitude";
 
     /**
+     * The <cite>"planetodetic longitude"</cite> name used in astronomy.
+     */
+    public static final String PLANETODETIC_LONGITUDE = "Planetodetic 
longitude";
+
+    /**
+     * The <cite>"planetodetic latitude"</cite> name used in astronomy.
+     */
+    public static final String PLANETODETIC_LATITUDE = "Planetodetic latitude";
+
+    /**
      * The ISO 19111 <cite>"spherical longitude"</cite> name, also called 
<cite>"azimuthal angle"</cite>.
      * Abbreviation used by SIS is "θ" (theta) for consistency with ISO 19111 
and ISO 19162
      * <cite>Axis name and abbreviation</cite> section, but some other 
conventions use φ or Ω instead.
      * Direction in the EPSG database is "East", but "counterClockwise" may 
also be used.
      *
+     * <p>Axis name <cite>"Geocentric longitude"</cite> can also be used.
+     * In astronomy, <cite>"Planetocentric longitude"</cite> is sometime 
used.</p>
+     *
      * @see <a 
href="http://en.wikipedia.org/wiki/Spherical_coordinate_system";>Spherical 
coordinate system on Wikipedia</a>
      * @see <a 
href="http://mathworld.wolfram.com/SphericalCoordinates.html";>Spherical 
coordinate system on MathWorld</a>
      */
@@ -69,6 +83,9 @@ public final class AxisNames {
      * <cite>Axis name and abbreviation</cite> section, but some other 
conventions use θ, Ω or Ψ instead.
      * Direction in the EPSG database is "North", but the "Up" direction may 
also be used with a similar
      * axis named "elevation".
+     *
+     * <p>Axis name <cite>"Geocentric latitude"</cite> can also be used.
+     * In astronomy, <cite>"Planetocentric latitude"</cite> is sometime 
used.</p>
      */
     public static final String SPHERICAL_LATITUDE = "Spherical latitude";
 
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Transliterator.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Transliterator.java
index 2b197a9..79073ac 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Transliterator.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Transliterator.java
@@ -89,7 +89,7 @@ import org.apache.sis.util.Characters;
  * methods are responsible for doing the transliteration at formatting and 
parsing time, respectively.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.0
+ * @version 1.1
  *
  * @see org.apache.sis.util.Characters#isValidWKT(int)
  * @see <a 
href="http://docs.opengeospatial.org/is/12-063r5/12-063r5.html#39";>WKT 2 
specification §7.5.3</a>
@@ -217,8 +217,16 @@ public abstract class Transliterator implements 
Serializable {
      * @see 
org.apache.sis.referencing.cs.DefaultCoordinateSystemAxis#formatTo(Formatter)
      */
     public String toShortAxisName(final CoordinateSystem cs, final 
AxisDirection direction, final String name) {
-        if (name.equalsIgnoreCase(AxisNames.GEODETIC_LATITUDE )) return 
AxisNames.LATITUDE;  // ISO 19162:2015 §7.5.3(ii)
-        if (name.equalsIgnoreCase(AxisNames.GEODETIC_LONGITUDE)) return 
AxisNames.LONGITUDE;
+        if (name.equalsIgnoreCase(AxisNames.GEODETIC_LATITUDE) ||              
 // ISO 19162:2015 §7.5.3(ii)
+            name.equalsIgnoreCase(AxisNames.PLANETODETIC_LATITUDE))
+        {
+            return AxisNames.LATITUDE;
+        }
+        if (name.equalsIgnoreCase(AxisNames.GEODETIC_LONGITUDE) ||
+            name.equalsIgnoreCase(AxisNames.PLANETODETIC_LONGITUDE))
+        {
+            return AxisNames.LONGITUDE;
+        }
         if (AxisDirections.isGeocentric(direction) && 
CharSequences.equalsFiltered(
                 name, direction.name(), Characters.Filter.LETTERS_AND_DIGITS, 
true))
         {

Reply via email to