/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/BoundingBox.java
ViewVC logotype

Contents of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/BoundingBox.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2886 - (show annotations) (download)
Sat Jan 30 19:23:50 2016 UTC (8 years, 3 months ago) by torben
File size: 1718 byte(s)
BB no longer implements Cloneable
1 package dk.daoas.adressevedligehold.afstandandenrute;
2
3 import dk.daoas.adressevedligehold.beans.Address;
4
5 public class BoundingBox {
6
7
8 public static class BoundingBoxException extends Exception{
9 public BoundingBoxException(String reason) {
10 super(reason);
11 }
12
13 private static final long serialVersionUID = 1L;
14 }
15
16 public double latitudeMax;
17 public double latitudeMin = Double.MAX_VALUE;
18
19 public double longitudeMax;
20 public double longitudeMin = Double.MAX_VALUE;
21
22 public BoundingBox() {
23 }
24
25
26 public BoundingBox(BoundingBox other) { //Copy constructor
27 this.latitudeMax = other.latitudeMax;
28 this.longitudeMax = other.longitudeMax;
29
30 this.latitudeMin = other.latitudeMin;
31 this.longitudeMin = other.longitudeMin;
32 }
33
34
35 @Override
36 public String toString() {
37 return "bbox: Latitude=" + latitudeMin +"/" + latitudeMax + " longitude=" + longitudeMin + "/" + longitudeMax;
38 }
39
40 public void validateBbox() throws BoundingBoxException {
41
42 double latDiff = Math.abs(latitudeMax - latitudeMin);
43 if ( latDiff > 1.1) {
44 throw new BoundingBoxException("For stor latitude forskel / " + latDiff);
45 }
46
47 double lngDiff = Math.abs(longitudeMax - longitudeMin);
48 if ( lngDiff > 1.1) {
49 throw new BoundingBoxException("For stor longitude forskel / " + lngDiff);
50 }
51
52 Address min = new Address(latitudeMin, longitudeMin);
53 Address max = new Address(latitudeMax, longitudeMax);
54 double afstand = GeoPointHelper.beregnAfstand(min, max);
55
56 if (afstand >= 125.0) { //hvis cross afstand er over X km - så er postnummeret for stort
57 throw new BoundingBoxException("For stor cross afstand " + afstand);
58 }
59 }
60
61
62
63
64 }

  ViewVC Help
Powered by ViewVC 1.1.20