// 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; /** * Datum provides 3 dimensional offset and ellipsoid conversion. */ public class ThreeParameterDatum extends AbstractDatum { protected double dx, dy, dz; public ThreeParameterDatum(String name, String proj4Id, Ellipsoid ellps, double dx, double dy, double dz) { super(name, proj4Id, ellps); this.dx = dx; this.dy = dy; this.dz = dz; } @Override public LatLon toWGS84(LatLon ll) { double[] xyz = ellps.latLon2Cart(ll); xyz[0] += dx; xyz[1] += dy; xyz[2] += dz; return Ellipsoid.WGS84.cart2LatLon(xyz); } @Override public LatLon fromWGS84(LatLon ll) { double[] xyz = Ellipsoid.WGS84.latLon2Cart(ll); xyz[0] -= dx; xyz[1] -= dy; xyz[2] -= dz; return this.ellps.cart2LatLon(xyz); } }