You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2011/09/14 18:53:04 UTC
svn commit: r1170709 - in /labs/magma/trunk/beans-map: pom.xml
src/main/java/org/apache/magma/beans/MapCoordinate.java
src/main/java/org/apache/magma/beans/MapShape.java
Author: simoneg
Date: Wed Sep 14 16:53:04 2011
New Revision: 1170709
URL: http://svn.apache.org/viewvc?rev=1170709&view=rev
Log:
Added some basic shape geometry calcs
Modified:
labs/magma/trunk/beans-map/pom.xml
labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapCoordinate.java
labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapShape.java
Modified: labs/magma/trunk/beans-map/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/beans-map/pom.xml?rev=1170709&r1=1170708&r2=1170709&view=diff
==============================================================================
--- labs/magma/trunk/beans-map/pom.xml (original)
+++ labs/magma/trunk/beans-map/pom.xml Wed Sep 14 16:53:04 2011
@@ -21,5 +21,10 @@
<artifactId>foundation-validation</artifactId>
<version>0.0.3-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.9</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapCoordinate.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapCoordinate.java?rev=1170709&r1=1170708&r2=1170709&view=diff
==============================================================================
--- labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapCoordinate.java (original)
+++ labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapCoordinate.java Wed Sep 14 16:53:04 2011
@@ -27,4 +27,16 @@ public class MapCoordinate {
return Float.toString(this.latitude) + "," + Float.toString(this.longitude);
}
+ public double getRadLongitude() {
+ return toRad(getLongitude());
+ }
+
+ public double getRadLatitude() {
+ return toRad(getLatitude());
+ }
+
+ private double toRad(float degrees) {
+ return degrees * Math.PI / 180d;
+ }
+
}
Modified: labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapShape.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapShape.java?rev=1170709&r1=1170708&r2=1170709&view=diff
==============================================================================
--- labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapShape.java (original)
+++ labs/magma/trunk/beans-map/src/main/java/org/apache/magma/beans/MapShape.java Wed Sep 14 16:53:04 2011
@@ -13,6 +13,7 @@ public class MapShape {
private String type;
private List<MapCoordinate> coordinates = new ArrayList<MapCoordinate>();
+ private List<MapSegment> segments = null;
private String extra;
public String getType() {
@@ -41,6 +42,7 @@ public class MapShape {
this.extra = extra;
}
public void parse(String shapestr) {
+ this.segments = null;
this.coordinates.clear();
String[] parts = shapestr.split("\\!");
this.type = parts[0];
@@ -78,7 +80,46 @@ public class MapShape {
return ret.toString();
}
+
+ public synchronized List<MapSegment> getSegments() {
+ if (segments != null) return segments;
+
+ segments = new ArrayList<MapSegment>();
+ MapCoordinate pre = null;
+ for (MapCoordinate coord : getCoordinates()) {
+ if (pre != null) {
+ MapSegment seg = new MapSegment(pre, coord);
+ segments.add(seg);
+ }
+ pre = coord;
+ }
+
+ return segments;
+ }
+ public MapCoordinate findPointAt(double meters) {
+ List<MapSegment> segs = getSegments();
+
+ for (MapSegment seg : segs) {
+ double dist = seg.getDistance();
+ if (meters > dist) {
+ meters -= dist;
+ } else {
+ return seg.findPointAt(meters);
+ }
+ }
+
+ return null;
+ }
+ public double getDistance() {
+ double ret = 0;
+ List<MapSegment> segs = getSegments();
+ for (MapSegment seg : segs) {
+ double dist = seg.getDistance();
+ ret += dist;
+ }
+ return ret;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org