transformLinearRing method

Geometry transformLinearRing(
  1. LinearRing geom,
  2. Geometry parent
)

Transforms a LinearRing. The transformation of a LinearRing may result in a coordinate sequence which does not form a structurally valid ring (i.e. a degenerate ring of 3 or fewer points). In this case a LineString is returned. Subclasses may wish to override this method and check for this situation (e.g. a subclass may choose to eliminate degenerate linear rings)

@param geom the ring to simplify @param parent the parent geometry @return a LinearRing if the transformation resulted in a structurally valid ring @return a LineString if the transformation caused the LinearRing to collapse to 3 or fewer points

Implementation

Geometry transformLinearRing(LinearRing geom, Geometry parent) {
  CoordinateSequence seq =
  transformCoordinates(geom.getCoordinateSequence(), geom);
  if (seq == null) return factory.createLinearRingEmpty();
  int seqSize = seq.size();
  // ensure a valid LinearRing
  if (seqSize > 0 && seqSize < 4 && !preserveType)
    return factory.createLineStringSeq(seq);
  return factory.createLinearRingSeq(seq);
}