Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/math/L1Comparator.java @ 799:feeaf5aec552
ISSUE213: Wrong Geometrytype used for the generation of an Layer with Multipolygon-Geometries
gnv-artifacts/trunk@881 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 06 Apr 2010 11:56:53 +0000 |
parents | 6cff63d0c434 |
children | bb7afd783321 |
line wrap: on
line source
package de.intevation.gnv.math; import com.vividsolutions.jts.geom.Coordinate; import java.util.Comparator; /** * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> */ public class L1Comparator implements Comparator { private Coordinate ref; public L1Comparator() { } public L1Comparator(Coordinate ref) { this.ref = ref; } public void setReference(Coordinate ref) { this.ref = ref; } public int compare(Object a, Object b) { Coordinate pa = (Coordinate)a; Coordinate pb = (Coordinate)b; double da = L1(ref, pa); double db = L1(ref, pb); if (da < db) return -1; if (da > db) return +1; return 0; } public static double L1(Coordinate a, Coordinate b) { return Math.abs(a.x - b.x) + Math.abs(a.y - b.y); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :