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 |
} |