001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.projection.datum;
003
004 import org.openstreetmap.josm.data.coor.LatLon;
005 import org.openstreetmap.josm.data.projection.Ellipsoid;
006
007 /**
008 * Represents a geodetic datum.
009 *
010 * Basically it provides conversion functions from and to the WGS84 datum.
011 */
012 public interface Datum {
013
014 /**
015 * @return a human readable name of this projection
016 */
017 String getName();
018
019 /**
020 * @return the Proj.4 identifier
021 * (as reported by cs2cs -ld)
022 * If no id exists, return null.
023 */
024 String getProj4Id();
025
026 /**
027 * @return the ellipsoid associated with this datum
028 */
029 Ellipsoid getEllipsoid();
030
031 /**
032 * Convert lat/lon from this datum to WGS84 datum.
033 */
034 LatLon toWGS84(LatLon ll);
035
036 /**
037 * Convert lat/lon from WGS84 to this datum.
038 */
039 LatLon fromWGS84(LatLon ll);
040
041 }