sascha@361: package de.intevation.gnv.math; sascha@361: sascha@779: import com.vividsolutions.jts.geom.Coordinate; sascha@779: sascha@361: import java.util.Comparator; sascha@361: sascha@361: /** sascha@798: * @author Sascha L. Teichmann sascha@361: */ sascha@361: public class L1Comparator sascha@361: implements Comparator sascha@361: { sascha@361: private Coordinate ref; sascha@361: sascha@474: public L1Comparator() { sascha@474: } sascha@474: sascha@361: public L1Comparator(Coordinate ref) { sascha@361: this.ref = ref; sascha@361: } sascha@361: sascha@474: public void setReference(Coordinate ref) { sascha@474: this.ref = ref; sascha@474: } sascha@474: sascha@361: public int compare(Object a, Object b) { sascha@361: Coordinate pa = (Coordinate)a; sascha@361: Coordinate pb = (Coordinate)b; sascha@798: double da = L1(ref, pa); sascha@798: double db = L1(ref, pb); sascha@361: if (da < db) return -1; sascha@361: if (da > db) return +1; sascha@361: return 0; sascha@361: } sascha@798: sascha@798: public static double L1(Coordinate a, Coordinate b) { sascha@798: return Math.abs(a.x - b.x) + Math.abs(a.y - b.y); sascha@798: } sascha@798: sascha@361: } sascha@798: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :