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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2948 - (show annotations) (download)
Sat Feb 13 15:56:00 2016 UTC (8 years, 3 months ago) by torben
File size: 1545 byte(s)
cleanup
1 package dk.daoas.adressevedligehold.afstandandenrute;
2
3 import dk.daoas.adressevedligehold.beans.Address;
4
5
6
7 public class GeoPointHelper {
8
9
10 /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
11 /* :: This function converts decimal degrees to radians : */
12 /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
13 private static double deg2rad(double deg) {
14 return deg * Math.PI / 180.0;
15 }
16
17 /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
18 /* :: This function converts radians to decimal degrees : */
19 /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
20 private static double rad2deg(double rad) {
21 return rad * 180 / Math.PI;
22 }
23
24 // http://www.geodatasource.com/developers/java
25 private static double distanceHaversine(double lat1, double lon1,
26 double lat2, double lon2) {
27 double theta = lon1 - lon2;
28 double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
29 + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))
30 * Math.cos(deg2rad(theta));
31 dist = Math.acos(dist);
32 dist = rad2deg(dist);
33 dist = dist * 60 * 1.1515;
34
35 // indtil nu er dist i miles - så vi omregner lige til km
36 dist = dist * 1.609344;
37 return dist;
38 }
39
40 public static double beregnAfstand(Address p1, Address p2) {
41 if (p1.latitude == p2.latitude && p1.longitude == p2.longitude) {
42 return 0.00; //Haversine går i baglås hvis p1 og p2 er samme position
43 }
44
45
46 return distanceHaversine(p1.latitude, p1.longitude, p2.latitude, p2.longitude);
47 }
48
49 }

  ViewVC Help
Powered by ViewVC 1.1.20