org.locationtech.jts.geom.Geometry.copy()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(7.2k)|赞(0)|评价(0)|浏览(166)

本文整理了Java中org.locationtech.jts.geom.Geometry.copy()方法的一些代码示例,展示了Geometry.copy()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Geometry.copy()方法的具体详情如下:
包路径:org.locationtech.jts.geom.Geometry
类名称:Geometry
方法名:copy

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

  1. /**
  2. * Get a copy of geometry object. Geometry object is mutable. The returned
  3. * object is therefore copied before returning.
  4. *
  5. * @return a copy of the geometry object
  6. */
  7. public Geometry getGeometry() {
  8. return getGeometryNoCopy().copy();
  9. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Sets the geometry contained in this lite shape. Convenient to reuse this object instead of
  3. * creating it again and again during rendering
  4. *
  5. * @param g
  6. */
  7. public void setGeometry(Geometry g) {
  8. this.geometry = g.copy();
  9. }

代码示例来源:origin: geotools/geotools

  1. private Geometry buildShiftedGeometry(Geometry g, double shiftX, double shiftY) {
  2. Geometry clone = g.copy();
  3. Coordinate[] coords = clone.getCoordinates();
  4. final int length = coords.length;
  5. for (int i = 0; i < length; i++) {
  6. Coordinate coord = coords[i];
  7. coord.x += shiftX;
  8. coord.y += shiftY;
  9. }
  10. return clone;
  11. }

代码示例来源:origin: geotools/geotools

  1. Geometry geometry = (Geometry) src;
  2. return geometry.copy();

代码示例来源:origin: geotools/geotools

  1. geom = ((Geometry) target.getValue()).copy();

代码示例来源:origin: geotools/geotools

  1. Polygon offseted = (Polygon) geom.copy();
  2. offseted.apply(new OffsetOrdinateFilter(0, extrusion));
  3. faces.add(0, (Polygon) geom);
  4. Geometry g = gc.getGeometryN(i);
  5. if (g instanceof Polygon) {
  6. Polygon offseted = (Polygon) g.copy();
  7. offseted.apply(new OffsetOrdinateFilter(0, extrusion));
  8. faces.add(0, (Polygon) g);

代码示例来源:origin: geotools/geotools

  1. rescaled =
  2. (useOverviews
  3. ? multilevelFootprints.get(imageIndex - 1).copy()
  4. : originalFootprint.copy());
  5. if (LOGGER.isLoggable(Level.FINE)) {
  6. LOGGER.fine("Using footprint's overview: " + useOverviews);

代码示例来源:origin: geotools/geotools

  1. if (rescaledInset < 1) {
  2. Geometry copy = originalFootprint.copy();
  3. copy.apply(geometryAT);
  4. Geometry bounds = granuleBounds.copy();
  5. bounds.apply(geometryAT);
  6. rescaled = insetPolicy.applyInset(copy, bounds, 1.5);
  7. } else {
  8. rescaled = insetFootprint.copy();
  9. rescaled.apply(geometryAT);
  10. rescaled = originalFootprint.copy();
  11. rescaled.apply(geometryAT);

代码示例来源:origin: geotools/geotools

  1. public Object evaluate(Object feature) {
  2. Geometry geom = getExpression(0).evaluate(feature, Geometry.class);
  3. Double offsetX = getExpression(1).evaluate(feature, Double.class);
  4. if (offsetX == null) offsetX = 0d;
  5. Double offsetY = getExpression(2).evaluate(feature, Double.class);
  6. if (offsetY == null) offsetY = 0d;
  7. if (geom != null) {
  8. Geometry offseted = geom.copy();
  9. offseted.apply(new OffsetOrdinateFilter(offsetX, offsetY));
  10. return offseted;
  11. } else {
  12. return null;
  13. }
  14. }

代码示例来源:origin: geotools/geotools

  1. else if (source instanceof MultiPoint
  2. && sourceGeometry.getNumGeometries() == 1)
  3. destGeometry = ((MultiPoint) source).getGeometryN(0).copy();
  4. else {
  5. if (LOGGER.isLoggable(Level.FINE))
  6. else if (source instanceof MultiLineString
  7. && sourceGeometry.getNumGeometries() == 1)
  8. destGeometry = ((MultiLineString) source).getGeometryN(0).copy();
  9. else {
  10. if (LOGGER.isLoggable(Level.FINE))
  11. else if (source instanceof MultiPolygon
  12. && sourceGeometry.getNumGeometries() == 1)
  13. destGeometry = ((MultiPolygon) source).getGeometryN(0).copy();
  14. else {
  15. if (LOGGER.isLoggable(Level.FINE))

代码示例来源:origin: geotools/geotools

  1. final Geometry wrapped = geometry.copy();
  2. wrapped.apply(new WrappingCoordinateFilter(radius, radius * 2, mt, northEast));
  3. wrapped.geometryChanged();
  4. if (Math.abs(offset) >= radius) {
  5. Geometry offseted = geometry.copy();
  6. offseted.apply(new OffsetOrdinateFilter(northEast ? 1 : 0, offset));
  7. offseted.geometryChanged();

代码示例来源:origin: locationtech/spatial4j

  1. Geometry newGeom = geom.copy(); // clone

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Perform a "deep copy" an existing feature resuling in a duplicate of any geometry attributes.
  3. *
  4. * <p>This method is scary, expensive and will result in a deep copy of Geometry which may take
  5. * a significant amount of memory/time to perform.
  6. *
  7. * @param original Content
  8. * @return copy
  9. */
  10. public static SimpleFeature deep(SimpleFeature original) {
  11. if (original == null) return null;
  12. SimpleFeatureBuilder builder = new SimpleFeatureBuilder(original.getFeatureType());
  13. for (Property property : original.getProperties()) {
  14. Object value = property.getValue();
  15. try {
  16. Object copy = value;
  17. if (value instanceof Geometry) {
  18. Geometry geometry = (Geometry) value;
  19. copy = geometry.copy();
  20. }
  21. builder.set(property.getName(), copy);
  22. } catch (Exception e) {
  23. throw new IllegalAttributeException(
  24. (AttributeDescriptor) property.getDescriptor(), value, e);
  25. }
  26. }
  27. return builder.buildFeature(original.getID());
  28. }

代码示例来源:origin: locationtech/jts

  1. protected MultiPolygon copyInternal() {
  2. Polygon[] polygons = new Polygon[this.geometries.length];
  3. for (int i = 0; i < polygons.length; i++) {
  4. polygons[i] = (Polygon) this.geometries[i].copy();
  5. }
  6. return new MultiPolygon(polygons, factory);
  7. }

代码示例来源:origin: geotools/geotools

  1. @Test
  2. public void testWrapGeometrySmall() throws Exception {
  3. // projected dateline CRS
  4. CoordinateReferenceSystem FIJI = CRS.decode("EPSG:3460", true);
  5. // a small geometry that will cross the dateline
  6. Geometry g =
  7. new WKTReader()
  8. .read(
  9. "POLYGON ((2139122 5880020, 2139122 5880030, 2139922 5880030, 2139122 5880020))");
  10. Geometry original = g.copy();
  11. // rendering bounds only slightly bigger than geometry
  12. ReferencedEnvelope world = new ReferencedEnvelope(178, 181, -1, 1, WGS84);
  13. // make sure the geometry is not wrapped, but it is preserved
  14. ProjectionHandler handler = ProjectionHandlerFinder.getHandler(world, FIJI, true);
  15. assertTrue(handler.requiresProcessing(g));
  16. Geometry preProcessed = handler.preProcess(g);
  17. // no cutting expected
  18. assertEquals(original, preProcessed);
  19. // post process
  20. MathTransform mt = CRS.findMathTransform(FIJI, WGS84);
  21. Geometry transformed = JTS.transform(g, mt);
  22. Geometry postProcessed = handler.postProcess(mt.inverse(), transformed);
  23. // check the geometry is in the same area as the rendering envelope
  24. assertTrue(world.contains(postProcessed.getEnvelopeInternal()));
  25. }

代码示例来源:origin: geotools/geotools

  1. .read(
  2. "MULTIPOLYGON(((-73 60, -73 83, -11 83, -11 60, -73 60)),((-10 60, -10 61, -11 61, -11 60, -10 60)))");
  3. Geometry original = g.copy();

代码示例来源:origin: geotools/geotools

  1. (Geometry) transformedFeature.getAttributes().get(k);
  2. Geometry expectedGeometry = sourceGeometry.copy();
  3. if (reprojectCRS != null) {
  4. expectedGeometry = transformer.transform(expectedGeometry);

代码示例来源:origin: locationtech/jts

  1. private Geometry[] removeCommonBits(Geometry[] geom)
  2. {
  3. cbr = new CommonBitsRemover();
  4. cbr.add(geom[0]);
  5. cbr.add(geom[1]);
  6. Geometry remGeom[] = new Geometry[2];
  7. remGeom[0] = cbr.removeCommonBits(geom[0].copy());
  8. remGeom[1] = cbr.removeCommonBits(geom[1].copy());
  9. return remGeom;
  10. }

代码示例来源:origin: locationtech/jts

  1. /**
  2. * Gets the simplified geometry.
  3. *
  4. * @return the simplified geometry
  5. */
  6. public Geometry getResultGeometry()
  7. {
  8. // empty input produces an empty result
  9. if (inputGeom.isEmpty())
  10. return inputGeom.copy();
  11. return (new VWTransformer(isEnsureValidTopology, distanceTolerance)).transform(inputGeom);
  12. }

代码示例来源:origin: locationtech/jts

  1. public Geometry getResultGeometry()
  2. {
  3. // empty input produces an empty result
  4. if (inputGeom.isEmpty()) return inputGeom.copy();
  5. linestringMap = new HashMap();
  6. inputGeom.apply(new LineStringMapBuilderFilter(this));
  7. lineSimplifier.simplify(linestringMap.values());
  8. Geometry result = (new LineStringTransformer(linestringMap)).transform(inputGeom);
  9. return result;
  10. }

相关文章