org.gicentre.utils.spatial

## Class Swiss

- java.lang.Object
- - org.gicentre.utils.spatial.Swiss

- All Implemented Interfaces:
    MapProjection

      public class Swiss
      extends java.lang.Object
      implements MapProjection

  Class for representing the Swiss coordinate system. This is an oblique Mercator projection with a 90 degree azimuth, centre at the the old observatory at Bern and scale factor of 1.0.
  Version:
    3.4, 5th February, 2016.
  Author:
    Jo Wood, giCentre, City University London.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `FROM_LAT_LONG` Indicates a transformation from longitude/latitude.
    `static int` | `TO_LAT_LONG` Indicates a transformation to longitude/latitude.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Swiss()` Initialises the transformer assuming a forward transformation is from longitude/latitude to Swiss coordinates.
    `Swiss(int direction)` Initialises the transformer in the given direction.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `doInterpolation()` Indicates whether the transformation should use nearest neighbour (false) or some interpolator (true).
    `java.lang.String` | `getDescription()` Provides a general description of the transformation.
    `Ellipsoid` | `getEllipsoid()` Reports the ellipsoid used in the transformation.
    `processing.core.PVector` | `invTransformCoords(processing.core.PVector p)` Performs an inverse Swiss grid to longitude/latitude transform on the given location.
    `processing.core.PVector` | `latLongToSwiss(processing.core.PVector p)` Converts the given longitude/latitude coordinates into Swiss grid.
    `void` | `setInterpolation(boolean doInterpolation)` Sets whether the transformation should use nearest neighbour (false) or some interpolator (true).
    `processing.core.PVector` | `swissToLatLong(processing.core.PVector p)` Converts the given Swiss coordinates to longitude/latitude location.
    `processing.core.PVector` | `transformCoords(processing.core.PVector p)` Performs a forward longitude/latitude to Swiss grid transform on the given location.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FROM_LAT_LONG

          public static final int FROM_LAT_LONG

      Indicates a transformation from longitude/latitude.
      See Also:
        Constant Field Values

    - #### TO_LAT_LONG

          public static final int TO_LAT_LONG

      Indicates a transformation to longitude/latitude.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Swiss

          public Swiss()

      Initialises the transformer assuming a forward transformation is from longitude/latitude to Swiss coordinates. This is equivalent to calling the constructor with FROM_LAT_LONG as the parameter.

    - #### Swiss

          public Swiss(int direction)

      Initialises the transformer in the given direction.
      Parameters:
        `direction` - Indicates whether transforming to or from longitude/latitude.

  - ### Method Detail

    - #### latLongToSwiss

          public processing.core.PVector latLongToSwiss(processing.core.PVector p)

      Converts the given longitude/latitude coordinates into Swiss grid. Longitude/latitude should be in decimal degrees with positive North and negative East.
      Parameters:
        `p` - Longitude/latitude point. Longitude varies within +-180 degrees, latitude within +-90 degrees.
      Returns:
        Swiss coordinates of the given longitude/latitude location.

    - #### swissToLatLong

          public processing.core.PVector swissToLatLong(processing.core.PVector p)

      Converts the given Swiss coordinates to longitude/latitude location.
      Parameters:
        `p` - Location of point as an easting and northing in the Swiss projection (metres from local origin).
      Returns:
        Longitude/latitude coordinates of the given location (decimal degrees).

    - #### transformCoords

          public processing.core.PVector transformCoords(processing.core.PVector p)

      Performs a forward longitude/latitude to Swiss grid transform on the given location.
      Specified by:
        `transformCoords` in interface `MapProjection`
      Parameters:
        `p` - Point coordinates to transform.
      Returns:
        Transformed footprint.

    - #### invTransformCoords

          public processing.core.PVector invTransformCoords(processing.core.PVector p)

      Performs an inverse Swiss grid to longitude/latitude transform on the given location.
      Specified by:
        `invTransformCoords` in interface `MapProjection`
      Parameters:
        `p` - Point coordinates to transform.
      Returns:
        Transformed footprint.

    - #### getDescription

          public java.lang.String getDescription()

      Provides a general description of the transformation.
      Specified by:
        `getDescription` in interface `MapProjection`
      Returns:
        Description of the transformation.

    - #### doInterpolation

          public boolean doInterpolation()

      Indicates whether the transformation should use nearest neighbour (false) or some interpolator (true).
      Returns:
        True if transformation should perform some local interpolation.

    - #### setInterpolation

          public void setInterpolation(boolean doInterpolation)

      Sets whether the transformation should use nearest neighbour (false) or some interpolator (true).
      Parameters:
        `doInterpolation` - True if transformation should perform some local interpolation.

    - #### getEllipsoid

          public Ellipsoid getEllipsoid()

      Reports the ellipsoid used in the transformation.
      Returns:
        Ellipsoid used in the transformation.