@Override public Geometry readField(final byte[] fieldData) { if ((fieldData == null) || (fieldData.length < 1)) { return null; } return GeometryUtils.geometryFromBinary( fieldData, GeometryUtils.MAX_GEOMETRY_PRECISION, FieldUtils.SERIALIZATION_VERSION); }
@Override public Geometry readField(final byte[] fieldData, final byte serializationVersion) { if ((fieldData == null) || (fieldData.length < 1)) { return null; } return GeometryUtils.geometryFromBinary( fieldData, GeometryUtils.MAX_GEOMETRY_PRECISION, serializationVersion); } }
@Override public GeometryWrapper readField(final byte[] fieldData) { return new GeometryWrapper(GeometryUtils.geometryFromBinary(fieldData, geometryPrecision)); } }
public synchronized void init() { if (preparedGeometry == null) { preparedGeometry = FACTORY.create(GeometryUtils.geometryFromBinary(geometryBinary, null)); } }
/** * Converts a byte array as well-known binary to a JTS geometry * * @param binary The well known binary * @return The JTS geometry */ public static Geometry geometryFromBinary( final byte[] binary, final @Nullable Integer precision, final byte serializationVersion) { if (serializationVersion < FieldUtils.SERIALIZATION_VERSION) { try { return new WKBReader().read(binary); } catch (final ParseException e) { LOGGER.warn("Unable to deserialize geometry data", e); } } return geometryFromBinary(binary, precision); }
@Override public void fromBinary(final byte[] bytes) { final ByteBuffer buf = ByteBuffer.wrap(bytes); final int noDataBinaryLength = VarintUtils.readUnsignedInt(buf); final byte[] geometryBinary = new byte[bytes.length - noDataBinaryLength - VarintUtils.unsignedIntByteLength(noDataBinaryLength)]; if (noDataBinaryLength == 0) { noDataPerBand = new double[][] {}; } else { noDataPerBand = new double[VarintUtils.readUnsignedInt(buf)][]; for (int b = 0; b < noDataPerBand.length; b++) { noDataPerBand[b] = new double[VarintUtils.readUnsignedInt(buf)]; for (int i = 0; i < noDataPerBand[b].length; i++) { noDataPerBand[b][i] = buf.getDouble(); } } } if (geometryBinary.length > 0) { buf.get(geometryBinary); shape = GeometryUtils.geometryFromBinary(geometryBinary, GeometryUtils.MAX_GEOMETRY_PRECISION); } else { shape = null; } }
} else if (event.EventType.get() == 3) { missionFrameBuilder.add( GeometryUtils.geometryFromBinary(event.Geometry.getBytes(), null)); missionFrameBuilder.add(event.MissionUUID.toString()); missionFrameBuilder.add(new Date(event.TimeStamp.get())); GeometryUtils.geometryFromBinary(event.Geometry.getBytes(), null)); missionSummaryBuilder.add(event.MissionUUID.toString()); missionSummaryBuilder.add(new Date(event.TimeStamp.get()));