File: Latitude.java

package info (click to toggle)
gpsprune 26.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,824 kB
  • sloc: java: 52,154; sh: 25; makefile: 21; python: 15
file content (39 lines) | stat: -rw-r--r-- 1,270 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package tim.prune.data;

/**
 * Class to make it easier to create Coordinate objects for Latitudes
 */
public abstract class Latitude
{
	public static Coordinate make(double inValue)
	{
		if (Math.abs(inValue) >= 90.0) {
			return null;
		}
		return new Coordinate(inValue, inValue >= 0.0 ? Coordinate.Cardinal.NORTH : Coordinate.Cardinal.SOUTH);
	}

	public static Coordinate make(String inString)
	{
		Coordinate coordinate = Coordinate.parse(inString, Coordinate.Cardinal.NORTH, Coordinate.Cardinal.SOUTH);
		if (coordinate == null || Math.abs(coordinate.getDouble()) >= 90.0) {
			return null;
		}
		return coordinate;
	}

	public static Coordinate interpolate(Coordinate inStart, Coordinate inEnd, double inFraction) {
		return Coordinate.interpolate(inStart, inEnd, inFraction, Coordinate.Cardinal.NORTH, Coordinate.Cardinal.SOUTH);
	}

	public static Coordinate interpolate(Coordinate inStart, Coordinate inEnd, int inIndex, int inNumPoints) {
		return interpolate(inStart, inEnd, 1.0 * (inIndex+1) / (inNumPoints + 1));
	}

	public static boolean hasCardinal(String inSource)
	{
		Coordinate.Cardinal cardinal = Coordinate.getCardinal(inSource,
			Coordinate.Cardinal.NORTH, Coordinate.Cardinal.SOUTH);
		return cardinal != Coordinate.Cardinal.NO_CARDINAL;
	}
}