Revision 11205 trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/bindings/LookAtBinding.java
LookAtBinding.java | ||
---|---|---|
3 | 3 |
import java.io.IOException; |
4 | 4 |
import java.util.LinkedHashMap; |
5 | 5 |
|
6 |
import org.gvsig.gpe.gml.factories.IGeometriesFactory;
|
|
6 |
import org.gvsig.gpe.kml.GPEKmlParser;
|
|
7 | 7 |
import org.gvsig.gpe.kml.KmlTags; |
8 |
import org.gvsig.gpe.kml.engine.IReaderFile; |
|
9 | 8 |
import org.gvsig.gpe.kml.exceptions.KmlBodyParseException; |
10 | 9 |
import org.kxml2.io.KXmlParser; |
10 |
import org.xmlpull.v1.XmlPullParser; |
|
11 | 11 |
import org.xmlpull.v1.XmlPullParserException; |
12 | 12 |
|
13 | 13 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana |
... | ... | |
54 | 54 |
* |
55 | 55 |
* $Id$ |
56 | 56 |
* $Log$ |
57 |
* Revision 1.1 2007-03-07 08:19:10 jorpiell |
|
57 |
* Revision 1.2 2007-04-13 13:16:21 jorpiell |
|
58 |
* Add KML reading support |
|
59 |
* |
|
60 |
* Revision 1.1 2007/03/07 08:19:10 jorpiell |
|
58 | 61 |
* Pasadas las clases de KML de libGPE-GML a libGPE-KML |
59 | 62 |
* |
60 | 63 |
* Revision 1.1 2007/02/28 11:48:31 csanchez |
... | ... | |
71 | 74 |
/** |
72 | 75 |
* @author Jorge Piera Llodr? (piera_jor@gva.es) |
73 | 76 |
*/ |
74 |
public class LookAtBinding extends AbstractComplexBinding{ |
|
75 |
|
|
76 |
public LookAtBinding(IGeometriesFactory gFactory) { |
|
77 |
super(gFactory); |
|
78 |
} |
|
77 |
public class LookAtBinding{ |
|
79 | 78 |
|
80 | 79 |
/* |
81 | 80 |
* (non-Javadoc) |
82 | 81 |
* @see org.gvsig.remoteClient.kml.bindings.ComplexBinding#parse(org.gvsig.remoteClient.gmlEngine.readers.IReaderFile) |
83 | 82 |
*/ |
84 |
public Object parse(IReaderFile reader) throws KmlBodyParseException {
|
|
83 |
public static void parse(XmlPullParser parser,GPEKmlParser handler) throws KmlBodyParseException {
|
|
85 | 84 |
boolean endFeature = false; |
86 |
int currentTag; |
|
87 |
LinkedHashMap attributes = new LinkedHashMap(); |
|
88 |
|
|
85 |
int currentTag; |
|
86 |
double longitude; |
|
87 |
double latitude; |
|
88 |
double altitude; |
|
89 |
double range; |
|
90 |
float tilt; |
|
91 |
float heading; |
|
92 |
|
|
89 | 93 |
try { |
90 |
String tag = reader.getName();
|
|
91 |
currentTag = reader.getEventType();
|
|
94 |
String tag = parser.getName();
|
|
95 |
currentTag = parser.getEventType();
|
|
92 | 96 |
|
93 | 97 |
while (!endFeature){ |
94 | 98 |
switch(currentTag){ |
95 | 99 |
case KXmlParser.START_TAG: |
96 | 100 |
if (tag.compareTo(KmlTags.LONGITUDE) == 0){ |
97 |
reader.next();
|
|
98 |
attributes.put(KmlTags.LONGITUDE,reader.getText());
|
|
101 |
parser.next();
|
|
102 |
longitude = new Double(parser.getText()).doubleValue();
|
|
99 | 103 |
}else if (tag.compareTo(KmlTags.LATITUDE) == 0){ |
100 |
reader.next();
|
|
101 |
attributes.put(KmlTags.LATITUDE,reader.getText());
|
|
104 |
parser.next();
|
|
105 |
latitude = new Double(parser.getText()).doubleValue();
|
|
102 | 106 |
}else if (tag.compareTo(KmlTags.ALTITUDE) == 0){ |
103 |
reader.next();
|
|
104 |
attributes.put(KmlTags.ALTITUDE,reader.getText());
|
|
107 |
parser.next();
|
|
108 |
altitude = new Double(parser.getText()).doubleValue();
|
|
105 | 109 |
}else if (tag.compareTo(KmlTags.RANGE) == 0){ |
106 |
reader.next();
|
|
107 |
attributes.put(KmlTags.RANGE,reader.getText());
|
|
110 |
parser.next();
|
|
111 |
altitude = new Double(parser.getText()).doubleValue();
|
|
108 | 112 |
}else if (tag.compareTo(KmlTags.TILT) == 0){ |
109 |
reader.next();
|
|
110 |
attributes.put(KmlTags.TILT,reader.getText());
|
|
113 |
parser.next();
|
|
114 |
tilt = new Float(parser.getText()).floatValue();
|
|
111 | 115 |
}else if (tag.compareTo(KmlTags.HEADING) == 0){ |
112 |
reader.next();
|
|
113 |
attributes.put(KmlTags.HEADING,reader.getText());
|
|
116 |
parser.next();
|
|
117 |
longitude = new Float(parser.getText()).floatValue();
|
|
114 | 118 |
} |
115 | 119 |
break; |
116 | 120 |
case KXmlParser.END_TAG: |
... | ... | |
123 | 127 |
break; |
124 | 128 |
} |
125 | 129 |
if (!endFeature){ |
126 |
currentTag = reader.next();
|
|
127 |
tag = reader.getName();
|
|
130 |
currentTag = parser.next();
|
|
131 |
tag = parser.getName();
|
|
128 | 132 |
} |
129 | 133 |
} |
130 | 134 |
} catch (XmlPullParserException e) { |
131 | 135 |
throw new KmlBodyParseException(e); |
132 | 136 |
} catch (IOException e) { |
133 | 137 |
throw new KmlBodyParseException(e); |
134 |
} |
|
135 |
return attributes; |
|
138 |
} |
|
136 | 139 |
} |
137 | 140 |
} |
Also available in: Unified diff