Package org.meteoinfo.projection.proj4j
Class ProjCoordinate
- java.lang.Object
-
- org.meteoinfo.projection.proj4j.ProjCoordinate
-
public class ProjCoordinate extends java.lang.ObjectStores a the coordinates for a position defined relative to someCoordinateReferenceSystem. The coordinate is defined via X, Y, and optional Z ordinates. Provides utility methods for comparing the ordinates of two positions and for creating positions from Strings/storing positions as strings.The primary use of this class is to represent coordinate values which are to be transformed by a
CoordinateTransform.
-
-
Field Summary
Fields Modifier and Type Field Description static java.text.DecimalFormatDECIMAL_FORMATstatic java.lang.StringDECIMAL_FORMAT_PATTERNdoublexThe X ordinate for this point.doubleyThe Y ordinate for this point.doublezThe Z ordinate for this point.
-
Constructor Summary
Constructors Constructor Description ProjCoordinate()Creates a ProjCoordinate with default ordinate values.ProjCoordinate(double argX, double argY)Creates a ProjCoordinate using the provided double parameters.ProjCoordinate(double argX, double argY, double argZ)Creates a ProjCoordinate using the provided double parameters.ProjCoordinate(java.lang.String argToParse)Create a ProjCoordinate by parsing a String in the same format as returned by the toString method defined by this class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanareXOrdinatesEqual(ProjCoordinate argToCompare, double argTolerance)Returns a boolean indicating if the X ordinate value of the ProjCoordinate provided as an ordinate is equal to the X ordinate value of this ProjCoordinate.booleanareYOrdinatesEqual(ProjCoordinate argToCompare, double argTolerance)Returns a boolean indicating if the Y ordinate value of the ProjCoordinate provided as an ordinate is equal to the Y ordinate value of this ProjCoordinate.booleanareZOrdinatesEqual(ProjCoordinate argToCompare, double argTolerance)Returns a boolean indicating if the Z ordinate value of the ProjCoordinate provided as an ordinate is equal to the Z ordinate value of this ProjCoordinate.voidclearZ()booleanequals(java.lang.Object other)inthashCode()Gets a hashcode for this coordinate.booleanhasValidXandYOrdinates()Indicates if this ProjCoordinate has valid X ordinate and Y ordinate values.booleanhasValidZOrdinate()voidsetValue(double x, double y)Sets the value of this coordinate to be equal to the given ordinates.voidsetValue(double x, double y, double z)Sets the value of this coordinate to be equal to the given ordinates.voidsetValue(ProjCoordinate p)Sets the value of this coordinate to be equal to the given coordinate's ordinates.java.lang.StringtoShortString()Returns a string representing the ProjPoint in the format: [X Y] or [X, Y, Z].java.lang.StringtoString()Returns a string representing the ProjPoint in the format: ProjCoordinate[X Y Z].
-
-
-
Field Detail
-
DECIMAL_FORMAT_PATTERN
public static java.lang.String DECIMAL_FORMAT_PATTERN
-
DECIMAL_FORMAT
public static java.text.DecimalFormat DECIMAL_FORMAT
-
x
public double x
The X ordinate for this point.Note: This member variable can be accessed directly. In the future this direct access should be replaced with getter and setter methods. This will require refactoring of the Proj4J code base.
-
y
public double y
The Y ordinate for this point.Note: This member variable can be accessed directly. In the future this direct access should be replaced with getter and setter methods. This will require refactoring of the Proj4J code base.
-
z
public double z
The Z ordinate for this point. If this variable has the value Double.NaN then this coordinate does not have a Z value.Note: This member variable can be accessed directly. In the future this direct access should be replaced with getter and setter methods. This will require refactoring of the Proj4J code base.
-
-
Constructor Detail
-
ProjCoordinate
public ProjCoordinate()
Creates a ProjCoordinate with default ordinate values.
-
ProjCoordinate
public ProjCoordinate(double argX, double argY, double argZ)Creates a ProjCoordinate using the provided double parameters. The first double parameter is the x ordinate (or easting), the second double parameter is the y ordinate (or northing), and the third double parameter is the z ordinate (elevation or height). Valid values should be passed for all three (3) double parameters. If you want to create a horizontal-only point without a valid Z value, use the constructor defined in this class that only accepts two (2) double parameters.- See Also:
ProjCoordinate(double argX, double argY)
-
ProjCoordinate
public ProjCoordinate(double argX, double argY)Creates a ProjCoordinate using the provided double parameters. The first double parameter is the x ordinate (or easting), the second double parameter is the y ordinate (or northing). This constructor is used to create a "2D" point, so the Z ordinate is automatically set to Double.NaN.
-
ProjCoordinate
public ProjCoordinate(java.lang.String argToParse)
Create a ProjCoordinate by parsing a String in the same format as returned by the toString method defined by this class.- Parameters:
argToParse- the string to parse
-
-
Method Detail
-
setValue
public void setValue(ProjCoordinate p)
Sets the value of this coordinate to be equal to the given coordinate's ordinates.- Parameters:
p- the coordinate to copy
-
setValue
public void setValue(double x, double y)Sets the value of this coordinate to be equal to the given ordinates. The Z ordinate is set to NaN.- Parameters:
x- the x ordinatey- the y ordinate
-
setValue
public void setValue(double x, double y, double z)Sets the value of this coordinate to be equal to the given ordinates.- Parameters:
x- the x ordinatey- the y ordinatez- the z ordinate
-
clearZ
public void clearZ()
-
areXOrdinatesEqual
public boolean areXOrdinatesEqual(ProjCoordinate argToCompare, double argTolerance)
Returns a boolean indicating if the X ordinate value of the ProjCoordinate provided as an ordinate is equal to the X ordinate value of this ProjCoordinate. Because we are working with floating point numbers the ordinates are considered equal if the difference between them is less than the specified tolerance.
-
areYOrdinatesEqual
public boolean areYOrdinatesEqual(ProjCoordinate argToCompare, double argTolerance)
Returns a boolean indicating if the Y ordinate value of the ProjCoordinate provided as an ordinate is equal to the Y ordinate value of this ProjCoordinate. Because we are working with floating point numbers the ordinates are considered equal if the difference between them is less than the specified tolerance.
-
areZOrdinatesEqual
public boolean areZOrdinatesEqual(ProjCoordinate argToCompare, double argTolerance)
Returns a boolean indicating if the Z ordinate value of the ProjCoordinate provided as an ordinate is equal to the Z ordinate value of this ProjCoordinate. Because we are working with floating point numbers the ordinates are considered equal if the difference between them is less than the specified tolerance. If both Z ordinate values are Double.NaN this method will return true. If one Z ordinate value is a valid double value and one is Double.Nan, this method will return false.
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
Gets a hashcode for this coordinate.- Overrides:
hashCodein classjava.lang.Object- Returns:
- a hashcode for this coordinate
-
toString
public java.lang.String toString()
Returns a string representing the ProjPoint in the format: ProjCoordinate[X Y Z].Example:
ProjCoordinate[6241.11 5218.25 12.3]- Overrides:
toStringin classjava.lang.Object
-
toShortString
public java.lang.String toShortString()
Returns a string representing the ProjPoint in the format: [X Y] or [X, Y, Z]. Z is not displayed if it is NaN.Example:
[6241.11, 5218.25, 12.3]
-
hasValidZOrdinate
public boolean hasValidZOrdinate()
-
hasValidXandYOrdinates
public boolean hasValidXandYOrdinates()
Indicates if this ProjCoordinate has valid X ordinate and Y ordinate values. Values are considered invalid if they are Double.NaN or positive/negative infinity.
-
-