/[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 2330 - (show annotations) (download)
Fri Feb 20 08:52:52 2015 UTC (9 years, 2 months ago) by torben
File size: 2044 byte(s)
Refactoring regarding who is responsible for calculate BBox margins
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(double kmMargin) {
51 double latMargin = GeoPoint.kmToLatitude(kmMargin);
52 double lngMargin = GeoPoint.kmToLongitude(kmMargin);
53
54 latitudeMax += latMargin;
55 latitudeMin -= latMargin;
56
57 longitudeMax += lngMargin;
58 longitudeMin -= lngMargin;
59 }
60
61 @Override
62 public BoundingBox clone() {
63 BoundingBox bb = new BoundingBox();
64 bb.latitudeMax = this.latitudeMax;
65 bb.longitudeMax = this.longitudeMax;
66
67 bb.latitudeMin = this.latitudeMin;
68 bb.longitudeMin = this.longitudeMin;
69
70 return bb;
71 }
72
73
74 }

  ViewVC Help
Powered by ViewVC 1.1.20