Class AngleFormat
- All Implemented Interfaces:
Serializable
,Cloneable
D
The integer part of degrees d
The fractional part of degrees M
The integer part of minutes m
The fractional part of minutes S
The integer part of seconds s
The fractional part of seconds .
The decimal separator
Upper-case letters D
, M
and S
are for the integer parts of degrees, minutes and seconds
respectively. They must appear in this order (e.g. "M'D
" is illegal because "M" and "S" are inverted; "
D°S
" is illegal too because there is no "M" between "D" and "S"). Lower-case letters d
,
m
and s
are for fractional parts of degrees, minutes and seconds respectively. Only one of those may
appears in a pattern, and it must be the last special symbol (e.g. "D.dd°MM'
" is illegal because "d" is
followed by "M"; "D.mm
" is illegal because "m" is not the fractional part of "D").
The number of occurrence of D
, M
, S
and their lower-case counterpart is the number of
digits to format. For example, "DD.ddd" will format angle with two digits for the integer part and three digits for
the fractional part (e.g. 4.4578 will be formatted as "04.458"). Separator characters like °
, '
and "
and inserted "as-is" in the formatted string (except the decimal separator dot
(".
"), which is replaced by the local-dependent decimal separator). Separator characters may be completely
omitted; AngleFormat
will still differentiate degrees, minutes and seconds fields according the pattern. For
example, "0480439
" with the pattern "DDDMMmm
" will be parsed as 48°04.39'.
The following table gives some examples of legal patterns.
Pattern Example DD°MM'SS"
48°30'00" DD°MM'
48°30' DD.ddd
48.500 DDMM
4830 DDMMSS
483000
- Since:
- 2.0
- Author:
- Martin Desruisseaux (PMO, IRD)
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Set the rounding method to use when the last significant digit in a value is 5.Nested classes/interfaces inherited from class Format
Format.Field
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final AngleFormat.RoundingMethod
The default rounding method (AngleFormat.RoundingMethod.ROUND_HALF_EVEN).static final int
Constant for degrees field.static final int
Constant for hemisphere field.static final int
Constant for minutes field.static final int
Constant for seconds field. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a newAngleFormat
using the current default locale and a default pattern.AngleFormat
(String pattern) Constructs a newAngleFormat
using the current default locale and the specified pattern.AngleFormat
(String pattern, DecimalFormatSymbols symbols) Constructs a newAngleFormat
using the specified pattern and decimal symbols.AngleFormat
(String pattern, Locale locale) Constructs a newAngleFormat
using the specified pattern and locale. -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyPattern
(String pattern) Sets the pattern to use for parsing and formatting angle.boolean
Compares this format with the specified object for equality.final String
format
(double angle) Format an angle.format
(double angle, StringBuffer toAppendTo, FieldPosition pos) Formats an angle and appends the resulting text to a given string buffer.format
(Object obj, StringBuffer toAppendTo, FieldPosition pos) Formats an angle, a latitude or a longitude and appends the resulting text to a given string buffer.static AngleFormat.RoundingMethod
Get the default rounding method.static AngleFormat
getInstance
(Locale locale) Constructs a newAngleFormat
for the specified locale.static AngleFormat.RoundingMethod
Get the rounding method being used by this instance.int
hashCode()
Returns a "hash value" for this object.Parses a string as an angle.parse
(String source, ParsePosition pos) Parses a string as an angle.parseObject
(String source) Parses a string as an object.parseObject
(String source, ParsePosition pos) Parses a substring as an angle.static void
Set the default rounding method for all instances of this class to use when the last significant digit of a value is 5.void
Set the rounding method for this instance to use when the last significant digit of a value is 5.Returns the pattern used for parsing and formatting angles.toString()
Returns a string representation of this object.Methods inherited from class Format
clone, format, formatToCharacterIterator
-
Field Details
-
DEGREES_FIELD
public static final int DEGREES_FIELDConstant for degrees field. When formatting a string, this value may be specified to theFieldPosition
constructor in order to get the bounding index where degrees have been written.- See Also:
-
MINUTES_FIELD
public static final int MINUTES_FIELDConstant for minutes field. When formatting a string, this value may be specified to theFieldPosition
constructor in order to get the bounding index where minutes have been written.- See Also:
-
SECONDS_FIELD
public static final int SECONDS_FIELDConstant for seconds field. When formatting a string, this value may be specified to theFieldPosition
constructor in order to get the bounding index where seconds have been written.- See Also:
-
HEMISPHERE_FIELD
public static final int HEMISPHERE_FIELDConstant for hemisphere field. When formatting a string, this value may be specified to theFieldPosition
constructor in order to get the bounding index where the hemisphere synbol has been written.- See Also:
-
DEFAULT_ROUNDING_METHOD
The default rounding method (AngleFormat.RoundingMethod.ROUND_HALF_EVEN).
-
-
Constructor Details
-
AngleFormat
public AngleFormat()Constructs a newAngleFormat
using the current default locale and a default pattern. -
AngleFormat
Constructs a newAngleFormat
using the current default locale and the specified pattern.- Parameters:
pattern
- Pattern to use for parsing and formatting angle. See class description for an explanation of how this pattern work.- Throws:
IllegalArgumentException
- If the specified pattern is not legal.
-
AngleFormat
Constructs a newAngleFormat
using the specified pattern and locale.- Parameters:
pattern
- Pattern to use for parsing and formatting angle. See class description for an explanation of how this pattern work.locale
- Locale to use.- Throws:
IllegalArgumentException
- If the specified pattern is not legal.
-
AngleFormat
Constructs a newAngleFormat
using the specified pattern and decimal symbols.- Parameters:
pattern
- Pattern to use for parsing and formatting angle. See class description for an explanation of how this pattern work.symbols
- The symbols to use for parsing and formatting numbers.- Throws:
IllegalArgumentException
- If the specified pattern is not legal.
-
-
Method Details
-
getInstance
Constructs a newAngleFormat
for the specified locale.- Parameters:
locale
- The locale.- Returns:
- An angle format in the given locale.
-
setDefaultRoundingMethod
Set the default rounding method for all instances of this class to use when the last significant digit of a value is 5.Note: this will not affect the rounding method being used by instances of this class created previously.
- Parameters:
method
- one of AngleFormat.RoundingMethod constants- See Also:
-
getDefaultRoundingMethod
Get the default rounding method.- Returns:
- the default rounding method.
-
setRoundingMethod
Set the rounding method for this instance to use when the last significant digit of a value is 5. If the rounding method has previously been set globally with the static setDefaultRoundingMethod(org.geotools.measure.AngleFormat.RoundingMethod) method, setting a different method here will take precedence for this instance.- Parameters:
method
- one of AngleFormat.RoundingMethod constants- See Also:
-
getRoundingMethod
Get the rounding method being used by this instance.- Returns:
- the rounding method for this instance
-
applyPattern
Sets the pattern to use for parsing and formatting angle. See class description for an explanation of how patterns work.- Parameters:
pattern
- Pattern to use for parsing and formatting angle.- Throws:
IllegalArgumentException
- If the specified pattern is not legal.
-
toPattern
Returns the pattern used for parsing and formatting angles. See class description for an explanation of how patterns work.- Returns:
- The formatting pattern.
-
format
Format an angle. The string will be formatted according the pattern set in the last call toapplyPattern(java.lang.String)
.- Parameters:
angle
- Angle to format, in degrees.- Returns:
- The formatted string.
-
format
Formats an angle and appends the resulting text to a given string buffer. The string will be formatted according the pattern set in the last call toapplyPattern(java.lang.String)
.- Parameters:
angle
- Angle to format, in degrees.toAppendTo
- Where the text is to be appended.pos
- An optionalFieldPosition
identifying a field in the formatted text, ornull
if this information is not wanted. This field position shall be constructed with one of the following constants:DEGREES_FIELD
,MINUTES_FIELD
,SECONDS_FIELD
orHEMISPHERE_FIELD
.- Returns:
- The string buffer passed in as
toAppendTo
, with formatted text appended.
-
format
public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) throws IllegalArgumentException Formats an angle, a latitude or a longitude and appends the resulting text to a given string buffer. The string will be formatted according the pattern set in the last call toapplyPattern(java.lang.String)
. The argumentobj
shall be anAngle
object or one of its derived class (Latitude
,Longitude
). Ifobj
is aLatitude
object, then a symbol "N" or "S" will be appended to the end of the string (the symbol will be choosen according the angle's sign). Otherwise, ifobj
is aLongitude
object, then a symbol "E" or "W" will be appended to the end of the string. Otherwise, no hemisphere symbol will be appended.
Strictly speaking, formatting ordinary numbers is not theAngleFormat
's job. Nevertheless, this method acceptNumber
objects. This capability is provided only as a convenient way to format altitude numbers together with longitude and latitude angles.- Specified by:
format
in classFormat
- Parameters:
obj
-Angle
orNumber
object to format.toAppendTo
- Where the text is to be appended.pos
- An optionalFieldPosition
identifying a field in the formatted text, ornull
if this information is not wanted. This field position shall be constructed with one of the following constants:DEGREES_FIELD
,MINUTES_FIELD
,SECONDS_FIELD
orHEMISPHERE_FIELD
.- Returns:
- The string buffer passed in as
toAppendTo
, with formatted text appended. - Throws:
IllegalArgumentException
- ifobj
if not an object of classAngle
orNumber
.
-
parse
Parses a string as an angle. This method can parse an angle even if it doesn't comply exactly to the expected pattern. For example, this method will parse correctly string "48°12.34'
" even if the expected pattern was "DDMM.mm
" (i.e. the string should have been "4812.34
"). Spaces between degrees, minutes and secondes are ignored. If the string ends with an hemisphere symbol "N" or "S", then this method returns an object of classLatitude
. Otherwise, if the string ends with an hemisphere symbol "E" or "W", then this method returns an object of classLongitude
. Otherwise, this method returns an object of classAngle
. -
parse
Parses a string as an angle.- Parameters:
source
- The string to parse.- Returns:
- The parsed string as an
Angle
,Latitude
orLongitude
object. - Throws:
ParseException
- if the string has not been fully parsed.
-
parseObject
Parses a substring as an angle. Default implementation invokesparse(String, ParsePosition)
.- Specified by:
parseObject
in classFormat
- Parameters:
source
- A String whose beginning should be parsed.pos
- Position where to start parsing.- Returns:
- The parsed string as an
Angle
,Latitude
orLongitude
object.
-
parseObject
Parses a string as an object. Default implementation invokesparse(String)
.- Overrides:
parseObject
in classFormat
- Parameters:
source
- The string to parse.- Returns:
- The parsed string as an
Angle
,Latitude
orLongitude
object. - Throws:
ParseException
- if the string has not been fully parsed.
-
hashCode
public int hashCode()Returns a "hash value" for this object. -
equals
Compares this format with the specified object for equality. -
toString
Returns a string representation of this object.
-