public class KMLCoordinateTokenizer
extends java.lang.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 java.lang.StringBuilder | 
nextWord  | 
protected java.util.List<java.lang.String> | 
words  | 
| Constructor and Description | 
|---|
KMLCoordinateTokenizer(java.lang.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 java.lang.StringBuilder nextWord
protected java.util.List<java.lang.String> words
public KMLCoordinateTokenizer(java.lang.String s)
s - String to read from.public boolean hasMoreTokens()
protected Position makePosition()
public Position nextPosition() throws java.lang.NumberFormatException
Position from the coordinate string.java.lang.NumberFormatException - if the coordinates cannot be parsed to a number.protected void wordBoundary()