Class ALcdConic

All Implemented Interfaces:
ILcdConic, ILcdProjection, ILcdPropertyChangeSource, Serializable, Cloneable
Direct Known Subclasses:
TLcdAlbersEqualAreaConic, TLcdLambertConformal

public abstract class ALcdConic extends ALcdProjection implements ILcdConic, Cloneable
A ALcdConic is a ILcdProjection that is derived by projection of geodetic points on a cone which is then unrolled.

The cone can be placed on top of the earth globe with the apex or tip along the axis of the earth globe and the sides of the cone tangent to the globe along a specified standard latitude aLatitude which is true to scale.

The cone doesn't have to be tangent to the globe but can also be secant at two specified standard parallels.

A ALcdConic has a firstParallel and a secondParallel, both determined by a latitude. The latitude of the firstParallel must be less than or equal to the latitude of the secondParallel. Its origin is determined by a longitude and a latitude.

See Also:
  • Constructor Details

    • ALcdConic

      public ALcdConic()
  • Method Details

    • setOriginLat

      public void setOriginLat(double aLatitude)
      Description copied from interface: ILcdConic
      Sets the latitude of the origin of this ILcdConic to aLatitude.
      Specified by:
      setOriginLat in interface ILcdConic
      Parameters:
      aLatitude - The new originLat value.
      See Also:
    • setOriginLon

      public void setOriginLon(double aLongitude)
      Description copied from interface: ILcdConic
      Sets the longitude of the origin of this ILcdConic to aLongitude.
      Specified by:
      setOriginLon in interface ILcdConic
      Parameters:
      aLongitude - The new originLon value.
      See Also:
    • setFirstParallel

      public void setFirstParallel(double aLat)
      Description copied from interface: ILcdConic
      Sets the firstParallel of this ILcdConic to the parallel with latitude aLatitude.
      Specified by:
      setFirstParallel in interface ILcdConic
      Parameters:
      aLat - The new firstParallel value.
      See Also:
    • setSecondParallel

      public void setSecondParallel(double aLat)
      Description copied from interface: ILcdConic
      Sets the secondParallel of this ILcdConic to the parallel with latitude aLatitude.
      Specified by:
      setSecondParallel in interface ILcdConic
      Parameters:
      aLat - The new secondParallel value.
      See Also:
    • getOrigin

      public ILcdPoint getOrigin()
      Description copied from interface: ILcdProjection
      Origin of the projection is the ILcd2DEditablePoint that corresponds with origin (0, 0) of the cartesian coordinate system of the projection.
      Specified by:
      getOrigin in interface ILcdProjection
      Returns:
      the origin of the projection.
    • getOriginLat

      public double getOriginLat()
      Description copied from interface: ILcdConic
      Gets the latitude of the origin of this ILcdConic.
      Specified by:
      getOriginLat in interface ILcdConic
      Returns:
      the latitude of the origin of this ILcdConic.
      See Also:
    • getOriginLon

      public double getOriginLon()
      Description copied from interface: ILcdConic
      Gets the longitude of the origin of this ILcdConic.
      Specified by:
      getOriginLon in interface ILcdConic
      Returns:
      the longitude of the origin of this ILcdConic.
      See Also:
    • getFirstParallel

      public double getFirstParallel()
      Description copied from interface: ILcdConic
      Gets the latitude of the firstParallel of this ILcdConic.
      Specified by:
      getFirstParallel in interface ILcdConic
      Returns:
      the latitude of the firstParallel of this ILcdConic.
      See Also:
    • getSecondParallel

      public double getSecondParallel()
      Description copied from interface: ILcdConic
      Gets the latitude of the secondParallel of this ILcdConic.
      Specified by:
      getSecondParallel in interface ILcdConic
      Returns:
      the latitude of the secondParallel of this ILcdConic.
      See Also:
    • isContinuous

      public boolean isContinuous()
      Description copied from interface: ILcdProjection
      An ILcdProjection is continuous if there are no interruptions in the world coordinates. Most projections are continuous.
      Specified by:
      isContinuous in interface ILcdProjection
      Returns:
      true if the projection is continuous, false otherwise.
    • loadProperties

      public void loadProperties(String aPrefix, Properties aProperty) throws IllegalArgumentException
      Loads the 4 properties of an ALcdConic: the longitude and latitude of the point of origin of the projection and the first and second standard parallels. This method will, given aPrefix, analyze the aProperties object to set the properties of this ALcdConic. The values of following keys are retrieved:
      • <aPrefix><the name of the class that extends this abstract class>.originLat
      • <aPrefix><the name of the class that extends this abstract class>.originLon
      • <aPrefix><the name of the class that extends this abstract class>.firstParallel
      • <aPrefix><the name of the class that extends this abstract class>.secondParallel
      Specified by:
      loadProperties in interface ILcdProjection
      Parameters:
      aPrefix - prefix of the property names.
      aProperty - Properties object containing the serialized properties.
      Throws:
      IllegalArgumentException - if the projection cannot be created.
    • writePropertiesSFCT

      public void writePropertiesSFCT(String aPrefix, Properties aPropertySFCT)
      Writes the 4 properties of an ALcdConic: the longitude and latitude of the point of origin of the projection and the first and second standard parallels. This method will, given aPrefix, put the properties of this ALcdConic into the aPropertiesSFCT object. The values of following keys are stored:
      • <aPrefix><the name of the class that extends this abstract class>.originLat
      • <aPrefix><the name of the class that extends this abstract class>.originLon
      • <aPrefix><the name of the class that extends this abstract class>.firstParallel
      • <aPrefix><the name of the class that extends this abstract class>.secondParallel
      Specified by:
      writePropertiesSFCT in interface ILcdProjection
      Parameters:
      aPrefix - prefix for the property names.
      aPropertySFCT - Properties object to store the serialized properties by side effect.
    • calculateCachedValues

      protected void calculateCachedValues()
      Constants based on the point of origin of the projection and the two standard parallels don't have to be recalculated every time a method is called. They only have to be calculated when the projection properties change. Within the methods the precalculated values then can be used in order to gain efficiency.
    • hashCode

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

      public boolean equals(Object aObject)
      Description copied from interface: ILcdProjection
      Checks if this ILcdProjection equals some other Object.
      Specified by:
      equals in interface ILcdProjection
      Overrides:
      equals in class Object
      Parameters:
      aObject - Object to compare with.
      Returns:
      true if the Object is an instance of the same ILcdProjection class and having the same projection properties, false otherwise.
    • clone

      public Object clone()
      Description copied from interface: ILcdProjection
      Makes a deep clone of this ILcdProjection.
      Specified by:
      clone in interface ILcdProjection
      Overrides:
      clone in class ALcdProjection
      Returns:
      deep clone of this ILcdProjection.