Class LambertConformal

  • All Implemented Interfaces:
    Serializable, Projection

    public class LambertConformal
    extends ProjectionImpl
    Lambert Conformal Projection, one or two standard parallels, spherical earth. Projection plane is a cone whose vertex lies on the line of the earth's axis, and intersects the earth at two parellels (par1, par2), or is tangent to the earth at one parellel par1 = par2. The cone is flattened by splitting along the longitude = lon0+180.

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

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

      • LambertConformal

        public LambertConformal()
        Constructor with default parameters
      • LambertConformal

        public LambertConformal​(double lat0,
                                double lon0,
                                double par1,
                                double par2)
        Construct a LambertConformal 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
        par1 - standard parallel 1
        par2 - standard parallel 2
        Throws:
        IllegalArgumentException - if lat0 > +/-90 or if par1, par2 >= +/-90 deg
      • LambertConformal

        public LambertConformal​(double lat0,
                                double lon0,
                                double par1,
                                double par2,
                                double false_easting,
                                double false_northing)
        Construct a LambertConformal 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
        par1 - standard parallel 1
        par2 - standard parallel 2
        false_easting - natural_x_coordinate + false_easting = x coordinate in km
        false_northing - natural_y_coordinate + false_northing = y coordinate in km
        Throws:
        IllegalArgumentException - if lat0 > +/-90 or if par1, par2 >= +/-90 deg
      • LambertConformal

        public LambertConformal​(double lat0,
                                double lon0,
                                double par1,
                                double par2,
                                double false_easting,
                                double false_northing,
                                double earth_radius)
        Construct a LambertConformal 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
        par1 - standard parallel 1
        par2 - standard parallel 2
        false_easting - natural_x_coordinate + false_easting = x coordinate in km
        false_northing - natural_y_coordinate + false_northing = y coordinate in km
        earth_radius - radius of the earth in km
        Throws:
        IllegalArgumentException - if lat0 > +/-90 or if 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
      • getParallelTwo

        public double getParallelTwo()
        Get the second standard parallel
        Returns:
        the second standard parallel
      • getParallelOne

        public double getParallelOne()
        Get the first standard parallel
        Returns:
        the first standard parallel
      • 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.
      • getFalseEasting

        public double getFalseEasting()
        Get the false easting, in km.
        Returns:
        the false easting.
      • getFalseNorthing

        public double getFalseNorthing()
        Get the false northing, in km.
        Returns:
        the false northing.
      • setOriginLat

        @Deprecated
        public void setOriginLat​(double lat0)
        Deprecated.
      • setOriginLon

        @Deprecated
        public void setOriginLon​(double lon0)
        Deprecated.
      • setParellelOne

        @Deprecated
        public void setParellelOne​(double par1)
        Deprecated.
      • setParellelTwo

        @Deprecated
        public void setParellelTwo​(double par2)
        Deprecated.
      • setParallelOne

        @Deprecated
        public void setParallelOne​(double par1)
        Deprecated.
      • setParallelTwo

        @Deprecated
        public void setParallelTwo​(double par2)
        Deprecated.
      • setFalseEasting

        @Deprecated
        public void setFalseEasting​(double falseEasting)
        Deprecated.
        Set the false_easting, in km. natural_x_coordinate + false_easting = x coordinate
        Parameters:
        falseEasting - x offset
      • setFalseNorthing

        @Deprecated
        public void setFalseNorthing​(double falseNorthing)
        Deprecated.
        Set the false northing, in km. natural_y_coordinate + false_northing = y coordinate
        Parameters:
        falseNorthing - y offset
      • 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)
      • toWKS

        public String toWKS()
        Create a WKS string
        Returns:
        WKS string
      • getScale

        public double getScale​(double lat)
        Get the scale at the given lat.
        Parameters:
        lat - lat to use
        Returns:
        scale factor at this latitude
      • 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.
      • 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[latIndex][i], from[lonIndex][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
        latIndex - index of lat coordinate; must be 0 or 1
        lonIndex - index of lon coordinate; must be 0 or 1
        Returns:
        the "to" array
      • projToLatLon

        public float[][] projToLatLon​(float[][] from,
                                      float[][] to)
        Convert projection coordinates to lat/lon coordinate.
        Overrides:
        projToLatLon in class ProjectionImpl
        Parameters:
        from - array of projection coordinates: from[2][n], where (from[0][i], from[1][i]) is the (x, y) coordinate of the ith point
        to - resulting array of lat/lon coordinates: to[2][n] where (to[0][i], to[1][i]) is the (lat, lon) 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[latIndex][i], from[lonIndex][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
        latIndex - index of lat coordinate; must be 0 or 1
        lonIndex - index of lon coordinate; must be 0 or 1
        Returns:
        the "to" array
      • projToLatLon

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