Author: desruisseaux
Date: Tue Jan 21 15:51:00 2014
New Revision: 1560046

URL: http://svn.apache.org/r1560046
Log:
Provide Extent information for world-wide CRS.

Modified:
    
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/StandardDefinitions.java
    
sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectsTest.java

Modified: 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/StandardDefinitions.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/StandardDefinitions.java?rev=1560046&r1=1560045&r2=1560046&view=diff
==============================================================================
--- 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/StandardDefinitions.java
 [UTF-8] (original)
+++ 
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/StandardDefinitions.java
 [UTF-8] Tue Jan 21 15:51:00 2014
@@ -34,6 +34,7 @@ import org.opengis.referencing.cs.Coordi
 import org.opengis.referencing.cs.EllipsoidalCS;
 import org.opengis.referencing.crs.GeographicCRS;
 import org.opengis.referencing.crs.VerticalCRS;
+import org.apache.sis.metadata.iso.extent.Extents;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.referencing.datum.DefaultEllipsoid;
 import org.apache.sis.referencing.datum.DefaultPrimeMeridian;
@@ -50,6 +51,7 @@ import org.apache.sis.measure.Latitude;
 import static org.opengis.referencing.IdentifiedObject.NAME_KEY;
 import static org.opengis.referencing.IdentifiedObject.ALIAS_KEY;
 import static org.opengis.referencing.IdentifiedObject.IDENTIFIERS_KEY;
+import static org.opengis.referencing.datum.Datum.DOMAIN_OF_VALIDITY_KEY;
 import static 
org.apache.sis.internal.metadata.ReferencingServices.AUTHALIC_RADIUS;
 
 
@@ -80,13 +82,17 @@ final class StandardDefinitions {
      * @param  code  The EPSG code.
      * @param  name  The object name.
      * @param  alias The alias, or {@code null} if none.
+     * @param  world {@code true} if the properties shall have an entry for 
the domain of validity.
      * @return The map of properties to give to constructors or factory 
methods.
      */
-    private static Map<String,Object> properties(final short code, final 
String name, final String alias) {
+    private static Map<String,Object> properties(final short code, final 
String name, final String alias, final boolean world) {
         final Map<String,Object> map = new HashMap<>(8);
         map.put(IDENTIFIERS_KEY, new NamedIdentifier(Citations.EPSG, 
String.valueOf(code)));
         map.put(NAME_KEY, new NamedIdentifier(Citations.EPSG, name));
         map.put(ALIAS_KEY, alias); // May be null, which is okay.
+        if (world) {
+            map.put(DOMAIN_OF_VALIDITY_KEY, Extents.WORLD);
+        }
         return map;
     }
 
@@ -101,17 +107,18 @@ final class StandardDefinitions {
     static GeographicCRS createGeographicCRS(final short code, final 
GeodeticDatum datum, final EllipsoidalCS cs) {
         final String name;
         String alias = null;
+        boolean world = false;
         switch (code) {
-            case 4326: name = "WGS 84"; break;
-            case 4322: name = "WGS 72"; break;
+            case 4326: name = "WGS 84"; world = true; break;
+            case 4322: name = "WGS 72"; world = true; break;
             case 4258: name = "ETRS89"; alias = "ETRS89-GRS80"; break;
-            case 4269: name = "NAD83"; break;
-            case 4267: name = "NAD27"; break;
-            case 4230: name = "ED50"; break;
-            case 4047: name = "Unspecified datum based upon the GRS 1980 
Authalic Sphere"; break;
+            case 4269: name = "NAD83";  break;
+            case 4267: name = "NAD27";  break;
+            case 4230: name = "ED50";   break;
+            case 4047: name = "Unspecified datum based upon the GRS 1980 
Authalic Sphere"; world = true; break;
             default:   throw new AssertionError(code);
         }
-        return new DefaultGeographicCRS(properties(code, name, alias), datum, 
cs);
+        return new DefaultGeographicCRS(properties(code, name, alias, world), 
datum, cs);
     }
 
     /**
@@ -125,17 +132,18 @@ final class StandardDefinitions {
     static GeodeticDatum createGeodeticDatum(final short code, final Ellipsoid 
ellipsoid, final PrimeMeridian meridian) {
         final String name;
         final String alias;
+        boolean world = false;
         switch (code) {
-            case 6326: name = "World Geodetic System 1984";                    
    alias = "WGS 84"; break;
-            case 6322: name = "World Geodetic System 1972";                    
    alias = "WGS 72"; break;
-            case 6258: name = "European Terrestrial Reference System 1989";    
    alias = "ETRS89"; break;
-            case 6269: name = "North American Datum 1983";                     
    alias = "NAD83";  break;
-            case 6267: name = "North American Datum 1927";                     
    alias = "NAD27";  break;
-            case 6230: name = "European Datum 1950";                           
    alias = "ED50";   break;
-            case 6047: name = "Not specified (based on GRS 1980 Authalic 
Sphere)"; alias = null;     break;
+            case 6326: name = "World Geodetic System 1984";                    
    alias = "WGS 84"; world = true; break;
+            case 6322: name = "World Geodetic System 1972";                    
    alias = "WGS 72"; world = true; break;
+            case 6258: name = "European Terrestrial Reference System 1989";    
    alias = "ETRS89";               break;
+            case 6269: name = "North American Datum 1983";                     
    alias = "NAD83";                break;
+            case 6267: name = "North American Datum 1927";                     
    alias = "NAD27";                break;
+            case 6230: name = "European Datum 1950";                           
    alias = "ED50";                 break;
+            case 6047: name = "Not specified (based on GRS 1980 Authalic 
Sphere)"; alias = null;     world = true; break;
             default:   throw new AssertionError(code);
         }
-        return new DefaultGeodeticDatum(properties(code, name, alias), 
ellipsoid, meridian);
+        return new DefaultGeodeticDatum(properties(code, name, alias, world), 
ellipsoid, meridian);
     }
 
     /**
@@ -160,7 +168,7 @@ final class StandardDefinitions {
             case 7048: name  = "GRS 1980 Authalic Sphere"; ivfDefinitive = 
false;  semiMajorAxis = other = AUTHALIC_RADIUS;          break;
             default:   throw new AssertionError(code);
         }
-        final Map<String,Object> map = properties(code, name, alias);
+        final Map<String,Object> map = properties(code, name, alias, false);
         if (ivfDefinitive) {
             return DefaultEllipsoid.createFlattenedSphere(map, semiMajorAxis, 
other, unit);
         } else {
@@ -194,8 +202,8 @@ final class StandardDefinitions {
             case 5715: name = "MSL depth";  alias = "mean sea level depth";  
cs = "Vertical CS. Axis: depth (D).";  c = 6498; axis = 113; break;
             default:   throw new AssertionError(code);
         }
-        return new DefaultVerticalCRS(properties(code, name, alias), datum,
-                new DefaultVerticalCS(properties(c, cs, null), 
createAxis(axis)));
+        return new DefaultVerticalCRS(properties(code, name, alias, true), 
datum,
+                new DefaultVerticalCS(properties(c, cs, null, false), 
createAxis(axis)));
     }
 
     /**
@@ -211,7 +219,7 @@ final class StandardDefinitions {
             case 5100: name = "Mean Sea Level"; alias = "MSL"; break;
             default:   throw new AssertionError(code);
         }
-        return new DefaultVerticalDatum(properties(code, name, alias), 
VerticalDatumType.GEOIDAL);
+        return new DefaultVerticalDatum(properties(code, name, alias, true), 
VerticalDatumType.GEOIDAL);
     }
 
     /**
@@ -230,7 +238,7 @@ final class StandardDefinitions {
             case 6423: name = "Ellipsoidal 3D"; xc = 108; yc = 109; zc = 110; 
break;
             default:   throw new AssertionError(code);
         }
-        final Map<String,?> properties = properties(code, name, null);
+        final Map<String,?> properties = properties(code, name, null, false);
         final CoordinateSystemAxis xAxis = createAxis(xc);
         final CoordinateSystemAxis yAxis = createAxis(yc);
         if (zc != 0) {
@@ -287,6 +295,6 @@ final class StandardDefinitions {
                        break;
             default:   throw new AssertionError(code);
         }
-        return new DefaultCoordinateSystemAxis(properties(code, name, null), 
abrv, dir, unit, min, max, rm);
+        return new DefaultCoordinateSystemAxis(properties(code, name, null, 
false), abrv, dir, unit, min, max, rm);
     }
 }

Modified: 
sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectsTest.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectsTest.java?rev=1560046&r1=1560045&r2=1560046&view=diff
==============================================================================
--- 
sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectsTest.java
 [UTF-8] (original)
+++ 
sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectsTest.java
 [UTF-8] Tue Jan 21 15:51:00 2014
@@ -60,7 +60,7 @@ public final strictfp class GeodeticObje
     public void testWGS84() {
         final GeographicCRS geographic = GeodeticObjects.WGS84.geographic();
         Validators.validate(geographic);
-        GeodeticObjectVerifier.assertIsWGS84(geographic, false, true);
+        GeodeticObjectVerifier.assertIsWGS84(geographic, true, true);
         assertSame("Cached value", geographic, 
GeodeticObjects.WGS84.geographic());
         /*
          * Verifies the variant using (longitude, latitude) axis order.


Reply via email to