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(':');