Statistics
| Revision:

root / branches / v1_9_0 / libGPE-GML / src / org / gvsig / gpe / gml / writer / sfp0 / geometries / PosListWriter.java @ 48

History | View | Annotate | Download (1.18 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.CoordinatesWriter;
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 PosListWriter extends CoordinatesWriter {
14

    
15
    public void write(IXmlStreamWriter writer, GPEGmlWriterHandlerImplementor handler,
16
            ICoordinateSequence coords) throws IOException {
17

    
18
        writer.writeStartElement(GMLTags.GML_POSLIST);
19

    
20
        ICoordinateIterator iterator = coords.iterator();
21

    
22
        final int size = coords.getSize();
23
        final int arrayLength = size * iterator.getDimension();
24

    
25
        writer.startArray(EventType.VALUE_DOUBLE, arrayLength);
26
        double[] buffer = new double[iterator.getDimension()];
27

    
28
        while (iterator.hasNext()) {
29
            iterator.next(buffer);
30
            writer.writeValue(buffer, 0, buffer.length);
31
        }
32
        writer.endArray();
33
        writer.writeEndElement();
34
    }
35

    
36
}