/[projects]/dao/NaermestePakkeshop/src/dk/daoas/naermestepshop/PshopMain.java
ViewVC logotype

Annotation of /dao/NaermestePakkeshop/src/dk/daoas/naermestepshop/PshopMain.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2582 - (hide annotations) (download)
Sun Jun 14 07:53:37 2015 UTC (8 years, 11 months ago) by torben
File size: 3272 byte(s)
Initial import.
1 torben 2582 package dk.daoas.naermestepshop;
2    
3     import geocode.GeoPoint;
4     import geocode.kdtree.KDTree;
5    
6     import java.io.File;
7     import java.io.FileReader;
8     import java.util.List;
9     import java.util.Properties;
10     import java.util.logging.Logger;
11    
12     public class PshopMain {
13    
14     static Logger logger = Logger.getLogger(PshopMain.class.getName());
15     static final String CONFIG_FILENAME = "naermestepshop.properties";
16    
17    
18     public static void main(String[] args) throws Exception {
19    
20     File confFile = new File( CONFIG_FILENAME );
21     if (! confFile.exists() ) {
22     logger.warning("Config file not found: " + CONFIG_FILENAME);
23     System.exit(1);
24     }
25    
26     Properties props = new Properties();
27     props.load( new FileReader(confFile) );
28    
29    
30     Database db = new Database(props);
31    
32     List<GeoPoint> dao = (List<GeoPoint>) db.getShops("DAO");
33     List<GeoPoint> swip = (List<GeoPoint>) db.getShops("SWIP");
34     List<GeoPoint> gls = (List<GeoPoint>) db.getShops("GLS");
35    
36     KDTree<GeoPoint> daoTree = new KDTree<GeoPoint>(dao);
37    
38     KDTree<GeoPoint> swipTree = new KDTree<GeoPoint>(swip);
39     KDTree<GeoPoint> glsTree = new KDTree<GeoPoint>(gls);
40    
41     logger.info("Start fetching addr");
42    
43     List<Adresse> adresser = db.getAdresser();
44    
45     db.resetResultTable();//Nulstil resultat tabellen inden vi starter beregningen
46    
47     logger.info("Start calculating");
48     for (Adresse addr : adresser) {
49     ShopResult daoResult = new ShopResult();
50     daoResult.shop = (Shop) daoTree.findNearest(addr);
51     daoResult.distance = GeoPointHelper.beregnAfstand(addr, daoResult.shop);
52    
53     ShopResult swipResult = new ShopResult();
54     swipResult.shop = (Shop) swipTree.findNearest(addr);
55     swipResult.distance = GeoPointHelper.beregnAfstand(addr, swipResult.shop);
56    
57     ShopResult glsResult = new ShopResult();
58     glsResult.shop = (Shop) glsTree.findNearest(addr);
59     glsResult.distance = GeoPointHelper.beregnAfstand(addr, glsResult.shop);
60    
61     if ( Double.isNaN(daoResult.distance) || Double.isNaN(swipResult.distance) || Double.isNaN(glsResult.distance)) {
62     System.out.println("Addr " + addr);
63     System.out.println("DAO " + daoResult);
64     System.out.println("Swip " + swipResult);
65     System.out.println("GLS " + glsResult);
66     }
67    
68     db.gemResultat(addr, daoResult, swipResult, glsResult);
69     }
70    
71     db.saveBatch();
72    
73     logger.info("done");
74    
75     }
76    
77     /*
78    
79     @Deprecated
80     public static GeoPoint bruteforceSearch(GeoPoint needle, List<GeoPoint> haystack) {
81     GeoPoint nearest = null;
82     double bestDistance = 999999.999;
83     for (GeoPoint current : haystack) {
84     double distance = GeoPointHelper.beregnAfstand(current, needle);
85    
86     if (distance < bestDistance) {
87     nearest = current;
88     bestDistance = distance;
89     }
90     }
91    
92    
93     return nearest;
94     }
95    
96    
97     /*Shop nearest2 = (Shop) bruteforceSearch(addr, dao);
98     if (nearest1.ktonr != nearest2.ktonr) {
99     System.out.println("Mistmatch " + addr + " " + nearest1 + " / " + nearest2);
100     }
101    
102    
103     GeoPoint reference = new GeoPoint(55.8727, 9.88129);
104    
105     final int MAX = 10000;
106    
107     TimingHelper t1 = new TimingHelper();
108     for (int i = 0; i<MAX; i++) {
109     daoTree.findNearest(reference);
110     }
111     t1.printElapsed("Tree ");
112    
113     TimingHelper t2 = new TimingHelper();
114     for (int i = 0; i<MAX; i++) {
115     bruteforceSearch(reference, dao);
116     }
117     t2.printElapsed("Brute ");
118     */
119     }

  ViewVC Help
Powered by ViewVC 1.1.20