Revision 27300 trunk/libraries/libGPE-GML/src/org/gvsig/gpe/gml/parser/sfp0/coordinates/PosListTypeIterator.java

View differences:

PosListTypeIterator.java
31 31
			if (CompareUtils.compareWithNamespace(parser.getAttributeName(i),GMLTags.GML_DIMENSION)){
32 32
				dimension = Integer.valueOf(parser.getAttributeValue(i)).intValue();
33 33
			}
34
		}		
34
		}	
35
		
36
		if (dimension == -1){
37
			dimension = 2;
38
		}
35 39

  
36 40
		QName tag = parser.getName();
37 41
		currentTag = parser.getEventType();
......
72 76
	 * @see org.gvsig.gpe.parser.ICoordinateIterator#next(double[])
73 77
	 */
74 78
	public void next(double[] buffer) throws IOException {
75
		String next = coordinatesString.nextToken();	
76
		int coordenada = 0;
77

  
78
		switch (coordenada){
79
		case 0:
80
			buffer[0] = DoubleTypeBinding.parse(next,COORDINATES_DECIMAL);
81
			coordenada ++;
82
			next = coordinatesString.nextToken();
83
			break;
84
		case 1:
85
			buffer[1]  = DoubleTypeBinding.parse(next,COORDINATES_DECIMAL);
86
			coordenada ++;
87
			coordinatesString.hasMoreTokens();
88
			next = coordinatesString.nextToken();
89
			break;
90
		case 2:
91
			if (dimension == 3){
92
				buffer[2]  = DoubleTypeBinding.parse(next,COORDINATES_DECIMAL);
93
				coordinatesString.hasMoreTokens();
79
		String next = null;
80
		for (int i=0 ; i<dimension ; i++){
81
			if (i != 0){
82
				if (coordinatesString.hasMoreTokens()){
83
					next = coordinatesString.nextToken();
84
				}else{
85
					return;
86
				}
87
			}else{
94 88
				next = coordinatesString.nextToken();
95 89
			}
96
			coordenada=0;
97
			break;
90
			buffer[i] = DoubleTypeBinding.parse(next,COORDINATES_DECIMAL);
98 91
		}
99 92
	}
100 93
}

Also available in: Unified diff