package dk.daoas.fulddaekning; public class BoundingBox { public static class BoundingBoxException extends Exception{ public BoundingBoxException(String reason) { super(reason); } private static final long serialVersionUID = 1L; } //public static final double LATITUDE_MARGIN = 0.02702703; //public static final double LONGUTUDE_MARGIN = 0.046875; public double latitudeMax; public double latitudeMin; public double longitudeMax; public double longitudeMin; @Override public String toString() { return "bbox: Latitude=" + latitudeMin +"/" + latitudeMax + " longitude=" + longitudeMin + "/" + longitudeMax; } public void validateBbox() throws BoundingBoxException { if ( Math.abs(latitudeMax-latitudeMin)> 1.0) throw new BoundingBoxException("For stor latitude forskel"); if ( Math.abs(longitudeMax-longitudeMin)> 1.0) throw new BoundingBoxException("For stor longitude forskel"); GeoPoint min = new GeoPoint(latitudeMin, longitudeMin); GeoPoint max = new GeoPoint(latitudeMax, longitudeMax); double afstand = GeoPoint.beregnAfstand(min, max); if (afstand >= 90.0) { //hvis cross afstand er over 90 km - så er postnummeret for stort throw new BoundingBoxException("For stor cross afstand " + afstand); } } public void adjustToMargin() { Constants consts = Constants.getInstance(); latitudeMax += consts.getLatitudeMargin(); latitudeMin -= consts.getLatitudeMargin(); longitudeMax += consts.getLongitudeMargin(); longitudeMin -= consts.getLongitudeMargin(); } }