You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.0 KiB
90 lines
2.0 KiB
package seng302.Model;
|
|
|
|
import org.geotools.referencing.Console;
|
|
import org.geotools.referencing.GeodeticCalculator;
|
|
import seng302.Constants;
|
|
import seng302.GPSCoordinate;
|
|
import seng302.GraphCoordinate;
|
|
|
|
/**
|
|
* Created by cbt24 on 6/03/17.
|
|
*/
|
|
public class Leg {
|
|
private String name; //nautical miles
|
|
private double distance;
|
|
|
|
|
|
private int legNumber;
|
|
private GPSCoordinate startGPSCoordinate;
|
|
private GPSCoordinate endGPSCoordinate;
|
|
|
|
/**
|
|
* Leg Initialiser
|
|
* @param name Name of the Leg
|
|
*/
|
|
public Leg(String name, GPSCoordinate start, GPSCoordinate end, int number) {
|
|
this.name = name;
|
|
this.startGPSCoordinate = start;
|
|
this.endGPSCoordinate = end;
|
|
this.legNumber = number;
|
|
this.distance = calculateDistance();
|
|
}
|
|
|
|
public Leg(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return the name of the Leg
|
|
*/
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return the total distance of the leg.
|
|
*/
|
|
public double getDistance() {
|
|
return distance;
|
|
}
|
|
|
|
|
|
/**
|
|
*
|
|
* @return the name of the Leg
|
|
*/
|
|
public String toString() {
|
|
return name;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return the coordinate of the start of the leg )
|
|
*/
|
|
public GPSCoordinate getStartGraphCoordinate() {
|
|
return startGPSCoordinate;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return the coordinate of the end of the leg
|
|
*/
|
|
public GPSCoordinate getEndGraphCoordinate() {
|
|
return endGPSCoordinate;
|
|
}
|
|
|
|
public int getLegNumber() {
|
|
return legNumber;
|
|
}
|
|
|
|
private double calculateDistance() {
|
|
|
|
GeodeticCalculator calc = new GeodeticCalculator();
|
|
calc.setStartingGeographicPoint(startGPSCoordinate.getLatitude(), startGPSCoordinate.getLongitude());
|
|
calc.setDestinationGeographicPoint(endGPSCoordinate.getLatitude(), endGPSCoordinate.getLongitude());
|
|
return calc.getOrthodromicDistance() / Constants.NMToMetersConversion;
|
|
}
|
|
}
|