editGeometryCollection method

GeometryCollection editGeometryCollection(
  1. GeometryCollection collection,
  2. GeometryEditorOperation operation
)

Implementation

GeometryCollection editGeometryCollection(
    GeometryCollection collection, GeometryEditorOperation operation) {
  // first edit the entire collection
  // MD - not sure why this is done - could just check original collection?
  GeometryCollection collectionForType =
      operation.edit(collection, _geomFactory) as GeometryCollection;

  // edit the component geometries
  List geometries = [];
  for (int i = 0; i < collectionForType.getNumGeometries(); i++) {
    Geometry? geometry = edit(collectionForType.getGeometryN(i), operation);
    if (geometry == null || geometry.isEmpty()) {
      continue;
    }
    geometries.add(geometry);
  }

  if (collectionForType is MultiPoint) {
    return _geomFactory!.createMultiPoint(geometries.cast<Point>());
  }
  if (collectionForType is MultiLineString) {
    return _geomFactory!.createMultiLineString(geometries.cast<LineString>());
  }
  if (collectionForType is MultiPolygon) {
    return _geomFactory!.createMultiPolygon(geometries.cast<Polygon>());
  }
  return _geomFactory!.createGeometryCollection(geometries.cast<Geometry>());
}