Statistics
| Revision:

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
}