/[projects]/dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/BoundingBox.java
ViewVC logotype

Contents of /dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/BoundingBox.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2328 - (show annotations) (download)
Thu Feb 19 13:39:33 2015 UTC (9 years, 2 months ago) by torben
File size: 2035 byte(s)
Also cache all non-covered addresses in local memory
1 package dk.daoas.fulddaekning;
2
3 public class BoundingBox {
4
5
6 public static class BoundingBoxException extends Exception{
7 public BoundingBoxException(String reason) {
8 super(reason);
9 }
10
11 private static final long serialVersionUID = 1L;
12 }
13
14 //public static final double LATITUDE_MARGIN = 0.02702703;
15 //public static final double LONGUTUDE_MARGIN = 0.046875;
16
17 public double latitudeMax;
18 public double latitudeMin = Double.MAX_VALUE;
19
20 public double longitudeMax;
21 public double longitudeMin = Double.MAX_VALUE;
22
23
24 @Override
25 public String toString() {
26 return "bbox: Latitude=" + latitudeMin +"/" + latitudeMax + " longitude=" + longitudeMin + "/" + longitudeMax;
27 }
28
29 public void validateBbox() throws BoundingBoxException {
30
31 double latDiff = Math.abs(latitudeMax - latitudeMin);
32 if ( latDiff > 1.1) {
33 throw new BoundingBoxException("For stor latitude forskel / " + latDiff);
34 }
35
36 double lngDiff = Math.abs(longitudeMax - longitudeMin);
37 if ( lngDiff > 1.1) {
38 throw new BoundingBoxException("For stor longitude forskel / " + lngDiff);
39 }
40
41 GeoPoint min = new GeoPoint(latitudeMin, longitudeMin);
42 GeoPoint max = new GeoPoint(latitudeMax, longitudeMax);
43 double afstand = GeoPoint.beregnAfstand(min, max);
44
45 if (afstand >= 125.0) { //hvis cross afstand er over 80 km - så er postnummeret for stort
46 throw new BoundingBoxException("For stor cross afstand " + afstand);
47 }
48 }
49
50 public void adjustToMargin() {
51 Constants consts = Constants.getInstance();
52
53 latitudeMax += consts.getLatitudeMargin();
54 latitudeMin -= consts.getLatitudeMargin();
55
56 longitudeMax += consts.getLongitudeMargin();
57 longitudeMin -= consts.getLongitudeMargin();
58 }
59
60 @Override
61 public BoundingBox clone() {
62 BoundingBox bb = new BoundingBox();
63 bb.latitudeMax = this.latitudeMax;
64 bb.longitudeMax = this.longitudeMax;
65
66 bb.latitudeMin = this.latitudeMin;
67 bb.longitudeMin = this.longitudeMin;
68
69 return bb;
70 }
71
72
73 }

  ViewVC Help
Powered by ViewVC 1.1.20