unpopulated method

  1. @override
FeatureCollection<Feature<Geometry>> unpopulated({
  1. int traverse = 0,
  2. bool onBounds = true,
})
override

Returns a feature object of the same subtype as this with certain data members unpopulated (or cleared).

If nothing is unpopulated then this is returned.

If onBounds is true (as by default):

  • The bounds in a returned feature object is ensured to be unpopulated (expect when bounds is always available).
  • If traverse > 0, then also bounding boxes of child feature or geometry objects of this feature object are unpopulated for child levels indicated by traverse (0: no childs, 1: only direct childs, 2: direct childs and childs of them, ..).

See also populated.

Implementation

@override
FeatureCollection unpopulated({
  int traverse = 0,
  bool onBounds = true,
}) {
  if (onBounds) {
    // unpopulate features when traversing is asked
    final coll = traverse > 0 && features.isNotEmpty
        ? features
            .map<E>(
              (f) => f.unpopulated(traverse: traverse - 1, onBounds: onBounds)
                  as E,
            )
            .toList(growable: false)
        : features;

    // create a new collection if features changed or bounds was populated
    if (coll != features || bounds != null) {
      return FeatureCollection<E>._(
        coll,
        coordType,
        custom: custom,
      );
    }
  }
  return this;
}