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


Java Envelope.expandBy方法代码示例

本文整理汇总了Java中com.vividsolutions.jts.geom.Envelope.expandBy方法的典型用法代码示例。如果您正苦于以下问题:Java Envelope.expandBy方法的具体用法?Java Envelope.expandBy怎么用?Java Envelope.expandBy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.vividsolutions.jts.geom.Envelope的用法示例。


在下文中一共展示了Envelope.expandBy方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: checkEnvelope

import com.vividsolutions.jts.geom.Envelope; //导入方法依赖的package包/类
private void checkEnvelope() {
    if (this.distance < 0.0) {
        return;
    }

    double padding = this.distance * MAX_ENV_DIFF_FRAC;
    if (padding == 0.0) {
        padding = 0.001;
    }

    Envelope expectedEnv = new Envelope(this.input.getEnvelopeInternal());
    expectedEnv.expandBy(this.distance);

    Envelope bufEnv = new Envelope(this.result.getEnvelopeInternal());
    bufEnv.expandBy(padding);

    if (!bufEnv.contains(expectedEnv)) {
        this.isValid = false;
        this.errorMsg = "Buffer envelope is incorrect";
        this.errorIndicator = this.input.getFactory().toGeometry(bufEnv);
    }
    this.report("Envelope");
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:24,代码来源:BufferResultValidator.java

示例2: findNonGabrielPoint

import com.vividsolutions.jts.geom.Envelope; //导入方法依赖的package包/类
/**
 * Given a set of points stored in the kd-tree and a line segment defined by
 * two points in this set, finds a {@link Coordinate} in the circumcircle of
 * the line segment, if one exists. This is called the Gabriel point - if none
 * exists then the segment is said to have the Gabriel condition. Uses the
 * heuristic of finding the non-Gabriel point closest to the midpoint of the
 * segment.
 *
 * @param p start of the line segment
 * @param q end of the line segment
 * @return a point which is non-Gabriel
 * or null if no point is non-Gabriel
 */
private Coordinate findNonGabrielPoint(Segment seg) {
    Coordinate p = seg.getStart();
    Coordinate q = seg.getEnd();
    // Find the mid point on the line and compute the radius of enclosing circle
    Coordinate midPt = new Coordinate((p.x + q.x) / 2.0, (p.y + q.y) / 2.0);
    double segRadius = p.distance(midPt);

    // compute envelope of circumcircle
    Envelope env = new Envelope(midPt);
    env.expandBy(segRadius);
    // Find all points in envelope
    List result = this.kdt.query(env);

    // For each point found, test if it falls strictly in the circle
    // find closest point
    Coordinate closestNonGabriel = null;
    double minDist = Double.MAX_VALUE;
    for (Object aResult : result) {
        KdNode nextNode = (KdNode) aResult;
        Coordinate testPt = nextNode.getCoordinate();
        // ignore segment endpoints
        if (testPt.equals2D(p) || testPt.equals2D(q)) {
            continue;
        }

        double testRadius = midPt.distance(testPt);
        if (testRadius < segRadius) {
            // double testDist = seg.distance(testPt);
            double testDist = testRadius;
            if (closestNonGabriel == null || testDist < minDist) {
                closestNonGabriel = testPt;
                minDist = testDist;
            }
        }
    }
    return closestNonGabriel;
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:51,代码来源:ConformingDelaunayTriangulator.java

示例3: publish

import com.vividsolutions.jts.geom.Envelope; //导入方法依赖的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


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