2022.1.02

• All Implemented Interfaces:
ILcdCylindrical, ILcdProjection, ILcdPropertyChangeSource, Serializable, Cloneable

```public class TLcdEquidistantCylindrical
extends ALcdCylindrical```
Equidistant Cylindrical projection.

### Introduction

The Equidistant Cylindrical projection is basically a linear transformation from lat-lon coordinates to XY world coordinates. If the equator is made the standard parallel this projection is also known as Plate Carree or Simple Cylindrical.

### Properties

• Neither equal-area nor conformal.
• Meridians and parallels are straight lines. They are spaced equally and intersect each other at right angles.
• Poles are projected as lines.
• This projection is used only in spherical form.

### Sample code

``````
ILcdProjection projection =
new TLcdEquidistantCylindrical(0.0, 0.0);
``````
Serialized Form

• ### Fields inherited from class com.luciad.projection.ALcdProjection

`fPropertyChangeDispatcher`
• ### Fields inherited from interface com.luciad.projection.ILcdProjection

`EPSILON`
• ### Constructor Summary

Constructors
Constructor and Description
`TLcdEquidistantCylindrical()`
Constructs a simple rectangular projection with the central meridian at 0 and the standard parallel at 0.
`TLcdEquidistantCylindrical(double aCentralMeridian)`
Constructs a simple rectangular projection with the specified central meridian and the standard parallel at 0.
```TLcdEquidistantCylindrical(double aCentralMeridian, double aStandardParallel)```
Constructs a simple rectangular projection with the specified central meridian.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`double[][]` `boundaryLats(double aLongitude)`
Default implementation.
`double[][]` `boundaryLons(double aLatitude)`
Default implementation.
`boolean` `equals(Object o)`
Checks if this `ILcdProjection` equals some other Object.
`double` `getStandardParallel()`
Returns the standard parallel of the Equidistant Cylindrical projection.
`int` `hashCode()`
`boolean` `inLonLatBounds(ILcdPoint aLLP)`
Checks if an `ILcdPoint` is inside the valid area of geodetic coordinates of the projection.
`boolean` ```inWorldBoundsOnSphere(ILcdPoint aXYPoint, double aRadius)```
Checks if a `ILcdPoint` is inside the valid cartesian area of the projection.
`boolean` `isAllInBounds()`
If all geodetic coordinates (l ,j ) are projected (visible) by an `ILcdProjection` and all (x,y ) coordinates are bounded this is `true`.
`boolean` `isContinuous()`
An `ILcdProjection` is continuous if there are no interruptions in the world coordinates.
`void` ```loadProperties(String aPrefix, Properties aProperty)```
Loads the two properties of this equidistant cylindrical projection, i.e., the central meridian and the standard parallel.
`void` ```lonlatheight2worldOnSphereSFCT(ILcdPoint aLLP, double aRadius, ILcd2DEditablePoint aXYPointSFCT)```
Transforms an `ILcd2DEditablePoint` on a sphere into the cartesian coordinate system of the projection.
`void` `setStandardParallel(double aStandardParallel)`
Sets the standard parallel of the Equidistant Cylindrical projection.
`String` `toString()`
Returns the `String` representation of the `TLcdEquidistantCylindrical` projection.
`void` ```world2DEditableBoundsOnSphereSFCT(double aRadius, ILcd2DEditableBounds aWorldBound)```
Sets the `ILcd2DEditableBounds` object to the bounds of the projection in world coordinates.
`void` ```world2lonlatOnSphereSFCT(ILcdPoint cp, double aRadius, ILcd2DEditablePoint aLLPSFCT)```
Transforms an `ILcdPoint` from the cartesian coordinate system of the projection into an `ILcd2DEditablePoint` onto a sphere.
`void` ```writePropertiesSFCT(String aPrefix, Properties aPropertySFCT)```
Writes the two properties of this equidistant cylindrical projection, i.e., the central meridian and the standard parallel.
• ### Methods inherited from class com.luciad.projection.ALcdCylindrical

`calculateCachedValues, clone, getCentralMeridian, getOrigin, setCentralMeridian`
• ### Methods inherited from class com.luciad.projection.ALcdProjection

`addPropertyChangeListener, firePropertyChangeEvent, inWorldBoundsOnEllipsoid, lonlatheight2worldOnEllipsoidSFCT, removePropertyChangeListener, world2DEditableBoundsOnEllipsoidSFCT, world2lonlatOnEllipsoidSFCT`
• ### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface com.luciad.projection.ILcdProjection

`inWorldBoundsOnEllipsoid, lonlatheight2worldOnEllipsoidSFCT, world2DEditableBoundsOnEllipsoidSFCT, world2lonlatOnEllipsoidSFCT`
• ### Methods inherited from interface com.luciad.util.ILcdPropertyChangeSource

`addPropertyChangeListener, removePropertyChangeListener`
• ### Constructor Detail

• #### TLcdEquidistantCylindrical

`public TLcdEquidistantCylindrical()`
Constructs a simple rectangular projection with the central meridian at 0 and the standard parallel at 0.
• #### TLcdEquidistantCylindrical

`public TLcdEquidistantCylindrical(double aCentralMeridian)`
Constructs a simple rectangular projection with the specified central meridian and the standard parallel at 0.
Parameters:
`aCentralMeridian` - the central meridian of the projection.
• #### TLcdEquidistantCylindrical

```public TLcdEquidistantCylindrical(double aCentralMeridian,
double aStandardParallel)```
Constructs a simple rectangular projection with the specified central meridian.
Parameters:
`aCentralMeridian` - the central meridian of the projection.
`aStandardParallel` - the standard parallel of the projection.
• ### Method Detail

• #### getStandardParallel

`public double getStandardParallel()`
Returns the standard parallel of the Equidistant Cylindrical projection.
Returns:
the standard parallel of the Equidistant Cylindrical projection.
`setStandardParallel(double)`
• #### setStandardParallel

`public void setStandardParallel(double aStandardParallel)`
Sets the standard parallel of the Equidistant Cylindrical projection.
Parameters:
`aStandardParallel` - the new standard parallel value.
`getStandardParallel()`
• #### lonlatheight2worldOnSphereSFCT

```public void lonlatheight2worldOnSphereSFCT(ILcdPoint aLLP,
ILcd2DEditablePoint aXYPointSFCT)
throws TLcdOutOfBoundsException```
Description copied from interface: `ILcdProjection`
Transforms an `ILcd2DEditablePoint` on a sphere into the cartesian coordinate system of the projection.
Parameters:
`aLLP` - point to be projected.
`aRadius` - radius of the sphere (meters).
`aXYPointSFCT` - projected point as side effect.
Throws:
`TLcdOutOfBoundsException` - If the `ILcdPoint` `aLLHP` is not within the valid area of the projection (visible area), then this exception is thrown.
• #### world2lonlatOnSphereSFCT

```public void world2lonlatOnSphereSFCT(ILcdPoint cp,
ILcd2DEditablePoint aLLPSFCT)
throws TLcdOutOfBoundsException```
Description copied from interface: `ILcdProjection`
Transforms an `ILcdPoint` from the cartesian coordinate system of the projection into an `ILcd2DEditablePoint` onto a sphere.
Parameters:
`cp` - projected point for which the corresponding geodetic point is sought.
`aRadius` - radius of the sphere (meters).
`aLLPSFCT` - resulting geodetic coordinate as side effect.
Throws:
`TLcdOutOfBoundsException` - If the `ILcdPoint` `aXYPoint` is not within the valid area of the projection (visible area), then this exception is thrown.
• #### isAllInBounds

`public boolean isAllInBounds()`
Description copied from interface: `ILcdProjection`
If all geodetic coordinates (l ,j ) are projected (visible) by an `ILcdProjection` and all (x,y ) coordinates are bounded this is `true`. All `ILcdProjection` objects have bounded (x,y ) coordinates because the projection is cut off if necessary.
Returns:
`true` if all LonLatPoints are within the bounds of the projection, `false` otherwise.
• #### 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`
Overrides:
`isContinuous` in class `ALcdCylindrical`
Returns:
`true` if the projection is continuous, `false` otherwise.
• #### inLonLatBounds

`public boolean inLonLatBounds(ILcdPoint aLLP)`
Description copied from interface: `ILcdProjection`
Checks if an `ILcdPoint` is inside the valid area of geodetic coordinates of the projection. The valid area is determined by the LonLatPoints that are visible and for which the corresponding cartesian coordinate is within the boundaries.
Parameters:
`aLLP` - `ILcdPoint` to be checked upon.
Returns:
`true` if valid, `false` if invalid.
• #### boundaryLons

`public double[][] boundaryLons(double aLatitude)`
Description copied from class: `ALcdProjection`
Default implementation. To be redefined for specific projections.
Specified by:
`boundaryLons` in interface `ILcdProjection`
Overrides:
`boundaryLons` in class `ALcdProjection`
Parameters:
`aLatitude` - latitude in decimal degrees and -90.0 <= `aLat`<= 90.0.
Returns:
the array of pairs of longitudes[0] and longitudes[1], where the closed interval longitudes[0] -> longitudes[1] is in visible area and -180.0 <= lon[i] <= 180.0.
• #### boundaryLats

`public double[][] boundaryLats(double aLongitude)`
Description copied from class: `ALcdProjection`
Default implementation. To be redefined for specific projections.
Specified by:
`boundaryLats` in interface `ILcdProjection`
Overrides:
`boundaryLats` in class `ALcdProjection`
Parameters:
`aLongitude` - longitude in decimal degrees -180.0 <= lon <= 180.0 .
Returns:
the array of pairs of latitudes lats[0] and lats[1], where the closed interval lats[0] -> lats[1] is in visible area and -90.0 <= lats[i] <= 90.0 .
• #### world2DEditableBoundsOnSphereSFCT

```public void world2DEditableBoundsOnSphereSFCT(double aRadius,
ILcd2DEditableBounds aWorldBound)```
Description copied from interface: `ILcdProjection`
Sets the `ILcd2DEditableBounds` object to the bounds of the projection in world coordinates.
Parameters:
`aRadius` - radius of the sphere.
`aWorldBound` - the bounds of the projection in world coordinates as side effect.
• #### inWorldBoundsOnSphere

```public boolean inWorldBoundsOnSphere(ILcdPoint aXYPoint,
Description copied from interface: `ILcdProjection`
Checks if a `ILcdPoint` is inside the valid cartesian area of the projection. The valid cartesian area is determined naturally by the projection bounds or by an artificial introduced boundary limit because some cartesian points are at infinity. The shape of the valid cartesian area is in many cases rectangular or circular although it might be more complex.
Parameters:
`aXYPoint` - point to be checked upon.
`aRadius` - radius of the sphere.
Returns:
`true` if valid, `false` if invalid.

```public void loadProperties(String aPrefix,
Properties aProperty)
throws IllegalArgumentException```
Loads the two properties of this equidistant cylindrical projection, i.e., the central meridian and the standard parallel. This method will, given aPrefix, analyze the aProperties object to set the properties of this projection. The values of following keys are retrieved:
• <aPrefix>.centralMeridian
• <aPrefix>.standardParallel
If these factors are not available they are set to the default value 0.0.
Specified by:
`loadProperties` in interface `ILcdProjection`
Overrides:
`loadProperties` in class `ALcdCylindrical`
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 two properties of this equidistant cylindrical projection, i.e., the central meridian and the standard parallel. This method will, given aPrefix, store the properties of this projection into the aPropertiesSFCT object. The values of following keys are stored:
• <aPrefix>.centralMeridian
• <aPrefix>.standardParallel
Specified by:
`writePropertiesSFCT` in interface `ILcdProjection`
Overrides:
`writePropertiesSFCT` in class `ALcdCylindrical`
Parameters:
`aPrefix` - prefix for the property names.
`aPropertySFCT` - Properties object to store the serialized properties by side effect.
• #### toString

`public String toString()`
Returns the `String` representation of the `TLcdEquidistantCylindrical` projection.
Specified by:
`toString` in interface `ILcdProjection`
Overrides:
`toString` in class `Object`
Returns:
the `String` representation of the `TLcdEquidistantCylindrical` projection.
• #### equals

`public boolean equals(Object o)`
Description copied from interface: `ILcdProjection`
Checks if this `ILcdProjection` equals some other Object.
Specified by:
`equals` in interface `ILcdProjection`
Overrides:
`equals` in class `ALcdCylindrical`
Parameters:
`o` - 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.
• #### hashCode

`public int hashCode()`
Overrides:
`hashCode` in class `ALcdCylindrical`