* Load method, for initialising and reinitialising data
* @param inFieldArray array of Field objects describing fields
* @param inPointArray 2d object array containing data
- * @param inAltFormat altitude format
+ * @param inOptions load options such as units
*/
- public void load(Field[] inFieldArray, Object[][] inPointArray, Altitude.Format inAltFormat)
+ public void load(Field[] inFieldArray, Object[][] inPointArray, PointCreateOptions inOptions)
{
if (inFieldArray == null || inPointArray == null)
{
{
dataArray = (String[]) inPointArray[p];
// Convert to DataPoint objects
- DataPoint point = new DataPoint(dataArray, _masterFieldList, inAltFormat);
+ DataPoint point = new DataPoint(dataArray, _masterFieldList, inOptions);
if (point.isValid())
{
_dataPoints[pointIndex] = point;
* @param inStart start of range
* @param inEnd end of range
* @param inOffset offset to add (-ve to subtract)
- * @param inFormat altitude format of offset
+ * @param inUnit altitude unit of offset
* @param inDecimals number of decimal places in offset
* @return true on success
*/
public boolean addAltitudeOffset(int inStart, int inEnd, double inOffset,
- Altitude.Format inFormat, int inDecimals)
+ Unit inUnit, int inDecimals)
{
// sanity check
if (inStart < 0 || inEnd < 0 || inStart >= inEnd || inEnd >= _numPoints) {
{
// This point has an altitude so add the offset to it
foundAlt = true;
- alt.addOffset(inOffset, inFormat, inDecimals);
+ alt.addOffset(inOffset, inUnit, inDecimals);
_dataPoints[i].setModified(false);
}
}
double latitudeDiff = 0.0, longitudeDiff = 0.0;
double totalAltitude = 0;
int numAltitudes = 0;
- Altitude.Format altFormat = Altitude.Format.NO_FORMAT;
+ Unit altUnit = null;
// loop between start and end points
for (int i=inStartIndex; i<= inEndIndex; i++)
{
DataPoint currPoint = getPoint(i);
latitudeDiff += (currPoint.getLatitude().getDouble() - firstLatitude);
longitudeDiff += (currPoint.getLongitude().getDouble() - firstLongitude);
- if (currPoint.hasAltitude()) {
- totalAltitude += currPoint.getAltitude().getValue(altFormat);
+ if (currPoint.hasAltitude())
+ {
+ totalAltitude += currPoint.getAltitude().getValue(altUnit);
// Use altitude format of first valid altitude
- if (altFormat == Altitude.Format.NO_FORMAT)
- altFormat = currPoint.getAltitude().getFormat();
+ if (altUnit == null)
+ altUnit = currPoint.getAltitude().getUnit();
numAltitudes++;
}
}
double meanLatitude = firstLatitude + (latitudeDiff / numPoints);
double meanLongitude = firstLongitude + (longitudeDiff / numPoints);
Altitude meanAltitude = null;
- if (numAltitudes > 0) {meanAltitude = new Altitude((int) (totalAltitude / numAltitudes), altFormat);}
+ if (numAltitudes > 0) {
+ meanAltitude = new Altitude((int) (totalAltitude / numAltitudes), altUnit);
+ }
DataPoint insertedPoint = new DataPoint(new Latitude(meanLatitude, Coordinate.FORMAT_NONE),
new Longitude(meanLongitude, Coordinate.FORMAT_NONE), meanAltitude);
*/
public DoubleRange getXRange()
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _xRange;
}
*/
public DoubleRange getYRange()
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _yRange;
}
*/
public DoubleRange getLatRange()
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _latRange;
}
/**
*/
public DoubleRange getLonRange()
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _longRange;
}
*/
public double getX(int inPointNum)
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _xValues[inPointNum];
}
*/
public double getY(int inPointNum)
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _yValues[inPointNum];
}
*/
public boolean hasTrackPoints()
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _hasTrackpoint;
}
*/
public boolean hasWaypoints()
{
- if (!_scaled) scalePoints();
+ if (!_scaled) {scalePoints();}
return _hasWaypoint;
}
* Scale all the points in the track to gain x and y values
* ready for plotting
*/
- private void scalePoints()
+ private synchronized void scalePoints()
{
// Loop through all points in track, to see limits of lat, long
_longRange = new DoubleRange();