本文整理了Java中org.locationtech.jts.geom.Geometry.copy()
方法的一些代码示例,展示了Geometry.copy()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Geometry.copy()
方法的具体详情如下:
包路径:org.locationtech.jts.geom.Geometry
类名称:Geometry
方法名:copy
[英]Creates a deep copy of this Geometry object. Coordinate sequences contained in it are copied. All instance fields are copied (i.e. the SRID and userData).
NOTE: the userData object reference (if present) is copied, but the value itself is not copied. If a deep copy is required this must be performed by the caller.
[中]创建此几何体对象的深度副本。将复制其中包含的坐标序列。复制所有实例字段(即SRID和userData)。
注意:会复制userData对象引用(如果存在),但不会复制值本身。如果需要深度复制,则必须由调用方执行。
代码示例来源:origin: com.h2database/h2
/**
* Get a copy of geometry object. Geometry object is mutable. The returned
* object is therefore copied before returning.
*
* @return a copy of the geometry object
*/
public Geometry getGeometry() {
return getGeometryNoCopy().copy();
}
代码示例来源:origin: geotools/geotools
/**
* Sets the geometry contained in this lite shape. Convenient to reuse this object instead of
* creating it again and again during rendering
*
* @param g
*/
public void setGeometry(Geometry g) {
this.geometry = g.copy();
}
代码示例来源:origin: geotools/geotools
private Geometry buildShiftedGeometry(Geometry g, double shiftX, double shiftY) {
Geometry clone = g.copy();
Coordinate[] coords = clone.getCoordinates();
final int length = coords.length;
for (int i = 0; i < length; i++) {
Coordinate coord = coords[i];
coord.x += shiftX;
coord.y += shiftY;
}
return clone;
}
代码示例来源:origin: geotools/geotools
Geometry geometry = (Geometry) src;
return geometry.copy();
代码示例来源:origin: geotools/geotools
geom = ((Geometry) target.getValue()).copy();
代码示例来源:origin: geotools/geotools
Polygon offseted = (Polygon) geom.copy();
offseted.apply(new OffsetOrdinateFilter(0, extrusion));
faces.add(0, (Polygon) geom);
Geometry g = gc.getGeometryN(i);
if (g instanceof Polygon) {
Polygon offseted = (Polygon) g.copy();
offseted.apply(new OffsetOrdinateFilter(0, extrusion));
faces.add(0, (Polygon) g);
代码示例来源:origin: geotools/geotools
rescaled =
(useOverviews
? multilevelFootprints.get(imageIndex - 1).copy()
: originalFootprint.copy());
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("Using footprint's overview: " + useOverviews);
代码示例来源:origin: geotools/geotools
if (rescaledInset < 1) {
Geometry copy = originalFootprint.copy();
copy.apply(geometryAT);
Geometry bounds = granuleBounds.copy();
bounds.apply(geometryAT);
rescaled = insetPolicy.applyInset(copy, bounds, 1.5);
} else {
rescaled = insetFootprint.copy();
rescaled.apply(geometryAT);
rescaled = originalFootprint.copy();
rescaled.apply(geometryAT);
代码示例来源:origin: geotools/geotools
public Object evaluate(Object feature) {
Geometry geom = getExpression(0).evaluate(feature, Geometry.class);
Double offsetX = getExpression(1).evaluate(feature, Double.class);
if (offsetX == null) offsetX = 0d;
Double offsetY = getExpression(2).evaluate(feature, Double.class);
if (offsetY == null) offsetY = 0d;
if (geom != null) {
Geometry offseted = geom.copy();
offseted.apply(new OffsetOrdinateFilter(offsetX, offsetY));
return offseted;
} else {
return null;
}
}
代码示例来源:origin: geotools/geotools
else if (source instanceof MultiPoint
&& sourceGeometry.getNumGeometries() == 1)
destGeometry = ((MultiPoint) source).getGeometryN(0).copy();
else {
if (LOGGER.isLoggable(Level.FINE))
else if (source instanceof MultiLineString
&& sourceGeometry.getNumGeometries() == 1)
destGeometry = ((MultiLineString) source).getGeometryN(0).copy();
else {
if (LOGGER.isLoggable(Level.FINE))
else if (source instanceof MultiPolygon
&& sourceGeometry.getNumGeometries() == 1)
destGeometry = ((MultiPolygon) source).getGeometryN(0).copy();
else {
if (LOGGER.isLoggable(Level.FINE))
代码示例来源:origin: geotools/geotools
final Geometry wrapped = geometry.copy();
wrapped.apply(new WrappingCoordinateFilter(radius, radius * 2, mt, northEast));
wrapped.geometryChanged();
if (Math.abs(offset) >= radius) {
Geometry offseted = geometry.copy();
offseted.apply(new OffsetOrdinateFilter(northEast ? 1 : 0, offset));
offseted.geometryChanged();
代码示例来源:origin: locationtech/spatial4j
Geometry newGeom = geom.copy(); // clone
代码示例来源:origin: geotools/geotools
/**
* Perform a "deep copy" an existing feature resuling in a duplicate of any geometry attributes.
*
* <p>This method is scary, expensive and will result in a deep copy of Geometry which may take
* a significant amount of memory/time to perform.
*
* @param original Content
* @return copy
*/
public static SimpleFeature deep(SimpleFeature original) {
if (original == null) return null;
SimpleFeatureBuilder builder = new SimpleFeatureBuilder(original.getFeatureType());
for (Property property : original.getProperties()) {
Object value = property.getValue();
try {
Object copy = value;
if (value instanceof Geometry) {
Geometry geometry = (Geometry) value;
copy = geometry.copy();
}
builder.set(property.getName(), copy);
} catch (Exception e) {
throw new IllegalAttributeException(
(AttributeDescriptor) property.getDescriptor(), value, e);
}
}
return builder.buildFeature(original.getID());
}
代码示例来源:origin: locationtech/jts
protected MultiPolygon copyInternal() {
Polygon[] polygons = new Polygon[this.geometries.length];
for (int i = 0; i < polygons.length; i++) {
polygons[i] = (Polygon) this.geometries[i].copy();
}
return new MultiPolygon(polygons, factory);
}
代码示例来源:origin: geotools/geotools
@Test
public void testWrapGeometrySmall() throws Exception {
// projected dateline CRS
CoordinateReferenceSystem FIJI = CRS.decode("EPSG:3460", true);
// a small geometry that will cross the dateline
Geometry g =
new WKTReader()
.read(
"POLYGON ((2139122 5880020, 2139122 5880030, 2139922 5880030, 2139122 5880020))");
Geometry original = g.copy();
// rendering bounds only slightly bigger than geometry
ReferencedEnvelope world = new ReferencedEnvelope(178, 181, -1, 1, WGS84);
// make sure the geometry is not wrapped, but it is preserved
ProjectionHandler handler = ProjectionHandlerFinder.getHandler(world, FIJI, true);
assertTrue(handler.requiresProcessing(g));
Geometry preProcessed = handler.preProcess(g);
// no cutting expected
assertEquals(original, preProcessed);
// post process
MathTransform mt = CRS.findMathTransform(FIJI, WGS84);
Geometry transformed = JTS.transform(g, mt);
Geometry postProcessed = handler.postProcess(mt.inverse(), transformed);
// check the geometry is in the same area as the rendering envelope
assertTrue(world.contains(postProcessed.getEnvelopeInternal()));
}
代码示例来源:origin: geotools/geotools
.read(
"MULTIPOLYGON(((-73 60, -73 83, -11 83, -11 60, -73 60)),((-10 60, -10 61, -11 61, -11 60, -10 60)))");
Geometry original = g.copy();
代码示例来源:origin: geotools/geotools
(Geometry) transformedFeature.getAttributes().get(k);
Geometry expectedGeometry = sourceGeometry.copy();
if (reprojectCRS != null) {
expectedGeometry = transformer.transform(expectedGeometry);
代码示例来源:origin: locationtech/jts
private Geometry[] removeCommonBits(Geometry[] geom)
{
cbr = new CommonBitsRemover();
cbr.add(geom[0]);
cbr.add(geom[1]);
Geometry remGeom[] = new Geometry[2];
remGeom[0] = cbr.removeCommonBits(geom[0].copy());
remGeom[1] = cbr.removeCommonBits(geom[1].copy());
return remGeom;
}
代码示例来源:origin: locationtech/jts
/**
* Gets the simplified geometry.
*
* @return the simplified geometry
*/
public Geometry getResultGeometry()
{
// empty input produces an empty result
if (inputGeom.isEmpty())
return inputGeom.copy();
return (new VWTransformer(isEnsureValidTopology, distanceTolerance)).transform(inputGeom);
}
代码示例来源:origin: locationtech/jts
public Geometry getResultGeometry()
{
// empty input produces an empty result
if (inputGeom.isEmpty()) return inputGeom.copy();
linestringMap = new HashMap();
inputGeom.apply(new LineStringMapBuilderFilter(this));
lineSimplifier.simplify(linestringMap.values());
Geometry result = (new LineStringTransformer(linestringMap)).transform(inputGeom);
return result;
}
内容来源于网络,如有侵权,请联系作者删除!