Author: desruisseaux
Date: Thu Jan  9 21:03:37 2014
New Revision: 1556950

URL: http://svn.apache.org/r1556950
Log:
Initial proposal of an AxesConvention enumeration.

Added:
    
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
   (with props)

Added: 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java?rev=1556950&view=auto
==============================================================================
--- 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
 (added)
+++ 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
 [UTF-8] Thu Jan  9 21:03:37 2014
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.referencing.cs;
+
+import org.opengis.referencing.cs.AxisDirection; // For javadoc
+
+
+/**
+ * High-level characteristics about the axes of an ellipsoidal coordinate 
system.
+ * This enumeration provides a convenient way to identify some common axes 
conventions like
+ * (<var>latitude</var>, <var>longitude</var>) versus (<var>longitude</var>, 
<var>latitude</var>) order,
+ * or [-180 … +180]° versus [0 … 360]° longitude range.
+ *
+ * <p>Enumeration values are inferred from the properties of given {@link 
EllipsoidalCS} instances.
+ * This enumeration does not add new information and does not aim to cover all 
possible conventions – it is
+ * only a convenience for identifying some common patterns.</p>
+ *
+ * {@section Range of longitude values}
+ * This enumeration provides a way to specify whether the range of longitude 
values is expected to be positive
+ * (typically [0 … 360]°) or if the range mixes positive and negative values 
(typically [-180 … +180]°).
+ * This information usually has no impact on coordinate transformations. 
However, they have an impact on
+ * methods that verify the <cite>domain of validity</cite>, for example
+ * {@link org.apache.sis.geometry.GeneralEnvelope#normalize()}.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.4 (derived from geotk-3.20)
+ * @version 0.4
+ * @module
+ */
+public enum AxesConvention {
+    /**
+     * Axis order and ranges are as specified by the authority. For 
ellipsoidal coordinate systems defined by
+     * EPSG database, this is often - but not always - (<var>latitude</var>, 
<var>longitude</var>) axis order
+     * with longitude values in the [-180 … +180]° range.
+     */
+    AS_SPECIFIED,
+
+    /**
+     * Axes are reordered for a <cite>right-handed</cite> coordinate system. 
Axis orientations and ranges are unchanged.
+     * This enum is often used for deriving a coordinate system with the 
(<var>longitude</var>, <var>latitude</var>)
+     * or (<var>x</var>, <var>y</var>) axis order, but actually does not 
guarantee that longitude or <var>x</var> will
+     * be first as in the (South, East) example below. Note that the 
"<var>x</var> first" criterion has no meaning for
+     * map projections having their origin on a pole, while the right-handed 
rule applies everywhere.
+     *
+     * {@example The following table lists some axis orientations in the first 
column, and
+     *           how those axes are reordered in a right-handed coordinate 
system (second column):
+     * <ul>
+     *   <table>
+     *     <tr><th>Left-handed</th>   <th>Right-handed</th>  
<th>Remarks</th></tr>
+     *     <tr><td>(North, East)</td> <td>(East, North)</td> <td>This is the 
most common case.</td></tr>
+     *     <tr><td>(East, South)</td> <td>(South, East)</td> <td>This 
right-handed system has latitude first.</td></tr>
+     *     <tr><td>(South, West)</td> <td>(West, South)</td> <td>Used for the 
mapping of southern Africa.</td></tr>
+     *     <tr><td>(South along 0°,<br>South along 90° West)</td>
+     *         <td>(South along 90° West,<br>South along 0°)</td> <td>Can be 
used for the mapping of North pole.</td></tr>
+     *   </table>
+     * </ul>}
+     *
+     * @see 
org.apache.sis.referencing.cs.CoordinateSystems#angle(AxisDirection, 
AxisDirection)
+     */
+    RIGHT_HANDED,
+
+    /**
+     * Axes having a <cite>wraparound</cite> range meaning are shifted to 
their ranges of positive values.
+     * The unit and range period are unchanged.
+     *
+     * <p>The most frequent usage of this enum is for shifting longitude 
values from [-180 … +180]° to the [0 … 360]°
+     * range. However this enum could also be used with climatological 
calendars if their time axis has a wrapround
+     * range meaning.</p>
+     *
+     * @see 
org.apache.sis.referencing.cs.DefaultCoordinateSystemAxis#getRangeMeaning()
+     * @see org.opengis.referencing.cs.RangeMeaning#WRAPAROUND
+     */
+    POSITIVE_RANGE
+}

Propchange: 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8


Reply via email to