@Override public Geometry<M> execute() { Geometry<M> measured = Geometry.forceToCrs(geometry, measuredVariant); if (measured.isEmpty()) return measured; if (keepBeginMeasure) { double initialValue = measured.getPositionN(0).getM(); length = (Double.isNaN(initialValue) ? 0 : initialValue); } if (measured instanceof LineString) { return measure((LineString<M>) measured); } else if (geometry instanceof MultiLineString) { return measure((MultiLineString<M>) measured); } else { throw new IllegalStateException( String.format("Requires a LineString or MultiLineString, but received %s", geometry.getClass().getName())); } }
targetParts[idx++] = forceToCrs(part, crs);