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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
package tim.prune.function.srtm;
import tim.prune.data.Coordinate;
import tim.prune.data.DataPoint;
/**
* Class to represent a single tile of Srtm data, from a single hgt.zip file
*/
public class SrtmTile
{
/** Latitude in degrees north/south */
private int _latitude = 0;
/** Longitude in degrees east/west */
private int _longitude = 0;
/**
* Constructor working out the tile for a single point
* @param inPoint data point
*/
public SrtmTile(DataPoint inPoint)
{
Coordinate latitude = inPoint.getLatitude();
_latitude = (int) Math.floor(latitude.getDouble());
Coordinate longitude = inPoint.getLongitude();
_longitude = (int) Math.floor(longitude.getDouble());
}
/**
* Constructor working out the tile for a single point
* @param inLatitude latitude in degrees
* @param inLongitude longitude in degrees
*/
public SrtmTile(int inLatitude, int inLongitude)
{
_latitude = inLatitude;
_longitude = inLongitude;
}
/**
* Check for equality
* @param inOther other tile object
* @return true if both represent same tile
*/
public boolean equals(SrtmTile inOther)
{
return (_latitude == inOther._latitude) && (_longitude == inOther._longitude);
}
/** @return latitude as int */
public int getLatitude() {
return _latitude;
}
/** @return longitude as int */
public int getLongitude() {
return _longitude;
}
/**
* @return filename of tile
*/
public String getTileName()
{
return (_latitude >= 0?"N":"S")
+ (Math.abs(_latitude) < 10?"0":"")
+ Math.abs(_latitude)
+ (_longitude >= 0?"E":"W")
+ (Math.abs(_longitude) < 100?"0":"")
+ (Math.abs(_longitude) < 10?"0":"")
+ Math.abs(_longitude)
+ ".hgt.zip";
}
}
|