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 :

http://dive4elements.wald.intevation.org