package com.wdtinc.mapbox_vector_tile.adapt.jts; import org.locationtech.jts.geom.CoordinateSequence; import org.locationtech.jts.geom.CoordinateSequenceFilter; /** * <p>Round each coordinate value to an integer.</p> * * <p>Mapbox vector tiles have fixed precision. This filter can be useful for reducing precision to * the extent of a MVT.</p> */ public final class RoundingFilter implements CoordinateSequenceFilter { public static final RoundingFilter INSTANCE = new RoundingFilter(); private RoundingFilter() {} @Override public void filter(CoordinateSequence seq, int i) { seq.setOrdinate(i, 0, Math.round(seq.getOrdinate(i, 0))); seq.setOrdinate(i, 1, Math.round(seq.getOrdinate(i, 1))); } @Override public boolean isDone() { return false; } @Override public boolean isGeometryChanged() { return true; } }