/*
|
Zeitrechnung - a class library to determine calendar events
|
Copyright (c) 1984-2023 Ulrich Hilger, http://uhilger.de
|
|
This program is free software: you can redistribute it and/or modify
|
it under the terms of the GNU Affero General Public License as published by
|
the Free Software Foundation, either version 3 of the License, or
|
(at your option) any later version.
|
|
This program is distributed in the hope that it will be useful,
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
GNU Affero General Public License for more details.
|
|
You should have received a copy of the GNU Affero General Public License
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
*/
|
package de.uhilger.zeitrechnung;
|
|
/**
|
* Ein geographischer Ort bestehend aus geographischer Laenge, Breite
|
* sowie Hoehe und Zeitzone.
|
*
|
* @author Ulrich Hilger
|
*/
|
public class Ort {
|
|
/** name dieses Ortes */
|
private String name;
|
/** geogr. Breite dieses Ortes */
|
private double breite;
|
/** geogr. Laenge dieses Ortes */
|
private double laenge;
|
/** Hoehe dieses Ortes */
|
private double hoehe;
|
/** Zeitzone dieses Ortes */
|
private double zeitzone;
|
|
public static final String TAG_ORT = "ort";
|
public static final String ATTR_NAME = "name";
|
public static final String ATTR_LATITUDE = "lat";
|
public static final String ATTR_LONGITUDE = "long";
|
public static final String ATTR_ELEVATION = "elev";
|
public static final String ATTR_TIME_ZONE = "zone";
|
|
/**
|
* Ein Objekt der Klasse Ort erzeugen
|
*/
|
public Ort() {
|
}
|
|
/**
|
* Ein Objekt der Klasse Ort mit Vorbelegungen erzeugen
|
*
|
* @param name Name des Ortes
|
* @param breite geographische Breite des Ortes (-90=Suedpol 0=Aequator +90=Nordpol)
|
* @param laenge geographische Laenge des Ortes
|
* (-179=westlich von Greenwich 0=Greenwich +179=Oestlich von Greenwich +-180=Datumslinie)
|
* @param hoehe die Hoehe des Ortes in Metern ueber dem Meer
|
* @param zeitzone die Zeitzone des Ortes in Stunden vor oder nach Greenwich-Zeit
|
*/
|
public Ort(String name, double breite, double laenge, double hoehe, double zeitzone) {
|
this.name = name;
|
this.breite = breite;
|
this.laenge = laenge;
|
this.hoehe = hoehe;
|
this.zeitzone = zeitzone;
|
}
|
|
/**
|
* Den Namen des Ortes angeben
|
* @param name the name
|
*/
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
/**
|
* Die geographische Breite des Ortes angeben
|
* @param breite geographische Breite des Ortes (-90=Suedpol 0=Aequator +90=Nordpol)
|
* als Dezimalzahl. Eine Angaben in Grad muss zuvor umgerechnet werden
|
* mit Minute/60 Sekunde/3600
|
*/
|
public void setBreite(double breite) {
|
this.breite = breite;
|
}
|
|
/**
|
* Die geographische Laenge des Ortes angeben
|
* @param longitude geographische Laenge des Ortes
|
* (-179=westlich von Greenwich 0=Greenwich +179=Oestlich von Greenwich +-180=Datumslinie)
|
* als Dezimalzahl. Eine Angaben in Grad muss zuvor umgerechnet werden
|
* mit Minute/60 Sekunde/3600
|
*/
|
public void setLaenge(double longitude) {
|
this.laenge = longitude;
|
}
|
|
/**
|
* Die Hoehe des Ortes angeben
|
* @param elevation die Hoehe des Ortes in Metern ueber dem Meer
|
*/
|
public void setHoehe(double elevation) {
|
this.hoehe = elevation;
|
}
|
|
/**
|
* Die Zeitzone des Ortes angeben
|
* @param timeZone die Zeitzone des Ortes in Stunden vor (-) oder nach (+) Universal Time (UT)
|
*/
|
public void setZeitzone(double timeZone) {
|
this.zeitzone = timeZone;
|
}
|
|
/**
|
* Den Namen des Ortes ermitteln
|
* @return Name des Ortes
|
*/
|
public String getName() {
|
return name;
|
}
|
|
/**
|
* Die geographische Laenge des Ortes ermitteln
|
* @return geographische Laenge des Ortes
|
* (-179=westlich von Greenwich 0=Greenwich +179=Oestlich von Greenwich +-180=Datumslinie)
|
* als Dezimalzahl
|
*/
|
public double getLaenge() {
|
return laenge;
|
}
|
|
/**
|
* Die geographische Breite des Ortes ermitteln
|
* @return geographische Breite des Ortes (-90=Suedpol 0=Aequator +90=Nordpol)
|
* als Dezimalzahl.
|
*/
|
public double getBreite() {
|
return breite;
|
}
|
|
/**
|
* Die Hoehe des Ortes ermitteln
|
* @return die Hoehe des Ortes in Metern ueber dem Meer
|
*/
|
public double getHoehe() {
|
return hoehe;
|
}
|
|
/**
|
* Die Zeitzone des Ortes ermitteln
|
* @return die Zeitzone des Ortes in Stunden vor (-) oder nach (+) Universal Time (UT)
|
*/
|
public double getZeitzone() {
|
return zeitzone;
|
}
|
|
/**
|
* den Ort als String-Objekt ermittln
|
* @return dieses Objekt als String
|
*/
|
public String toString() {
|
return getName();
|
}
|
|
/**
|
* Feststellen, ob dieser Ort gleich einem anderen Ort ist.
|
*
|
* @param obj ein anderes Objekt, das mit diesem Objekt verglichen werden soll
|
* @return true, wenn die Objekte gleich sind, false wenn nicht
|
*/
|
public boolean equals(Object obj) {
|
boolean isEqual = false;
|
if (this == obj) {
|
isEqual = true;
|
} else if (obj instanceof Ort) {
|
Ort o = (Ort) obj;
|
isEqual =
|
o.getBreite() == breite &&
|
o.getLaenge() == laenge &&
|
o.getHoehe() == hoehe &&
|
o.getZeitzone() == zeitzone;
|
}
|
return isEqual;
|
}
|
|
}
|