public class AngleFormat extends Format
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
Angle
,
Latitude
,
Longitude
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
AngleFormat.RoundingMethod
Set the rounding method to use when the last significant digit in a value is 5.
|
Format.Field
Modifier and Type | Field and Description |
---|---|
static AngleFormat.RoundingMethod |
DEFAULT_ROUNDING_METHOD
The default rounding method (AngleFormat.RoundingMethod.ROUND_HALF_EVEN).
|
static int |
DEGREES_FIELD
Constant for degrees field.
|
static int |
HEMISPHERE_FIELD
Constant for hemisphere field.
|
static int |
MINUTES_FIELD
Constant for minutes field.
|
static int |
SECONDS_FIELD
Constant for seconds field.
|
Constructor and Description |
---|
AngleFormat()
Constructs a new
AngleFormat using the current default locale and a default pattern. |
AngleFormat(String pattern)
Constructs a new
AngleFormat using the current default locale and the specified
pattern. |
AngleFormat(String pattern,
DecimalFormatSymbols symbols)
Constructs a new
AngleFormat using the specified pattern and decimal symbols. |
AngleFormat(String pattern,
Locale locale)
Constructs a new
AngleFormat using the specified pattern and locale. |
Modifier and Type | Method and Description |
---|---|
void |
applyPattern(String pattern)
Sets the pattern to use for parsing and formatting angle.
|
boolean |
equals(Object obj)
Compares this format with the specified object for equality.
|
String |
format(double angle)
Format an angle.
|
StringBuffer |
format(double angle,
StringBuffer toAppendTo,
FieldPosition pos)
Formats an angle and appends the resulting text to a given string buffer.
|
StringBuffer |
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 |
getDefaultRoundingMethod()
Get the default rounding method.
|
static AngleFormat |
getInstance(Locale locale)
Constructs a new
AngleFormat for the specified locale. |
static AngleFormat.RoundingMethod |
getRoundingMethod()
Get the rounding method being used by this instance.
|
int |
hashCode()
Returns a "hash value" for this object.
|
Angle |
parse(String source)
Parses a string as an angle.
|
Angle |
parse(String source,
ParsePosition pos)
Parses a string as an angle.
|
Angle |
parseObject(String source)
Parses a string as an object.
|
Angle |
parseObject(String source,
ParsePosition pos)
Parses a substring as an angle.
|
static void |
setDefaultRoundingMethod(AngleFormat.RoundingMethod method)
Set the default rounding method for all instances of this class to use when the last
significant digit of a value is 5.
|
void |
setRoundingMethod(AngleFormat.RoundingMethod method)
Set the rounding method for this instance to use when the last significant digit of a value
is 5.
|
String |
toPattern()
Returns the pattern used for parsing and formatting angles.
|
String |
toString()
Returns a string representation of this object.
|
clone, format, formatToCharacterIterator
public static final int DEGREES_FIELD
FieldPosition
constructor in order to get the bounding index where degrees
have been written.public static final int MINUTES_FIELD
FieldPosition
constructor in order to get the bounding index where minutes
have been written.public static final int SECONDS_FIELD
FieldPosition
constructor in order to get the bounding index where seconds
have been written.public static final int HEMISPHERE_FIELD
FieldPosition
constructor in order to get the bounding index where the
hemisphere synbol has been written.public static final AngleFormat.RoundingMethod DEFAULT_ROUNDING_METHOD
public AngleFormat()
AngleFormat
using the current default locale and a default pattern.public AngleFormat(String pattern) throws IllegalArgumentException
AngleFormat
using the current default locale and the specified
pattern.pattern
- Pattern to use for parsing and formatting angle. See class description for an
explanation of how this pattern work.IllegalArgumentException
- If the specified pattern is not legal.public AngleFormat(String pattern, Locale locale) throws IllegalArgumentException
AngleFormat
using the specified pattern and locale.pattern
- Pattern to use for parsing and formatting angle. See class description for an
explanation of how this pattern work.locale
- Locale to use.IllegalArgumentException
- If the specified pattern is not legal.public AngleFormat(String pattern, DecimalFormatSymbols symbols)
AngleFormat
using the specified pattern and decimal symbols.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.IllegalArgumentException
- If the specified pattern is not legal.public static AngleFormat getInstance(Locale locale)
AngleFormat
for the specified locale.locale
- The locale.public static void setDefaultRoundingMethod(AngleFormat.RoundingMethod method)
Note: this will not affect the rounding method being used by instances of this class created previously.
method
- one of AngleFormat.RoundingMethod constantssetRoundingMethod(org.geotools.measure.AngleFormat.RoundingMethod)
,
DEFAULT_ROUNDING_METHOD
public static AngleFormat.RoundingMethod getDefaultRoundingMethod()
public void setRoundingMethod(AngleFormat.RoundingMethod method)
method
- one of AngleFormat.RoundingMethod constantssetDefaultRoundingMethod(org.geotools.measure.AngleFormat.RoundingMethod)
,
DEFAULT_ROUNDING_METHOD
public static AngleFormat.RoundingMethod getRoundingMethod()
public void applyPattern(String pattern) throws IllegalArgumentException
pattern
- Pattern to use for parsing and formatting angle.IllegalArgumentException
- If the specified pattern is not legal.public String toPattern()
public final String format(double angle)
applyPattern(java.lang.String)
.angle
- Angle to format, in degrees.public StringBuffer format(double angle, StringBuffer toAppendTo, FieldPosition pos)
applyPattern(java.lang.String)
.angle
- Angle to format, in degrees.toAppendTo
- Where the text is to be appended.pos
- An optional FieldPosition
identifying a field in the formatted text, or
null
if this information is not wanted. This field position shall be constructed
with one of the following constants: DEGREES_FIELD
, MINUTES_FIELD
,
SECONDS_FIELD
or HEMISPHERE_FIELD
.toAppendTo
, with formatted text appended.public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) throws IllegalArgumentException
applyPattern(java.lang.String)
. The argument obj
shall be an Angle
object or one of its
derived class (Latitude
, Longitude
). If obj
is a Latitude
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, if obj
is a Longitude
object, then a symbol "E" or "W" will be appended to the end of the string. Otherwise, no
hemisphere symbol will be appended. AngleFormat
's job.
Nevertheless, this method accept Number
objects. This capability is provided only as
a convenient way to format altitude numbers together with longitude and latitude angles.format
in class Format
obj
- Angle
or Number
object to format.toAppendTo
- Where the text is to be appended.pos
- An optional FieldPosition
identifying a field in the formatted text, or
null
if this information is not wanted. This field position shall be constructed
with one of the following constants: DEGREES_FIELD
, MINUTES_FIELD
,
SECONDS_FIELD
or HEMISPHERE_FIELD
.toAppendTo
, with formatted text appended.IllegalArgumentException
- if obj
if not an object of class Angle
or
Number
.public Angle parse(String source, ParsePosition pos)
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
class Latitude
. Otherwise, if the string ends with an hemisphere symbol "E" or "W",
then this method returns an object of class Longitude
. Otherwise, this method returns
an object of class Angle
.public Angle parse(String source) throws ParseException
source
- The string to parse.Angle
, Latitude
or Longitude
object.ParseException
- if the string has not been fully parsed.public Angle parseObject(String source, ParsePosition pos)
parse(String,
ParsePosition)
.parseObject
in class Format
source
- A String whose beginning should be parsed.pos
- Position where to start parsing.Angle
, Latitude
or Longitude
object.public Angle parseObject(String source) throws ParseException
parse(String)
.parseObject
in class Format
source
- The string to parse.Angle
, Latitude
or Longitude
object.ParseException
- if the string has not been fully parsed.public int hashCode()
public boolean equals(Object obj)
Copyright © 1996–2019 Geotools. All rights reserved.