Revision 11205 trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/bindings/LookAtBinding.java

View differences:

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