public class KMLCoordinateTokenizer extends Object
-18.3,23.5,0 -19.3,23.4,1 -20.0,23.5,2However, some KML files do not follow the spec and embed white space within the coordinate tuples. This tokenizer attempts to be lenient with whitespace handling. If a tuple ends with a comma, the tokenizer considers the next token in the input stream to be part of the same coordinate, not the start of a new coordinate. For example:
-18.3,23.56,9 34.9, 56.0, 2 56.9, 19 90.0,23.9,44Will be tokenized to four coordinates: (23.56, -18.3, 9), (56.0, 34.9, 2), (56.9, 19, 0), and (90, 23.9, 44). The tokenizer also handles coordinate strings with no embedded white space. For example:
-18.3,23.56,9,34.9,56.0,2Will be tokenized to two coordinates: (23.56, -18.3, 9), (56.0, 34.9, 2)
Modifier and Type | Field and Description |
---|---|
protected boolean |
afterComma |
protected char[] |
buffer |
protected int |
i |
protected boolean |
inWord |
protected StringBuilder |
nextWord |
protected List<String> |
words |
Constructor and Description |
---|
KMLCoordinateTokenizer(String s)
Create a tokenizer to read coordinates from a string.
|
Modifier and Type | Method and Description |
---|---|
boolean |
hasMoreTokens()
Are there more coordinates to read?
|
protected Position |
makePosition() |
Position |
nextPosition()
Read the next
Position from the coordinate string. |
protected void |
wordBoundary() |
protected boolean afterComma
protected char[] buffer
protected int i
protected boolean inWord
protected StringBuilder nextWord
public KMLCoordinateTokenizer(String s)
s
- String to read from.public boolean hasMoreTokens()
protected Position makePosition()
public Position nextPosition() throws NumberFormatException
Position
from the coordinate string.NumberFormatException
- if the coordinates cannot be parsed to a number.protected void wordBoundary()