Class FlatEarth

  • All Implemented Interfaces:
    Serializable, Projection

    public class FlatEarth
    extends ProjectionImpl
    FlatEarth Projection This projection surface is tangent at some point (lat0, lon0) and has a y axis rotated from true North by some angle.

    We call it "flat" because it should only be used where the spherical geometry of the earth is not significant. In actuallity, we use the simple "arclen" routine which computes dy along a meridian, and dx along a latitude circle. We rotate the coordinate system to/from a true north system.

    See John Snyder, Map Projections used by the USGS, Bulletin 1532, 2nd edition (1983), p 145

    See Also:
    Projection, ProjectionImpl, Serialized Form
    • Constructor Detail

      • FlatEarth

        public FlatEarth()
        Constructor with default parameters
      • FlatEarth

        public FlatEarth​(double lat0,
                         double lon0)
      • FlatEarth

        public FlatEarth​(double lat0,
                         double lon0,
                         double rotAngle)
      • FlatEarth

        public FlatEarth​(double lat0,
                         double lon0,
                         double rotAngle,
                         double radius)
        Construct a FlatEarth Projection, two standard parellels. For the one standard parellel case, set them both to the same value.
        Parameters:
        lat0 - lat origin of the coord. system on the projection plane
        lon0 - lon origin of the coord. system on the projection plane
        rotAngle - angle of rotation, in degrees
        radius - earth radius in km
        Throws:
        IllegalArgumentException - if lat0, par1, par2 = +/-90 deg
    • Method Detail

      • equals

        public boolean equals​(Object o)
        Description copied from class: ProjectionImpl
        Returns true if this represents the same Projection as proj.
        Specified by:
        equals in interface Projection
        Specified by:
        equals in class ProjectionImpl
        Parameters:
        o - projection in question
        Returns:
        true if this represents the same Projection as proj.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getOriginLon

        public double getOriginLon()
        Get the origin longitude in degrees.
        Returns:
        the origin longitude in degrees.
      • getOriginLat

        public double getOriginLat()
        Get the origin latitude in degrees.
        Returns:
        the origin latitude in degrees.
      • getRotationAngle

        public double getRotationAngle()
        Get the rotation angle.
        Returns:
        the origin latitude.
      • toString

        public String toString()
        Description copied from class: ProjectionImpl
        Get a String representation of this projection.
        Overrides:
        toString in class ProjectionImpl
        Returns:
        the name of the projection. This is what gets displayed when you add the projection object to a UI widget (e.g. label, combobox)
      • projToLatLon

        public LatLonPoint projToLatLon​(ProjectionPoint world,
                                        LatLonPointImpl result)
        Description copied from class: ProjectionImpl
        Convert projection coordinates to a LatLonPoint Note: a new object is not created on each call for the return value.
        Specified by:
        projToLatLon in interface Projection
        Specified by:
        projToLatLon in class ProjectionImpl
        Parameters:
        world - convert from these projection coordinates
        result - the object to write to
        Returns:
        LatLonPoint convert to these lat/lon coordinates
      • latLonToProj

        public float[][] latLonToProj​(float[][] from,
                                      float[][] to,
                                      int latIndex,
                                      int lonIndex)
        Convert lat/lon coordinates to projection coordinates.
        Overrides:
        latLonToProj in class ProjectionImpl
        Parameters:
        from - array of lat/lon coordinates: from[2][n], where from[0][i], from[1][i] is the (lat,lon) coordinate of the ith point
        to - resulting array of projection coordinates, where to[0][i], to[1][i] is the (x,y) coordinate of the ith point
        latIndex - index of latitude in "from"
        lonIndex - index of longitude in "from"
        Returns:
        the "to" array.
      • crossSeam

        public boolean crossSeam​(ProjectionPoint pt1,
                                 ProjectionPoint pt2)
        This returns true when the line between pt1 and pt2 crosses the seam. When the cone is flattened, the "seam" is lon0 +- 180.
        Specified by:
        crossSeam in interface Projection
        Specified by:
        crossSeam in class ProjectionImpl
        Parameters:
        pt1 - point 1
        pt2 - point 2
        Returns:
        true when the line between pt1 and pt2 crosses the seam.
      • projToLatLon

        public float[][] projToLatLon​(float[][] from,
                                      float[][] to)
        Convert lat/lon coordinates to projection coordinates.
        Overrides:
        projToLatLon in class ProjectionImpl
        Parameters:
        from - array of lat/lon coordinates: from[2][n], where (from[0][i], from[1][i]) is the (lat,lon) coordinate of the ith point
        to - resulting array of projection coordinates: to[2][n] where (to[0][i], to[1][i]) is the (x,y) coordinate of the ith point
        Returns:
        the "to" array
      • latLonToProj

        public double[][] latLonToProj​(double[][] from,
                                       double[][] to,
                                       int latIndex,
                                       int lonIndex)
        Convert lat/lon coordinates to projection coordinates.
        Overrides:
        latLonToProj in class ProjectionImpl
        Parameters:
        from - array of lat/lon coordinates: from[2][n], where from[0][i], from[1][i] is the (lat,lon) coordinate of the ith point
        to - resulting array of projection coordinates, where to[0][i], to[1][i] is the (x,y) coordinate of the ith point
        latIndex - index of latitude in "from"
        lonIndex - index of longitude in "from"
        Returns:
        the "to" array.
      • projToLatLon

        public double[][] projToLatLon​(double[][] from,
                                       double[][] to)
        Convert lat/lon coordinates to projection coordinates.
        Overrides:
        projToLatLon in class ProjectionImpl
        Parameters:
        from - array of lat/lon coordinates: from[2][n], where (from[0][i], from[1][i]) is the (lat,lon) coordinate of the ith point
        to - resulting array of projection coordinates: to[2][n] where (to[0][i], to[1][i]) is the (x,y) coordinate of the ith point
        Returns:
        the "to" array