public static byte[] toEWKB(Geometry<?> geometry) { WkbEncoder encoder = Wkb.newEncoder( Wkb.Dialect.HANA_EWKB ); ByteBuffer bytes = encoder.encode( geometry, ByteOrder.NDR ); return bytes.toByteArray(); } }
/** * Encode the specified {@code Geometry} into a WKB * * @param geometry The value to encode * * @return A byte-array representing the geometry in WKB. */ public static byte[] to(Geometry geometry) { final WkbEncoder encoder = Wkb.newEncoder( Wkb.Dialect.POSTGIS_EWKB_1 ); final ByteBuffer buffer = encoder.encode( geometry, ByteOrder.NDR ); return ( buffer == null ? null : buffer.toByteArray() ); }
@Override protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options) throws SQLException { final WkbEncoder encoder = Wkb.newEncoder( Wkb.Dialect.MYSQL_WKB ); final Geometry geometry = getJavaDescriptor().unwrap( value, Geometry.class, options ); final ByteBuffer buffer = encoder.encode( geometry, ByteOrder.NDR ); final byte[] bytes = ( buffer == null ? null : buffer.toByteArray() ); st.setBytes( index, bytes ); }
@Override protected void doBind(CallableStatement st, X value, String name, WrapperOptions options) throws SQLException { final WkbEncoder encoder = Wkb.newEncoder( Wkb.Dialect.MYSQL_WKB ); final Geometry geometry = getJavaDescriptor().unwrap( value, Geometry.class, options ); final ByteBuffer buffer = encoder.encode( geometry, ByteOrder.NDR ); final byte[] bytes = ( buffer == null ? null : buffer.toByteArray() ); st.setBytes( name, bytes ); } };
private PGobject toPGobject(X value, WrapperOptions options) throws SQLException { final WkbEncoder encoder = Wkb.newEncoder( Wkb.Dialect.POSTGIS_EWKB_1 ); final Geometry geometry = getJavaDescriptor().unwrap( value, Geometry.class, options ); final String hexString = encoder.encode( geometry, ByteOrder.NDR ).toString(); final PGobject obj = new PGobject(); obj.setType( "geometry" ); obj.setValue( hexString ); return obj; }
/** * Encodes a <code>Geometry</code> into a WKB representation using the specified byte-order. * <p>This methods uses the default WKB dialect (Postgis v1.5 EWKB ).</p> * * @param geometry The <code>Geometry</code> to be encoded as WKB. * @param byteOrder The WKB byte order, either {@link ByteOrder#XDR XDR} or {@link ByteOrder#NDR NDR} * @return A buffer of bytes that contains the WKB-encoded <code>Geometry</code>. */ public static ByteBuffer toWkb(Geometry<?> geometry, ByteOrder byteOrder) { WkbEncoder encoder = newEncoder(DEFAULT_DIALECT); return encoder.encode(geometry, byteOrder); }
@Override public void setValue(PreparedStatement st, int startIndex, Geometry value) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(value, byteOrder); st.setBytes(startIndex, buffer.toByteArray()); }
@Override public void setValue(PreparedStatement st, int startIndex, Geometry value) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(value, byteOrder); st.setBytes(startIndex, buffer.toByteArray()); }
@Override public void setValue(PreparedStatement st, int startIndex, Geometry value) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(value, byteOrder); st.setBytes(startIndex, buffer.toByteArray()); }
@Override public void setValue(PreparedStatement st, int startIndex, Geometry value) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(value, byteOrder); st.setBytes(startIndex, buffer.toByteArray()); }
@Override public void setValue(PreparedStatement st, int startIndex, Geometry value) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(value, byteOrder); int srid = value.getSRID(); // prepend srid into first 4 bytes byte[] wkb = buffer.toByteArray(); byte[] bytes = new byte[wkb.length + 4]; bytes[3] = (byte) ((srid >> 24) & 0xFF); bytes[2] = (byte) ((srid >> 16) & 0xFF); bytes[1] = (byte) ((srid >> 8) & 0xFF); bytes[0] = (byte) (srid & 0xFF); System.arraycopy(wkb, 0, bytes, 4, wkb.length); st.setBytes(startIndex, bytes); }
@Override public void setValue(PreparedStatement st, int startIndex, Geometry value) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(value, byteOrder); int srid = value.getSRID(); // prepend srid into first 4 bytes byte[] wkb = buffer.toByteArray(); byte[] bytes = new byte[wkb.length + 4]; bytes[3] = (byte) ((srid >> 24) & 0xFF); bytes[2] = (byte) ((srid >> 16) & 0xFF); bytes[1] = (byte) ((srid >> 8) & 0xFF); bytes[0] = (byte) (srid & 0xFF); System.arraycopy(wkb, 0, bytes, 4, wkb.length); st.setBytes(startIndex, bytes); }
@Override public void setObject(PreparedStatement stmt, int parameterIndex, Object x) throws SQLException { Geometry<?> geometry=Converters.getDefault().convertObject(x, org.geolatte.geom.Geometry.class); WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); ByteBuffer buffer = encoder.encode(geometry, ByteOrder.NDR); stmt.setBytes(parameterIndex, buffer.toByteArray()); } }
@Override public void setObject(PreparedStatement stmt, int parameterIndex, Object x) throws SQLException { Geometry<?> geometry=Converters.getDefault().convertObject(x, org.geolatte.geom.Geometry.class); WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.POSTGIS_EWKB_1); byte[] bytes = encoder.encode(geometry, ByteOrder.NDR).toByteArray(); stmt.setBytes(parameterIndex, bytes); } }
@Override public void setObject(PreparedStatement stmt, int parameterIndex, Object x) throws SQLException { WkbEncoder encoder = Wkb.newEncoder(Wkb.Dialect.MYSQL_WKB); Geometry<?> geometry = Converters.getDefault().convertObject(x, Geometry.class); ByteBuffer buffer = encoder.encode(geometry, ByteOrder.NDR); byte[] bytes = buffer == null ? null : buffer.toByteArray(); stmt.setBytes(parameterIndex, bytes); } }