You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2013/07/30 15:46:15 UTC

svn commit: r1508436 - in /sis/branches/JDK7: application/sis-webapp/src/main/java/org/apache/sis/services/ core/sis-referencing/src/main/java/org/apache/sis/core/ core/sis-referencing/src/test/java/org/apache/sis/core/ storage/sis-storage/src/main/jav...

Author: desruisseaux
Date: Tue Jul 30 13:46:14 2013
New Revision: 1508436

URL: http://svn.apache.org/r1508436
Log:
First round of removal of classes to be replaced by ISO objects:
- Removed LatLonRect
- Replaced some LatLon usage by DirectPosition2D.

Removed:
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/core/LatLonRect.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/core/TestLatLonRect.java
Modified:
    sis/branches/JDK7/application/sis-webapp/src/main/java/org/apache/sis/services/LocationServlet.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/core/LatLonPointRadius.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/core/TestLatLonPointRadius.java
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTree.java
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeData.java
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeWriter.java

Modified: sis/branches/JDK7/application/sis-webapp/src/main/java/org/apache/sis/services/LocationServlet.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/application/sis-webapp/src/main/java/org/apache/sis/services/LocationServlet.java?rev=1508436&r1=1508435&r2=1508436&view=diff
==============================================================================
--- sis/branches/JDK7/application/sis-webapp/src/main/java/org/apache/sis/services/LocationServlet.java [UTF-8] (original)
+++ sis/branches/JDK7/application/sis-webapp/src/main/java/org/apache/sis/services/LocationServlet.java [UTF-8] Tue Jul 30 13:46:14 2013
@@ -53,7 +53,7 @@ import org.xml.sax.SAXException;
 
 //SIS imports
 import org.apache.sis.core.LatLon;
-import org.apache.sis.core.LatLonRect;
+import org.apache.sis.geometry.Envelope2D;
 import org.apache.sis.distance.DistanceUtils;
 import org.apache.sis.index.tree.GeoRSSData;
 import org.apache.sis.index.tree.QuadTree;
@@ -264,7 +264,7 @@ public class LocationServlet extends Htt
 
       if (llLat != null && llLon != null && urLat != null && urLon != null) {
         try {
-          LatLonRect bbox = new LatLonRect(new LatLon(
+          Envelope2D bbox = new Envelope2D(new LatLon(
               Double.parseDouble(llLat), Double.parseDouble(llLon)),
               new LatLon(Double.parseDouble(urLat), Double.parseDouble(urLon)));
 
@@ -272,18 +272,14 @@ public class LocationServlet extends Htt
           results = tree.queryByBoundingBox(bbox);
           afterTime = System.currentTimeMillis();
           // get the polygon that approximates the region
-          Rectangle2D[] rects = bbox.getJavaRectangles();
+          Rectangle2D[] rects = bbox.toRectangles();
           for (int i = 0; i < rects.length; i++) {
-            String regionStr = (rects[i].getMinY() - 90) + ","
-                + (rects[i].getMinX() - 180) + ",";
-            regionStr += (rects[i].getMaxY() - 90) + ","
-                + (rects[i].getMinX() - 180) + ",";
-            regionStr += (rects[i].getMaxY() - 90) + ","
-                + (rects[i].getMaxX() - 180) + ",";
-            regionStr += (rects[i].getMinY() - 90) + ","
-                + (rects[i].getMaxX() - 180) + ",";
-            regionStr += (rects[i].getMinY() - 90) + ","
-                + (rects[i].getMinX() - 180);
+            final Rectangle2D r = rects[i];
+            String regionStr = (r.getMinY()) + "," + (r.getMinX()) + ",";
+            regionStr += (r.getMaxY()) + "," + (r.getMinX()) + ",";
+            regionStr += (r.getMaxY()) + "," + (r.getMaxX()) + ",";
+            regionStr += (r.getMinY()) + "," + (r.getMaxX()) + ",";
+            regionStr += (r.getMinY()) + "," + (r.getMinX());
             regions.add(regionStr);
           }
         } catch (NumberFormatException ex) {
@@ -414,14 +410,12 @@ public class LocationServlet extends Htt
         item.appendChild(id);
 
         Element lat = doc.createElement("lat");
-        Text latText = doc.createTextNode(Double.toString(geo.getLatLon()
-            .getLat()));
+        Text latText = doc.createTextNode(Double.toString(geo.getLatLon().y));
         lat.appendChild(latText);
         item.appendChild(lat);
 
         Element lon = doc.createElement("lon");
-        Text lonText = doc.createTextNode(Double.toString(geo.getLatLon()
-            .getLon()));
+        Text lonText = doc.createTextNode(Double.toString(geo.getLatLon().x));
         lon.appendChild(lonText);
         item.appendChild(lon);
 

Modified: sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/core/LatLonPointRadius.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/core/LatLonPointRadius.java?rev=1508436&r1=1508435&r2=1508436&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/core/LatLonPointRadius.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/core/LatLonPointRadius.java [UTF-8] Tue Jul 30 13:46:14 2013
@@ -24,6 +24,7 @@ import java.awt.geom.Rectangle2D;
 
 //SIS imports
 import org.apache.sis.distance.DistanceUtils;
+import org.apache.sis.geometry.DirectPosition2D;
 import org.apache.sis.geometry.GeneralDirectPosition;
 
 /**
@@ -43,7 +44,7 @@ public class LatLonPointRadius extends G
    * @param radius
    *          the radius of the search region
    */
-  public LatLonPointRadius(LatLon center, double radius) {
+  public LatLonPointRadius(DirectPosition2D center, double radius) {
     super(center.x, center.y, radius);
   }
 
@@ -53,21 +54,21 @@ public class LatLonPointRadius extends G
    *
    * @param numberOfPoints
    *          the number of points used to estimate the circular region
-   * @return an array of LatLon representing the points that estimate the
+   * @return an array of DirectPosition2D representing the points that estimate the
    *         circular region
    */
-  public LatLon[] getCircularRegionApproximation(int numberOfPoints) {
+  public DirectPosition2D[] getCircularRegionApproximation(int numberOfPoints) {
     if (super.getOrdinate(2) >= DistanceUtils.HALF_EARTH_CIRCUMFERENCE) {
-      LatLon[] points = new LatLon[5];
-      points[0] = new LatLon(-90.0, -180.0);
-      points[1] = new LatLon(90.0, -180.0);
-      points[2] = new LatLon(90.0, 180.0);
-      points[3] = new LatLon(-90.0, 180.0);
+      DirectPosition2D[] points = new DirectPosition2D[5];
+      points[0] = new DirectPosition2D(-180.0, -90.0);
+      points[1] = new DirectPosition2D(-180.0, 90.0);
+      points[2] = new DirectPosition2D(180.0, 90.0);
+      points[3] = new DirectPosition2D(180.0, -90.0);
       points[4] = points[0];
       return points;
     }
     // plus one to add closing point
-    LatLon[] points = new LatLon[numberOfPoints + 1];
+    DirectPosition2D[] points = new DirectPosition2D[numberOfPoints + 1];
 
     double bearingIncrement = 0;
     if (numberOfPoints > 0) { bearingIncrement = 360/numberOfPoints; }

Modified: sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/core/TestLatLonPointRadius.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/core/TestLatLonPointRadius.java?rev=1508436&r1=1508435&r2=1508436&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/core/TestLatLonPointRadius.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/core/TestLatLonPointRadius.java [UTF-8] Tue Jul 30 13:46:14 2013
@@ -22,6 +22,9 @@ import junit.framework.TestCase;
 //JDK imports
 import java.awt.geom.Rectangle2D;
 
+//SIS imports
+import org.apache.sis.geometry.DirectPosition2D;
+
 /**
  * Tests methods from the {@link LatLonPointRadius} class.
  *
@@ -36,7 +39,7 @@ public class TestLatLonPointRadius exten
    */
   public void testCreateLatLonPointRadius()
   {
-    LatLonPointRadius region = new LatLonPointRadius(new LatLon(0.0, 0.0), 100.0);
+    LatLonPointRadius region = new LatLonPointRadius(new DirectPosition2D(0.0, 0.0), 100.0);
     assertNotNull(region);
   }
 
@@ -45,22 +48,22 @@ public class TestLatLonPointRadius exten
    */
   public void testGetCircularRegionApproximation()
   {
-    LatLonPointRadius pr1 = new LatLonPointRadius(new LatLon(0.0, 0.0), 25000.0);
-    LatLon pts1[] = pr1.getCircularRegionApproximation(10);
+    LatLonPointRadius pr1 = new LatLonPointRadius(new DirectPosition2D(0.0, 0.0), 25000.0);
+    DirectPosition2D pts1[] = pr1.getCircularRegionApproximation(10);
     assertEquals(5, pts1.length);
-    assertEquals(-90.0, pts1[0].getLat(), EPSILON);
-    assertEquals(-180.0, pts1[0].getLon(), EPSILON);
-    assertEquals(90.0, pts1[1].getLat(), EPSILON);
-    assertEquals(-180.0, pts1[1].getLon(), EPSILON);
-    assertEquals(90.0, pts1[2].getLat(), EPSILON);
-    assertEquals(180.0, pts1[2].getLon(), EPSILON);
-    assertEquals(-90.0, pts1[3].getLat(), EPSILON);
-    assertEquals(180.0, pts1[3].getLon(), EPSILON);
-    assertEquals(-90.0, pts1[4].getLat(), EPSILON);
-    assertEquals(-180.0, pts1[4].getLon(), EPSILON);
+    assertEquals(-90.0, pts1[0].y, EPSILON);
+    assertEquals(-180.0, pts1[0].x, EPSILON);
+    assertEquals(90.0, pts1[1].y, EPSILON);
+    assertEquals(-180.0, pts1[1].x, EPSILON);
+    assertEquals(90.0, pts1[2].y, EPSILON);
+    assertEquals(180.0, pts1[2].x, EPSILON);
+    assertEquals(-90.0, pts1[3].y, EPSILON);
+    assertEquals(180.0, pts1[3].x, EPSILON);
+    assertEquals(-90.0, pts1[4].y, EPSILON);
+    assertEquals(-180.0, pts1[4].x, EPSILON);
 
-    LatLonPointRadius pr2 = new LatLonPointRadius(new LatLon(0.0, 0.0), 1000.0);
-    LatLon pts2[] = pr2.getCircularRegionApproximation(6);
+    LatLonPointRadius pr2 = new LatLonPointRadius(new DirectPosition2D(0.0, 0.0), 1000.0);
+    DirectPosition2D pts2[] = pr2.getCircularRegionApproximation(6);
     assertEquals(7, pts2.length);
   }
 
@@ -69,7 +72,7 @@ public class TestLatLonPointRadius exten
    */
   public void testGetRectangularRegionApproximation()
   {
-    LatLonPointRadius pr1 = new LatLonPointRadius(new LatLon(0.0, 0.0), 25000.0);
+    LatLonPointRadius pr1 = new LatLonPointRadius(new DirectPosition2D(0.0, 0.0), 25000.0);
     Rectangle2D r1 = pr1.getRectangularRegionApproximation(10);
     assertEquals(0.0, r1.getX(), EPSILON);
     assertEquals(0.0, r1.getY(), EPSILON);

Modified: sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTree.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTree.java?rev=1508436&r1=1508435&r2=1508436&view=diff
==============================================================================
--- sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTree.java [UTF-8] (original)
+++ sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTree.java [UTF-8] Tue Jul 30 13:46:14 2013
@@ -25,7 +25,7 @@ import java.util.List;
 //SIS imports
 import org.apache.sis.core.LatLon;
 import org.apache.sis.core.LatLonPointRadius;
-import org.apache.sis.core.LatLonRect;
+import org.apache.sis.geometry.Envelope2D;
 import org.apache.sis.distance.DistanceUtils;
 
 /**
@@ -358,8 +358,8 @@ public class QuadTree {
       else {
         QuadTreeData[] data = node.getData();
         for (int i = 0; i < node.getCount(); i++) {
-          if (DistanceUtils.getHaversineDistance(data[i].getLatLon().getLat(), data[i]
-              .getLatLon().getLon(), point.getLat(), point.getLon()) <= radiusKM) {
+          if (DistanceUtils.getHaversineDistance(data[i].getLatLon().y, data[i]
+              .getLatLon().x, point.getLat(), point.getLon()) <= radiusKM) {
             matches.add(data[i]);
           }
         }
@@ -417,12 +417,16 @@ public class QuadTree {
    * Performs bounding box search.
    *
    * @param searchRegion
-   *          LatLonRect representing the rectangular search region
+   *          Envelope representing the rectangular search region
    * @return a list of QuadTreeData that are within the given radius from the
    *         point
    */
-  public List<QuadTreeData> queryByBoundingBox(final LatLonRect searchRegion) {
-    Rectangle2D rectArray[] = searchRegion.getJavaRectangles();
+  public List<QuadTreeData> queryByBoundingBox(final Envelope2D searchRegion) {
+    Rectangle2D.Double rectArray[] = searchRegion.toRectangles();
+    for (final Rectangle2D.Double r : rectArray) {
+        r.x += 180;
+        r.y += 90;
+    }
     if (rectArray.length == 1) {
       // traverse tree once because region does not cross dateline
       return queryByBoundingBox(rectArray[0]);

Modified: sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeData.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeData.java?rev=1508436&r1=1508435&r2=1508436&view=diff
==============================================================================
--- sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeData.java [UTF-8] (original)
+++ sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeData.java [UTF-8] Tue Jul 30 13:46:14 2013
@@ -18,7 +18,7 @@
 package org.apache.sis.index.tree;
 
 //SIS imports
-import org.apache.sis.core.LatLon;
+import org.apache.sis.geometry.DirectPosition2D;
 
 /**
  * Interface representing data stored in quad tree. All data to be stored in
@@ -46,7 +46,7 @@ public interface QuadTreeData {
    *
    * @return the latitude/longitude pair.
    */
-  public LatLon getLatLon();
+  public DirectPosition2D getLatLon();
 
   /**
    * Returns the name of the file where the entry's info is saved.

Modified: sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeWriter.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeWriter.java?rev=1508436&r1=1508435&r2=1508436&view=diff
==============================================================================
--- sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeWriter.java [UTF-8] (original)
+++ sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeWriter.java [UTF-8] Tue Jul 30 13:46:14 2013
@@ -166,9 +166,9 @@ public class QuadTreeWriter {
     str.append(':');
     QuadTreeData[] data = node.getData();
     for (int i = 0; i < node.getCount(); i++) {
-      str.append(data[i].getLatLon().getLat());
+      str.append(data[i].getLatLon().y);
       str.append(';');
-      str.append(data[i].getLatLon().getLon());
+      str.append(data[i].getLatLon().x);
       str.append(';');
       str.append(data[i].getFileName());
       str.append(':');