From: erik Date: Thu, 3 Aug 2006 18:45:13 +0000 (+0000) Subject: (no commit message) X-Git-Tag: BEFORE_MAVEN_MIGRATION~55 X-Git-Url: http://wamblee.org/gitweb/?a=commitdiff_plain;h=69fb7ee2ade0076d7404227d03fb15addcd8c523;p=utils --- diff --git a/gps/src/org/wamblee/gps/coordinates/CoordinateSystem.java b/gps/src/org/wamblee/gps/coordinates/CoordinateSystem.java deleted file mode 100644 index e88d4833..00000000 --- a/gps/src/org/wamblee/gps/coordinates/CoordinateSystem.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2006 the original author or authors. - * - * Licensed 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.wamblee.gps.coordinates; - - -/** - * Represents a coordinate system. - */ -public interface CoordinateSystem { - - /** - * Conversion to a reference coordinate system. - * @param aCoordinates Coordinates. - * @return Coordinates in the reference system. - */ - Coordinates toReferenceSystem(Coordinates aCoordinates); -} diff --git a/gps/src/org/wamblee/gps/coordinates/Coordinates.java b/gps/src/org/wamblee/gps/coordinates/Coordinates.java deleted file mode 100644 index b1fc9264..00000000 --- a/gps/src/org/wamblee/gps/coordinates/Coordinates.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2006 the original author or authors. - * - * Licensed 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.wamblee.gps.coordinates; - -/** - * Coordinates in some 3-dimensional coordinate system. - */ -public class Coordinates { - - private double _x1; - private double _x2; - private double _x3; - - /** - * Constructs the coordinates. - * @param aX1 First coordinate. - * @param aX2 Second coordinate. - * @param aX3 Third coordinate. - */ - public Coordinates(double aX1, double aX2, double aX3) { - _x1 = aX1; - _x2 = aX2; - _x3 = aX3; - } - - public double getX1() { - return _x1; - } - - public double getX2() { - return _x2; - } - - public double getX3() { - return _x3; - } -} diff --git a/gps/src/org/wamblee/gps/coordinates/Point.java b/gps/src/org/wamblee/gps/coordinates/Point.java deleted file mode 100644 index 382bb5a5..00000000 --- a/gps/src/org/wamblee/gps/coordinates/Point.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2006 the original author or authors. - * - * Licensed 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.wamblee.gps.coordinates; - - -/** - * Represents a point in some coordinate system. - */ -public class Point { - - private Coordinates _coordinates; - private CoordinateSystem _system; - - /** - * Constructs the point. - * @param aCoordinates Coordinates of the point in its coordinate system. - * @param aSystem Coordinate system. - */ - public Point(Coordinates aCoordinates, CoordinateSystem aSystem) { - _coordinates = aCoordinates; - _system = aSystem; - } - - /** - * Gets the coordinates in the point's coordinate system. - * @return Coordinates. - */ - public Coordinates getCoordinates() { - return _coordinates; - } - - /** - * Gets the coordinate system. - * @return Coordinate system. - */ - public CoordinateSystem getCoordinateSystem() { - return _system; - } - - -} diff --git a/gps/src/org/wamblee/gps/coordinates/ReferenceCoordinateSystem.java b/gps/src/org/wamblee/gps/coordinates/ReferenceCoordinateSystem.java deleted file mode 100644 index f3ed69cb..00000000 --- a/gps/src/org/wamblee/gps/coordinates/ReferenceCoordinateSystem.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2006 the original author or authors. - * - * Licensed 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.wamblee.gps.coordinates; - - -/** - * Reference coordinate system which is the basis for defining metrics. - * This is a Cartesian coordinate system. - */ -public class ReferenceCoordinateSystem implements CoordinateSystem { - - /** - * Constructs the coordinate system. - * - */ - public ReferenceCoordinateSystem() { - // Empty - } - - /* - * (non-Javadoc) - * - * @see org.wamblee.gpx.CoordinateSystem#toReferenceSystem(org.wamblee.gpx.Coordinates) - */ - public Coordinates toReferenceSystem(Coordinates aCoordinates) { - return aCoordinates; - } - - /* - * (non-Javadoc) - * - * @see org.wamblee.gpx.CoordinateSystem#distance(org.wamblee.gpx.Coordinates, - * org.wamblee.gpx.Coordinates) - */ - private static double distance(Coordinates aC1, Coordinates aC2) { - return Math.sqrt(square(aC1.getX1() - aC2.getX1()) - + square(aC1.getX2() - aC2.getX2()) - + square(aC1.getX3() - aC2.getX3())); - } - - private static double square(double x) { - return x * x; - } - - /** - * Computes the distance between two points in arbitrary coordinate systems. - * @param aP1 First point. - * @param aP2 Second point. - * @return Distance. - */ - public static double distance(Point aP1, Point aP2) { - return distance( aP1.getCoordinateSystem().toReferenceSystem(aP1.getCoordinates()), - aP2.getCoordinateSystem().toReferenceSystem(aP2.getCoordinates())); - } - -} diff --git a/gps/src/org/wamblee/gps/coordinates/SphericalCoordinateSystem.java b/gps/src/org/wamblee/gps/coordinates/SphericalCoordinateSystem.java deleted file mode 100644 index 31232302..00000000 --- a/gps/src/org/wamblee/gps/coordinates/SphericalCoordinateSystem.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2006 the original author or authors. - * - * Licensed 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.wamblee.gps.coordinates; - -import static java.lang.Math.PI; -import static java.lang.Math.cos; -import static java.lang.Math.sin; - - -/** - * Represents the coordinate system for a GPS measurement identified by - * - * This coordinate system models the earth as a sphere of a specific radius. - */ -public class SphericalCoordinateSystem implements CoordinateSystem { - /** - * Earth radius in meters. - */ - private static final double EARTH_RADIUS = 6371000; - - - /* (non-Javadoc) - * @see org.wamblee.gpx.CoordinateSystem#toReferenceSystem(org.wamblee.gpx.Coordinates) - */ - public Coordinates toReferenceSystem(Coordinates aCoordinates) { - double latrad = radians(aCoordinates.getX1()); - double lonrad = radians(aCoordinates.getX2()); - double coslat = cos(latrad); - double sinlat = sin(latrad); - double coslon = cos(lonrad); - double sinlon = sin(lonrad); - - double trueElevation = EARTH_RADIUS + aCoordinates.getX3(); - return new Coordinates(trueElevation*coslat*coslon, - trueElevation*coslat*sinlon, - trueElevation*sinlat); - - } - - private double radians(double aDegrees) { - return aDegrees/180.0*PI; - } -} diff --git a/gps/src/org/wamblee/gps/coordinates/Wgs84CoordinateSystem.java b/gps/src/org/wamblee/gps/coordinates/Wgs84CoordinateSystem.java deleted file mode 100644 index 9ccabd87..00000000 --- a/gps/src/org/wamblee/gps/coordinates/Wgs84CoordinateSystem.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2006 the original author or authors. - * - * Licensed 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.wamblee.gps.coordinates; - -import static java.lang.Math.PI; -import static java.lang.Math.cos; -import static java.lang.Math.sin; - - -/** - * Represents the WGS 84 coordinate system for a GPS measurement identified by - * - * WGS84 models the earth as an ellipse. - */ -public class Wgs84CoordinateSystem implements CoordinateSystem { - /* - * Ellipse parameters - */ - - /** - * The radius of the ellipse at the equator - */ - private static final double A = 6378137.000; - - /** - * The distance of the North and South poles to the center of the ellipse. - */ - private static final double B = 6356752.314; - - - /* (non-Javadoc) - * @see org.wamblee.gpx.CoordinateSystem#toReferenceSystem(org.wamblee.gpx.Coordinates) - */ - public Coordinates toReferenceSystem(Coordinates aCoordinates) { - double latrad = radians(aCoordinates.getX1()); - double lonrad = radians(aCoordinates.getX2()); - double coslat = cos(latrad); - double sinlat = sin(latrad); - double coslon = cos(lonrad); - double sinlon = sin(lonrad); - - double r = A*B/Math.sqrt(B*B*coslat*coslat + A*A*sinlat*sinlat) + aCoordinates.getX3(); - - return new Coordinates(r*coslat*coslon, - r*coslat*sinlon, - r*sinlat); - - } - - private double radians(double aDegrees) { - return aDegrees/180.0*PI; - } -}