From c3ee0f35f58125a7a2b2e29ac8db8abc169f1b87 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Fri, 3 Jan 2020 10:47:21 +0100 Subject: api implementation --- .../uic/ticket/api/impl/SimpleGeoCoordinate.java | 206 +++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 src/org/uic/ticket/api/impl/SimpleGeoCoordinate.java (limited to 'src/org/uic/ticket/api/impl/SimpleGeoCoordinate.java') diff --git a/src/org/uic/ticket/api/impl/SimpleGeoCoordinate.java b/src/org/uic/ticket/api/impl/SimpleGeoCoordinate.java new file mode 100644 index 0000000..a591e29 --- /dev/null +++ b/src/org/uic/ticket/api/impl/SimpleGeoCoordinate.java @@ -0,0 +1,206 @@ +/* + * + */ +package org.uic.ticket.api.impl; + +import org.uic.ticket.api.asn.omv1.GeoCoordinateSystemType; +import org.uic.ticket.api.asn.omv1.GeoUnitType; +import org.uic.ticket.api.asn.omv1.HemisphereLatitudeType; +import org.uic.ticket.api.asn.omv1.HemisphereLongitudeType; +import org.uic.ticket.api.spec.IGeoCoordinate; + +// TODO: Auto-generated Javadoc +/** + * The Class SimpleGeoCoordinate. + */ +public class SimpleGeoCoordinate implements IGeoCoordinate { + + /** The unit. */ + protected GeoUnitType unit = GeoUnitType.milliDegree; + + /** The accuracy. */ + protected GeoUnitType accuracy; + + /** The system. */ + protected GeoCoordinateSystemType system = GeoCoordinateSystemType.wgs84; + + /** The hemispher longiture. */ + protected HemisphereLongitudeType hemispherLongiture = HemisphereLongitudeType.north; + + /** The hemisphere latitude. */ + protected HemisphereLatitudeType hemisphereLatitude = HemisphereLatitudeType.east; + + /** The longitude. */ + protected Long longitude; + + /** The latitude. */ + protected Long latitude; + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getUnit() + */ + public GeoUnitType getUnit() { + return unit; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setUnit(org.uic.ticket.api.asn.om.GeoUnitType) + */ + public void setUnit(GeoUnitType unit) { + this.unit = unit; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getAccuracy() + */ + public GeoUnitType getAccuracy() { + return accuracy; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setAccuracy(org.uic.ticket.api.asn.om.GeoUnitType) + */ + public void setAccuracy(GeoUnitType accuracy) { + this.accuracy = accuracy; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getSystem() + */ + public GeoCoordinateSystemType getSystem() { + return system; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setSystem(org.uic.ticket.api.asn.om.GeoCoordinateSystemType) + */ + public void setSystem(GeoCoordinateSystemType system) { + this.system = system; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getHemispherLongitude() + */ + public HemisphereLongitudeType getHemisphereLongitude() { + return hemispherLongiture; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setHemispherLongitude(org.uic.ticket.api.asn.om.HemisphereLongitudeType) + */ + public void setHemisphereLongitude(HemisphereLongitudeType hemispherLongiture) { + this.hemispherLongiture = hemispherLongiture; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getHemisphereLatitude() + */ + public HemisphereLatitudeType getHemisphereLatitude() { + return hemisphereLatitude; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setHemisphereLatitude(org.uic.ticket.api.asn.om.HemisphereLatitudeType) + */ + public void setHemisphereLatitude(HemisphereLatitudeType hemisphereLatitude) { + this.hemisphereLatitude = hemisphereLatitude; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getLongitude() + */ + public Long getLongitude() { + return limitValues(longitude); + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setLongitude(long) + */ + public void setLongitude(long longitude) { + this.longitude = longitude; + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#getLatitude() + */ + public Long getLatitude() { + + return limitValues(latitude); + } + + /* (nicht-Javadoc) + * @see org.uic.ticket.api.spec.IGeoCoordinate#setLatitude(long) + */ + public void setLatitude(long latitude) { + this.latitude = latitude; + } + + public long limitValues(long value){ + + while (value < 0) { + value = value + getFullCircle(); + } + + return value % getFullCircle(); + + } + + public long getFullCircle(){ + if (unit == GeoUnitType.centiDegree) { + return 100 * 360; + } else if (unit == GeoUnitType.deciDegree) { + return 10 * 360; + } else if (unit == GeoUnitType.milliDegree) { + return 1000 * 360; + } else if (unit == GeoUnitType.tenthmilliDegree) { + return 10000 * 360; + } else if (unit == GeoUnitType.milliDegree) { + return 100000 * 360; + } else { + return 360; + } + + } + + + /* (nicht-Javadoc) + * @see java.lang.Object#clone() + */ + public SimpleGeoCoordinate clone(){ + + SimpleGeoCoordinate clone = new SimpleGeoCoordinate(); + + clone.setSystem(this.getSystem()); + clone.setAccuracy(this.getAccuracy()); + clone.setHemisphereLatitude(this.getHemisphereLatitude()); + clone.setHemisphereLongitude(this.getHemisphereLongitude()); + clone.setLatitude(this.getLatitude()); + clone.setLongitude(this.getLongitude()); + clone.setUnit(this.getUnit()); + + return clone; + + + } + + /** + * Adds the longitude. + * + * @param l the longitude + */ + public void addLongitude(Long l) { + long value = this.longitude + longitude; + this.longitude = limitValues(value); + } + + /** + * Adds the latitude. + * + * @param latitude the latitude + */ + public void addLatitude(Long latitude) { + long value = this.latitude + latitude; + this.latitude = limitValues(value); + } + +} -- cgit v1.2.3