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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2948 - (hide annotations) (download)
Sat Feb 13 15:56:00 2016 UTC (8 years, 3 months ago) by torben
File size: 1545 byte(s)
cleanup
1 torben 2878 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 torben 2937 return deg * Math.PI / 180.0;
15 torben 2878 }
16    
17     /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
18     /* :: This function converts radians to decimal degrees : */
19     /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
20     private static double rad2deg(double rad) {
21 torben 2937 return rad * 180 / Math.PI;
22 torben 2878 }
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 torben 2941 return dist;
38 torben 2878 }
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