本文整理汇总了Java中com.vividsolutions.jts.io.WKBWriter.write方法的典型用法代码示例。如果您正苦于以下问题:Java WKBWriter.write方法的具体用法?Java WKBWriter.write怎么用?Java WKBWriter.write使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.vividsolutions.jts.io.WKBWriter
的用法示例。
在下文中一共展示了WKBWriter.write方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: convertToObject
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
public Object convertToObject(ValueMetaInterface vmi, Geometry geom, Database db) {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
try {
// Map the EPSG- (or custom-) SRID with MySQL's SRID.
int mysql_srid = convertToDBMS_SRID(vmi.getGeometrySRS(), db.getConnection());
// preserve SRID for MySQL in first 4 bytes, use little endian
byte[] sridInByteArray = new byte[4];
ByteOrderValues.putInt(mysql_srid, sridInByteArray, ByteOrderValues.LITTLE_ENDIAN);
outStream.write(sridInByteArray);
WKBWriter wkbWriter = new WKBWriter(2, ByteOrderValues.LITTLE_ENDIAN); // base 2, little endian
wkbWriter.write(geom, new OutputStreamOutStream(outStream)); // fill byte array with values from Geometry
return outStream.toByteArray();
} catch (Exception e) {
LOGGER.logError("GeoKettle", "Conversion to MySQL-geometry failed.");
return null;
}
}
示例2: convertToObject
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
public Object convertToObject(ValueMetaInterface vmi, Geometry jtsGeom, Database db) {
WKBWriter wkbWriter = new WKBWriter();
byte[] b = wkbWriter.write(jtsGeom);
WKB wkb = new WKB(ByteOrder.BIG_ENDIAN);
try {
// Map the EPSG- (or custom-) SRID with Oracle's SRID.
// TODO: review this, probably has some of the same issues as when reading the SRID
int oracle_srid = convertToDBMS_SRID(vmi.getGeometrySRS(), db.getConnection());
STRUCT oracleStruct = wkb.toSTRUCT(b, db.getConnection()); // convert: byte[] --> STRUCT (using DB connection)
JGeometry oracleGeom = JGeometry.load(oracleStruct); // convert: STRUCT --> JGeometry
oracleGeom.setSRID(oracle_srid); // set the SRID
oracleStruct = JGeometry.store(db.getConnection(), oracleGeom); // convert: JGeometry --> STRUCT (using DB connection)
return oracleStruct;
} catch (Exception e) {
LOGGER.logError("GeoKettle", "Conversion to Oracle-geometry failed.");
return null;
}
}
示例3: geometryToWKB
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
private byte[] geometryToWKB(Geometry geom, Envelope bbox) throws IOException
{
if (geom == null)
geom = JTS.toGeometry(bbox);
WKBWriter wkbWriter = new WKBWriter();
ByteArrayOutputStream bytesStream = new ByteArrayOutputStream();
wkbWriter.write(geom, new OutputStreamOutStream(bytesStream));
byte[] geomBytes = bytesStream.toByteArray();
bytesStream.close();
return geomBytes;
}
示例4: geometryToWKB
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
private byte[] geometryToWKB(Geometry geom) throws IOException
{
WKBWriter wkbWriter = new WKBWriter();
ByteArrayOutputStream bytesStream = new ByteArrayOutputStream();
wkbWriter.write(geom, new OutputStreamOutStream(bytesStream));
byte[] geomBytes = bytesStream.toByteArray();
bytesStream.close();
return geomBytes;
}
示例5: testEwkb
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
@Test(expected=ExpressionEvaluationException.class) public void testEwkb() throws Exception {
WKBWriter writer = new WKBWriter(3, true);
GeometryFactory gf = new GeometryFactory();
Point point = gf.createPoint(new Coordinate(0, 0, 0));
point.setSRID(100);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
writer.write(point, new OutputStreamOutStream(baos));
Expression ex1 = TestFunctionResolving.getExpression("ST_GeomFromBinary(X'"+new BinaryType(baos.toByteArray())+"', 8307)");
Evaluator.evaluate(ex1);
}
示例6: convertGeometryToBinary
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
private byte[] convertGeometryToBinary(Geometry geom)
{
if (geom==null) return null;
// defaults to big endian, 2-dimension representation:
WKBWriter wkbWriter = new WKBWriter();
return wkbWriter.write(geom);
}
示例7: convertToWKB
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
private static byte[] convertToWKB(Geometry g) {
boolean includeSRID = g.getSRID() != 0;
int dimensionCount = getDimensionCount(g);
WKBWriter writer = new WKBWriter(dimensionCount, includeSRID);
return writer.write(g);
}
示例8: publish
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
public void publish(DmlEvent event) {
String metadata = extractMetadata(event);
String changedTableSchema = event.getSchemaName();
String changedTableName = event.getTableName();
String type = event.getType().toString();
Long transactionId = event.getTransactionId();
PGobject timestamp = getTimestamp(event);
PGobject oldjson = getJsonOldValues(event);
PGobject newjson = getJsonNewValues(event);
Object[] params;
String sql;
int[] types;
Envelope envelope = event.getEnvelope();
if (! envelope.isNull()) {
//expand if necessasry
if (envelope.getHeight() < minSize && envelope.getWidth() < minSize) {
envelope.expandBy(bufferSize);
}
//Transform Bounding Box of the change into WKB
GeometryFactory geomFactory = new GeometryFactory(new PrecisionModel(), epsgCode);
WKBWriter wkbWriter = new WKBWriter(2, true);
byte[] wkb = wkbWriter.write(geomFactory.toGeometry(envelope));
params = new Object[]{wkb, type, changedTableSchema, changedTableName, transactionId, timestamp, metadata, oldjson, newjson};
types = new int[] {Types.BINARY, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.BIGINT, Types.OTHER, Types.VARCHAR, Types.OTHER, Types.OTHER};
sql = "INSERT INTO "+schemaname + "." + tableName + "("+regionColumnName
+", "+transactionTypeColumnName + ", "+schemaColumnName+", "+tableColumnName+", "+txIdColumnName
+", "+commitTimestampColumnName+", "+metadataColumnName+", "+jsonOldValuesColumnName+", "+jsonNewValuesColumName
+") VALUES (?,?,?,?,?,?,?,?,?)";
}
else {
//geometry is null, do not include it in SQL insert statement
params = new Object[]{type, changedTableSchema, changedTableName, transactionId, timestamp, metadata, oldjson, newjson};
types = new int[] {Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.BIGINT, Types.OTHER, Types.VARCHAR, Types.OTHER, Types.OTHER};
sql = "INSERT INTO "+schemaname + "." + tableName + "("
+transactionTypeColumnName + ", "+schemaColumnName+", "+tableColumnName+", "+txIdColumnName
+", "+commitTimestampColumnName+", "+metadataColumnName+", "+jsonOldValuesColumnName+", "+jsonNewValuesColumName
+") VALUES (?,?,?,?,?,?,?,?)";
}
template.update(sql, params,types);
}
示例9: asBinary
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
public byte[] asBinary(T shape) {
WKBWriter writer = new WKBWriter();
Geometry geom = SPATIAL_CONTEXT.getGeometryFrom(shape);
return writer.write(geom);
}
示例10: getGeometryType
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
public static GeometryType getGeometryType(Geometry jtsGeom, int srid) {
WKBWriter writer = new WKBWriter();
byte[] bytes = writer.write(jtsGeom);
return new GeometryType(bytes, srid);
}
示例11: writeAttribute
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
static void writeAttribute(
final DataOutput output,
final AttributeDescriptor ad,
final Object value )
throws IOException {
if (value == null) {
// null marker
output.writeBoolean(true);
}
else {
// not null, write the contents. This one requires some explanation.
// We are not writing any type metadata in the stream for the types
// we can optimize (primitives, numbers, strings and the like). This
// means we have to be 100% sure the class we're writing is actually
// the one we can optimize for, and not some subclass. Thus, we are
// authorized to use identity comparison instead of isAssignableFrom
// or equality, when we read back it must be as if we did not
// serialize stuff at all
output.writeBoolean(false);
final Class<?> binding = ad.getType().getBinding();
if (binding == Boolean.class) {
output.writeBoolean((Boolean) value);
}
else if ((binding == Byte.class) || (binding == byte.class)) {
output.writeByte((Byte) value);
}
else if ((binding == Short.class) || (binding == short.class)) {
output.writeShort((Short) value);
}
else if ((binding == Integer.class) || (binding == int.class)) {
output.writeInt((Integer) value);
}
else if ((binding == Long.class) || (binding == long.class)) {
output.writeLong((Long) value);
}
else if ((binding == Float.class) || (binding == float.class)) {
output.writeFloat((Float) value);
}
else if ((binding == Double.class) || (binding == double.class)) {
output.writeDouble((Double) value);
}
else if (binding == String.class) {
output.writeUTF((String) value);
}
else if ((binding == java.sql.Date.class) || (binding == java.sql.Time.class)
|| (binding == java.sql.Timestamp.class) || (binding == java.util.Date.class)) {
output.writeLong(((Date) value).getTime());
}
else if (Geometry.class.isAssignableFrom(binding)) {
final WKBWriter writer = new WKBWriter();
final byte[] buffer = writer.write((Geometry) value);
final int length = buffer.length;
output.writeInt(length);
output.write(buffer);
}
else {
// can't optimize, in this case we use an ObjectOutputStream to
// write out full metadata
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final ObjectOutputStream oos = new ObjectOutputStream(
bos);
oos.writeObject(value);
oos.flush();
final byte[] bytes = bos.toByteArray();
output.writeInt(bytes.length);
output.write(bytes);
}
}
}
示例12: testInterning
import com.vividsolutions.jts.io.WKBWriter; //导入方法依赖的package包/类
/**
* Verifies equality for interning is still working as expected
* (topologically), as the the largeQuery() test has a dependency on this;
*
* @throws ParseException
*/
@Test
public void testInterning()
throws ParseException {
final Geometry g = GeometryUtils.GEOMETRY_FACTORY.createPolygon(new Coordinate[] {
new Coordinate(
0,
0),
new Coordinate(
1,
0),
new Coordinate(
1,
1),
new Coordinate(
0,
1),
new Coordinate(
0,
0)
});
final Geometry gNewInstance = GeometryUtils.GEOMETRY_FACTORY.createPolygon(new Coordinate[] {
new Coordinate(
0,
0),
new Coordinate(
1,
0),
new Coordinate(
1,
1),
new Coordinate(
0,
1),
new Coordinate(
0,
0)
});
final WKBWriter wkbWriter = new WKBWriter();
final byte[] b = wkbWriter.write(g);
final byte[] b2 = new byte[b.length];
System.arraycopy(
b,
0,
b2,
0,
b.length);
final WKBReader wkbReader = new WKBReader();
final Geometry gSerialized = wkbReader.read(b);
final Geometry gSerializedArrayCopy = wkbReader.read(b2);
Assert.assertEquals(
g,
gNewInstance);
Assert.assertEquals(
g,
gSerializedArrayCopy);
Assert.assertEquals(
gSerialized,
gSerializedArrayCopy);
Assert.assertEquals(
gSerialized,
gSerializedArrayCopy);
}