Class GeometryCollector


  • public class GeometryCollector
    extends Object
    A stateful geometry collector that will add all geometries into a single resulting geometry collection with the following properties:
    • the elements of the resulting geometry are simple geometries, adding a geometry collection will result in it being flattened
    • the resulting geometry collection type will match its contents, a generic geometry collection will be used only in case of heterogeneous contents
    • all geometries will be cloned using the provided geometry factory (one based on a PackedCoordinateSequence is used by default to reduce memory usage)
    Author:
    Andrea Aime - GeoSolutions
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(Geometry g)
      Adds a geometry to the collector
      GeometryCollection collect()
      Returns a geometry collection containing all of the geometries collected in the process
      GeometryCollection collectInternal()  
      GeometryFactory getFactory()
      Returns the geometry factory used to deep clone the geometries while collecting them (if null no cloning will happen)
      long getMaxCoordinates()
      Returns the maximum number of coordinates this collector is allowed to keep in the resulting geometry
      void setFactory​(GeometryFactory factory)
      Sets the geometry factory used to deep clone the geometries while collecting them.
      void setMaxCoordinates​(long maxCoordinates)
      Sets the maximum number of coordinates to be collected.
      • Methods inherited from class Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GeometryCollector

        public GeometryCollector()
    • Method Detail

      • getMaxCoordinates

        public long getMaxCoordinates()
        Returns the maximum number of coordinates this collector is allowed to keep in the resulting geometry
      • setMaxCoordinates

        public void setMaxCoordinates​(long maxCoordinates)
        Sets the maximum number of coordinates to be collected. By default is -1, no limit
      • getFactory

        public GeometryFactory getFactory()
        Returns the geometry factory used to deep clone the geometries while collecting them (if null no cloning will happen)
      • setFactory

        public void setFactory​(GeometryFactory factory)
        Sets the geometry factory used to deep clone the geometries while collecting them. May be set to null to avoid deep cloning. By default a geometry factory based on PackedCoordinateSequenceFactory is used to minimize the memory usage
      • collect

        public GeometryCollection collect()
        Returns a geometry collection containing all of the geometries collected in the process
      • collectInternal

        public GeometryCollection collectInternal()
      • add

        public void add​(Geometry g)
        Adds a geometry to the collector