org.gicentre.utils.spatial
Class FrenchNTF

java.lang.Object
  extended by org.gicentre.utils.spatial.FrenchNTF
All Implemented Interfaces:
MapProjection

public class FrenchNTF
extends java.lang.Object
implements MapProjection

Class for representing the French national coordinate system. This is a Lambert conformal conic projection divided into one of 4 zones, plus a modified zone II projection for national maps.

Version:
3.3, 27th June, 2012.
Author:
Jo Wood, giCentre, City University London.

Field Summary
static int FROM_LAT_LONG
          Indicates a transformation from longitude/latitude.
static int TO_LAT_LONG
          Indicates a transformation to longitude/latitude.
 
Constructor Summary
FrenchNTF()
          Initialises the transformer assuming a forward transformation is from longitude/latitude to French National Grid coordinates using the national 'Lambert IIe'.
FrenchNTF(int direction)
          Initialises the transformer in the given direction assuming the national 'Lambert IIe' projection.
FrenchNTF(java.lang.String zone)
          Initialises the transformer assuming a forward transformation is from longitude/latitude to French National Grid coordinates.
FrenchNTF(java.lang.String zoneText, int direction)
          Initialises the transformer in the given direction.
 
Method Summary
 boolean doInterpolation()
          Indicates whether the transformation should use nearest neighbour (false) or some interpolator (true).
 processing.core.PVector frenchToLatLong(processing.core.PVector p)
          Converts the given French coordinates to longitude/latitude location assuming the zone defined in the constructor.
 java.lang.String getDescription()
          Provides a general description of the transformation.
 Ellipsoid getEllipsoid()
          Reports the ellipsoid used in the transformation (Clarke 1880).
 char getZoneLetter()
          Reports the Lambert zone letter.
 int getZoneNumber()
          Reports the Lambert zone number used for the projection.
 processing.core.PVector invTransformCoords(processing.core.PVector p)
          Performs an inverse French grid to lat/long transform on the given location.
 processing.core.PVector latLongToFrench(processing.core.PVector p)
          Converts the given longitude/latitude coordinates into Lambert conformal conic using the appropriate zone.
 void setInterpolation(boolean doInterpolation)
          Sets whether the transformation should use nearest neighbour (false) or some interpolator (true).
 void setZone(java.lang.String zoneText)
          Sets the zone and projection parameters for subsequent transformations.
 processing.core.PVector transformCoords(processing.core.PVector p)
          Performs a forward longitude/latitude to French 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

FrenchNTF

public FrenchNTF()
Initialises the transformer assuming a forward transformation is from longitude/latitude to French National Grid coordinates using the national 'Lambert IIe'. projection.


FrenchNTF

public FrenchNTF(java.lang.String zone)
Initialises the transformer assuming a forward transformation is from longitude/latitude to French National Grid coordinates. This is equivalent to calling the constructor with FROM_LAT_LONG as the parameter.

Parameters:
zone - Lambert zone (one of "1", "2", "3", "4" or "2e")

FrenchNTF

public FrenchNTF(int direction)
Initialises the transformer in the given direction assuming the national 'Lambert IIe' projection.

Parameters:
direction - Indicates whether transforming to or from longitude/latitude.

FrenchNTF

public FrenchNTF(java.lang.String zoneText,
                 int direction)
Initialises the transformer in the given direction.

Parameters:
zoneText - Lambert zone (one of '1', '2', '3', '4' or '2e').
direction - Indicates whether transforming to or from longitude/latitude.
Method Detail

latLongToFrench

public processing.core.PVector latLongToFrench(processing.core.PVector p)
Converts the given longitude/latitude coordinates into Lambert conformal conic using the appropriate zone. Longitude andlatitude should be in decimal degrees with positive North and positive East.

Parameters:
p - Longitude/latitude point. Longitude varies within +-180 degrees, latitude within +-90 degrees.
Returns:
French coordinates of the given longitude/latitude location.

frenchToLatLong

public processing.core.PVector frenchToLatLong(processing.core.PVector p)
Converts the given French coordinates to longitude/latitude location assuming the zone defined in the constructor.

Parameters:
p - Location of point as an easting and northing in the French NTF 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 French grid transform on the given location.

Specified by:
transformCoords in interface MapProjection
Parameters:
p - point location coordinates to transform.
Returns:
Transformed location.

invTransformCoords

public processing.core.PVector invTransformCoords(processing.core.PVector p)
Performs an inverse French grid to lat/long transform on the given location.

Specified by:
invTransformCoords in interface MapProjection
Parameters:
p - point location 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 (Clarke 1880).

Returns:
Ellipsoid used in the transformation.

setZone

public void setZone(java.lang.String zoneText)
Sets the zone and projection parameters for subsequent transformations.

Parameters:
zoneText - Text describing zone. Should be one of '1', '2', '3', '4' or '2e'.

getZoneNumber

public int getZoneNumber()
Reports the Lambert zone number used for the projection. Numbers vary from 1 to 4 with 1-3 being north, central and southern sections of France, 4 being Corsica. Note the national 'etendu' zone is 2.

Returns:
Lambert zone number (latitudinal zone).

getZoneLetter

public char getZoneLetter()
Reports the Lambert zone letter. This is 'e' for the national 'etendu' projection or ' ' if not.

Returns:
Lambert zone letter (latitudinal zone).


giCentre Utilities V.3.3, API documentation generated 6th April, 2013