public class GeoLocation extends Object implements Cloneable
AstronomicalCalculator to see if elevation is calculated as part of the
algorithm.| Constructor and Description |
|---|
GeoLocation()
Default GeoLocation constructor will set location to the Prime Meridian at Greenwich, England and a TimeZone of
GMT.
|
GeoLocation(String name,
double latitude,
double longitude,
double elevation,
TimeZone timeZone)
GeoLocation constructor with parameters for all required fields.
|
GeoLocation(String name,
double latitude,
double longitude,
TimeZone timeZone)
GeoLocation constructor with parameters for all required fields.
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
An implementation of the
Object.clone() method that creates a deep copy of the object. |
boolean |
equals(Object object) |
double |
getElevation()
Method to get the elevation in Meters.
|
double |
getGeodesicDistance(GeoLocation location)
Calculate geodesic distance in Meters between
this Object and a second Object passed to this method using Thaddeus Vincenty's inverse formula See T Vincenty, "Direct and Inverse Solutions of Geodesics on the Ellipsoid
with application of nested equations", Survey Review, vol XXII no 176, 1975
|
double |
getGeodesicFinalBearing(GeoLocation location)
Calculate the final geodesic bearing between this Object
and a second Object passed to this method using Thaddeus
Vincenty's inverse formula See T Vincenty, "Direct and
Inverse Solutions of Geodesics on the Ellipsoid with application of nested equations", Survey Review, vol
XXII no 176, 1975
|
double |
getGeodesicInitialBearing(GeoLocation location)
Calculate the initial geodesic bearing between this
Object and a second Object passed to this method using Thaddeus Vincenty's inverse formula See T Vincenty, "Direct and Inverse Solutions of Geodesics on the Ellipsoid
with application of nested equations", Survey Review, vol XXII no 176, 1975
|
double |
getLatitude() |
long |
getLocalMeanTimeOffset()
A method that will return the location's local mean time offset in milliseconds from local standard time.
|
String |
getLocationName() |
double |
getLongitude() |
double |
getRhumbLineBearing(GeoLocation location)
Returns the rhumb line bearing from the current location to
the GeoLocation passed in.
|
double |
getRhumbLineDistance(GeoLocation location)
Returns the rhumb line distance from the current location
to the GeoLocation passed in.
|
TimeZone |
getTimeZone() |
int |
hashCode() |
void |
setElevation(double elevation)
Method to set the elevation in Meters above sea level.
|
void |
setLatitude(double latitude)
Method to set the latitude.
|
void |
setLatitude(int degrees,
int minutes,
double seconds,
String direction)
Method to set the latitude in degrees, minutes and seconds.
|
void |
setLocationName(String name) |
void |
setLongitude(double longitude)
Method to set the longitude in a double format.
|
void |
setLongitude(int degrees,
int minutes,
double seconds,
String direction)
Method to set the longitude in degrees, minutes and seconds.
|
void |
setTimeZone(TimeZone timeZone)
Method to set the TimeZone.
|
String |
toString() |
String |
toXML()
A method that returns an XML formatted
String representing the serialized Object. |
public GeoLocation(String name, double latitude, double longitude, TimeZone timeZone)
name - The location name for display use such as "Lakewood, NJ"latitude - the latitude in a double format such as 40.095965 for Lakewood, NJ longitude - double the longitude in a double format such as -74.222130 for Lakewood, NJ. timeZone - the TimeZone for the location.public GeoLocation(String name, double latitude, double longitude, double elevation, TimeZone timeZone)
name - The location name for display use such as "Lakewood, NJ"latitude - the latitude in a double format such as 40.095965 for Lakewood, NJ longitude - double the longitude in a double format such as -74.222130 for Lakewood, NJ. elevation - the elevation above sea level in Meters. Elevation is not used in most algorithms used for calculating
sunrise and set.timeZone - the TimeZone for the location.public GeoLocation()
public double getElevation()
public void setElevation(double elevation)
elevation - The elevation to set in Meters. An IllegalArgumentException will be thrown if the value is a negative.public void setLatitude(double latitude)
latitude - The degrees of latitude to set. The values should be between -90° and 90°. An
IllegalArgumentException will be thrown if the value exceeds the limit. For example 40.095965 would be
used for Lakewood, NJ. Note: For latitudes south of the equator, a negative value should be
used.public void setLatitude(int degrees, int minutes, double seconds, String direction)
degrees - The degrees of latitude to set between -90 and 90. An IllegalArgumentException will be thrown if the
value exceeds the limit. For example 40 would be used for Lakewood, NJ.minutes - minutes of arcseconds - seconds of arcdirection - N for north and S for south. An IllegalArgumentException will be thrown if the value is not S or N.public double getLatitude()
public void setLongitude(double longitude)
longitude - The degrees of longitude to set in a double format between -180° and 180°. An
IllegalArgumentException will be thrown if the value exceeds the limit. For example -74.2094 would be
used for Lakewood, NJ. Note: for longitudes east of the Prime Meridian (Greenwich) a negative value
should be used.public void setLongitude(int degrees, int minutes, double seconds, String direction)
degrees - The degrees of longitude to set between -180 and 180. An IllegalArgumentException will be thrown if
the value exceeds the limit. For example -74 would be used for Lakewood, NJ. Note: for longitudes east
of the Prime Meridian (Greenwich) a
negative value should be used.minutes - minutes of arcseconds - seconds of arcdirection - E for east of the Prime Meridian or W for west of it. An IllegalArgumentException will be thrown if
the value is not E or W.public double getLongitude()
public String getLocationName()
public void setLocationName(String name)
name - The setter method for the display name.public TimeZone getTimeZone()
public void setTimeZone(TimeZone timeZone)
AstronomicalCalendar, it is critical that
AstronomicalCalendar.getCalendar().
setTimeZone(TimeZone) be called in order for the
AstronomicalCalendar to output times in the expected offset. This situation will arise if the
AstronomicalCalendar is ever cloned.timeZone - The timeZone to set.public long getLocalMeanTimeOffset()
noon (with adjustment for the equation of time) the sun should be directly overhead,
so a user who is 1° west of this will have noon at 4 minutes after standard time noon, and conversely, a user
who is 1° east of the 15° longitude will have noon at 11:56 AM. Lakewood, N.J., whose longitude is
-74.2094, is 0.7906 away from the closest multiple of 15 at -75°. This is multiplied by 4 to yield 3 minutes
and 10 seconds earlier than standard time. The offset returned does not account for the Daylight saving time offset since this class is
unaware of dates.public double getGeodesicInitialBearing(GeoLocation location)
location - the destination locationpublic double getGeodesicFinalBearing(GeoLocation location)
location - the destination locationpublic double getGeodesicDistance(GeoLocation location)
location - the destination locationpublic double getRhumbLineBearing(GeoLocation location)
location - destination locationpublic double getRhumbLineDistance(GeoLocation location)
location - the destination locationpublic String toXML()
String representing the serialized Object. Very
similar to the toString method but the return value is in an xml format. The format currently used (subject to
change) is:
<GeoLocation>
<LocationName>Lakewood, NJ</LocationName>
<Latitude>40.0828°</Latitude>
<Longitude>-74.2094°</Longitude>
<Elevation>0 Meters</Elevation>
<TimezoneName>America/New_York</TimezoneName>
<TimeZoneDisplayName>Eastern Standard Time</TimeZoneDisplayName>
<TimezoneGMTOffset>-5</TimezoneGMTOffset>
<TimezoneDSTOffset>1</TimezoneDSTOffset>
</GeoLocation>
String.public boolean equals(Object object)
equals in class ObjectObject.equals(Object)public int hashCode()
hashCode in class ObjectObject.hashCode()public String toString()
toString in class ObjectObject.toString()public Object clone()
Object.clone() method that creates a deep copy of the object. TimeZone in the clone will be changed from the original, it is critical
that AstronomicalCalendar.getCalendar().
setTimeZone(TimeZone) is called after cloning in order for the
AstronomicalCalendar to output times in the expected offset.clone in class ObjectObject.clone()Copyright © 2004 - 2011 Eliyahu Hershfeld. All Rights Reserved. Released under the LGPL 2.1 license