// ********************************************************************** // // <copyright> // // BBN Technologies // 10 Moulton Street // Cambridge, MA 02138 // (617) 873-8000 // // Copyright (C) BBNT Solutions LLC. All rights reserved. // // </copyright> // ********************************************************************** // // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/proj/Planet.java,v $ // $RCSfile: Planet.java,v $ // $Revision: 1.6 $ // $Date: 2005/12/09 21:09:01 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.proj; import com.bbn.openmap.MoreMath; /** * Planet datums and parameters. These values are taken from John * Snyder's <i>Map Projections --A Working Manual </i> You should add * datums as needed, consult the ellips.dat file. */ public class Planet { // Solar system id's. Add new ones as needed. final public static transient int Earth = 3; final public static transient int Mars = 4; // WGS84 / GRS80 datums final public static transient float wgs84_earthPolarRadiusMeters = 6356752.3142f; final public static transient double wgs84_earthPolarRadiusMeters_D = 6356752.3142; final public static transient float wgs84_earthEquatorialRadiusMeters = 6378137.0f; final public static transient double wgs84_earthEquatorialRadiusMeters_D = 6378137.0; /* 1 - (minor/major) = 1/298.257 */ final public static transient float wgs84_earthFlat = 1 - (wgs84_earthPolarRadiusMeters / wgs84_earthEquatorialRadiusMeters); /* sqrt(2*f - f^2) = 0.081819221f */ final public static transient float wgs84_earthEccen = (float) Math.sqrt(2 * wgs84_earthFlat - (wgs84_earthFlat * wgs84_earthFlat)); final public static transient float wgs84_earthEquatorialCircumferenceMeters = MoreMath.TWO_PI * wgs84_earthEquatorialRadiusMeters; final public static transient float wgs84_earthEquatorialCircumferenceKM = wgs84_earthEquatorialCircumferenceMeters / 1000f; final public static transient float wgs84_earthEquatorialCircumferenceMiles = wgs84_earthEquatorialCircumferenceKM * 0.62137119f;// HACK /* 60.0f * 360.0f -- sixty nm per degree units? */ final public static transient float wgs84_earthEquatorialCircumferenceNMiles = wgs84_earthEquatorialCircumferenceMeters / 1852f; final public static transient double wgs84_earthEquatorialCircumferenceMeters_D = MoreMath.TWO_PI_D * wgs84_earthEquatorialRadiusMeters_D; final public static transient double wgs84_earthEquatorialCircumferenceKM_D = wgs84_earthEquatorialCircumferenceMeters_D / 1000; final public static transient double wgs84_earthEquatorialCircumferenceMiles_D = wgs84_earthEquatorialCircumferenceKM_D * 0.62137119;// HACK /* 60.0f * 360.0f; sixty nm per degree */// units? final public static transient double wgs84_earthEquatorialCircumferenceNMiles_D = wgs84_earthEquatorialCircumferenceMeters_D / 1852; // wgs84_earthEquatorialCircumferenceKM*0.5389892f; // calculated, // same as line above. // wgs84_earthEquatorialCircumferenceKM*0.5399568f;//HACK use UNIX // units? << This was wrong. // Mars final public static transient float marsEquatorialRadius = 3393400.0f;// meters final public static transient float marsEccen = 0.101929f;// eccentricity // e final public static transient float marsFlat = 0.005208324f;// 1-(1-e^2)^1/2 // International 1974 final public static transient float international1974_earthPolarRadiusMeters = 6356911.946f; final public static transient float international1974_earthEquatorialRadiusMeters = 6378388f; /* 1 - (minor/major) = 1/297 */ final public static transient float international1974_earthFlat = 1 - (international1974_earthPolarRadiusMeters / international1974_earthEquatorialRadiusMeters); /* * Extra scale constant for better viewing of maps (do not use * this to calculate anything but points to be viewed!) 3384: mattserver/Map.C, 3488: dcw */ public transient static int defaultPixelsPerMeter = 3272; // cannot construct private Planet() {} }