root / branches / v1_9_0 / libGPE-GML / src / org / gvsig / gpe / gml / writer / sfp0 / geometries / PosWriter.java @ 48
History | View | Annotate | Download (1.2 KB)
1 |
package org.gvsig.gpe.gml.writer.sfp0.geometries; |
---|---|
2 |
|
3 |
import java.io.IOException; |
4 |
|
5 |
import org.gvsig.gpe.gml.utils.GMLTags; |
6 |
import org.gvsig.gpe.gml.writer.GPEGmlWriterHandlerImplementor; |
7 |
import org.gvsig.gpe.gml.writer.v2.geometries.CoordWriter; |
8 |
import org.gvsig.gpe.parser.ICoordinateIterator; |
9 |
import org.gvsig.gpe.writer.ICoordinateSequence; |
10 |
import org.gvsig.gpe.xml.stream.EventType; |
11 |
import org.gvsig.gpe.xml.stream.IXmlStreamWriter; |
12 |
|
13 |
public class PosWriter extends CoordWriter { |
14 |
|
15 |
double[] buffer = new double[3]; |
16 |
|
17 |
public void write(IXmlStreamWriter writer, GPEGmlWriterHandlerImplementor handler, |
18 |
ICoordinateSequence coords) throws IOException { |
19 |
|
20 |
final ICoordinateIterator iterator = coords.iterator();
|
21 |
final int dimension = iterator.getDimension(); |
22 |
if (buffer.length < dimension) {
|
23 |
buffer = new double[dimension]; |
24 |
} |
25 |
while (coords.iterator().hasNext()) {
|
26 |
iterator.next(buffer); |
27 |
writer.writeStartElement(GMLTags.GML_POS); |
28 |
writer.startArray(EventType.VALUE_DOUBLE, dimension); |
29 |
writer.writeValue(buffer, 0, dimension);
|
30 |
writer.endArray(); |
31 |
writer.writeEndElement(); |
32 |
} |
33 |
} |
34 |
} |