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    }