// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.projection.datum; import org.openstreetmap.josm.data.coor.LatLon; import org.openstreetmap.josm.data.projection.Ellipsoid; /** * Represents a geodetic datum. * * Basically it provides conversion functions from and to the WGS84 datum. */ public interface Datum { /** * @return a human readable name of this projection */ String getName(); /** * Replies the Proj.4 identifier. * @return the Proj.4 identifier (as reported by cs2cs -ld) * If no id exists, return null. */ String getProj4Id(); /** * @return the ellipsoid associated with this datum */ Ellipsoid getEllipsoid(); /** * Convert lat/lon from this datum to {@link Ellipsoid#WGS84} datum. * @param ll original lat/lon in this datum * @return lat/lon converted to WGS84 */ LatLon toWGS84(LatLon ll); /** * Convert lat/lon from {@link Ellipsoid#WGS84} to this datum. * @param ll original lat/lon in WGS84 * @return converted lat/lon in this datum */ LatLon fromWGS84(LatLon ll); }