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 }