当前位置: 首页>>代码示例>>Java>>正文


Java WKBWriter.write方法代码示例

本文整理汇总了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;
	}
}
 
开发者ID:icholy,项目名称:geokettle-2.0,代码行数:20,代码来源:MySQLDatabaseMeta.java

示例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;
	}
}
 
开发者ID:icholy,项目名称:geokettle-2.0,代码行数:20,代码来源:OracleDatabaseMeta.java

示例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;
}
 
开发者ID:GIScience,项目名称:openrouteservice,代码行数:14,代码来源:PostgreSQLLocationsDataProvider.java

示例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;
}
 
开发者ID:GIScience,项目名称:openrouteservice,代码行数:11,代码来源:PostgresSQLStatisticsProvider.java

示例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);
  }
 
开发者ID:kenweezy,项目名称:teiid,代码行数:12,代码来源:TestGeometry.java

示例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);
  }
 
开发者ID:icholy,项目名称:geokettle-2.0,代码行数:8,代码来源:ValueMeta.java

示例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);
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:7,代码来源:ValueGeometry.java

示例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);
	}
 
开发者ID:sebastian-r-schmidt,项目名称:logicaldecoding,代码行数:47,代码来源:TrackTablePublisher.java

示例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);
}
 
开发者ID:orientechnologies,项目名称:orientdb-spatial,代码行数:6,代码来源:OShapeBuilder.java

示例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);        
}
 
开发者ID:kenweezy,项目名称:teiid,代码行数:6,代码来源:GeometryUtils.java

示例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);
		}
	}
}
 
开发者ID:locationtech,项目名称:geowave,代码行数:70,代码来源:FeatureWritable.java

示例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);
}
 
开发者ID:locationtech,项目名称:geowave,代码行数:70,代码来源:AccumuloRangeQueryTest.java


注:本文中的com.vividsolutions.jts.io.WKBWriter.write方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。