writeToList method
void
writeToList(
- Geometry g,
- List<int> out
)
Implementation
void writeToList(Geometry g, List<int> out) {
GeometryHeaderFlags flags = new GeometryHeaderFlags(0);
flags.setBinaryType(GeopackageBinaryType.StandardGeoPackageBinary);
flags.setEmpty(g.isEmpty());
flags.setEndianess(Endian.big);
flags.setEnvelopeIndicator(
writeEnvelope ? EnvelopeType.XY : EnvelopeType.NONE);
GeometryHeader h = new GeometryHeader();
h.setVersion(0);
h.setFlags(flags);
h.setSrid(g.getSRID());
if (writeEnvelope) {
h.setEnvelope(g.getEnvelopeInternal());
}
// write out magic + flags + srid + envelope
out.add(0x47);
out.add(0x50);
out.add(h.getVersion());
out.add(flags.toByte());
Endian endian = flags.getEndianess();
out.addAll(bytesFromInt32(g.getSRID(), endian));
if (flags.getEnvelopeIndicator() != EnvelopeType.NONE) {
Envelope env = g.getEnvelopeInternal();
out.addAll(bytesFromDouble(env.getMinX(), endian));
out.addAll(bytesFromDouble(env.getMaxX(), endian));
out.addAll(bytesFromDouble(env.getMinY(), endian));
out.addAll(bytesFromDouble(env.getMaxY(), endian));
}
new WKBWriter.withDimOrder(dim, endian).writeStream(g, out);
}