/[projects]/dao/FuldDaekningWorker/src/main/java/dk/daoas/fulddaekning/LookupWorker.java
ViewVC logotype

Diff of /dao/FuldDaekningWorker/src/main/java/dk/daoas/fulddaekning/LookupWorker.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupWorker.java revision 2712 by torben, Sun Sep 27 19:46:01 2015 UTC dao/FuldDaekningWorker/src/main/java/dk/daoas/fulddaekning/LookupWorker.java revision 2741 by torben, Tue Oct 6 21:26:55 2015 UTC
# Line 60  public class LookupWorker implements Run Line 60  public class LookupWorker implements Run
60          public void run() {          public void run() {
61                  System.out.println( "Worker/" + workerID + " starting");                  System.out.println( "Worker/" + workerID + " starting");
62    
63                  for (Adresse qAdresse : ikkeDaekkede) {                  try {
64                            while ( ! ikkeDaekkede.isEmpty() ) {
65                            
66                                    Adresse qAdresse = ikkeDaekkede.remove();
67    
68                                    short ho = qAdresse.ho;
69                                    KdTree<Adresse> addressTree = hoTrees.get(ho);
70    
71                                    Collection<Adresse> res = addressTree.nearestNeighbourSearch(MAX_RESULTS, qAdresse);
72                                    if (res.size() > MAX_RESULTS ) {
73                                            System.out.println("Returnerede mere end MAX_RESULTS> " + res.size() );
74                                            System.exit(0);
75                                    }
76    
                         short ho = qAdresse.ho;  
                         KdTree<Adresse> addressTree = hoTrees.get(ho);  
77    
78                          Collection<Adresse> res = addressTree.nearestNeighbourSearch(MAX_RESULTS, qAdresse);                          Adresse bedsteAdr = res.iterator().next(); //Tag første element
79                          if (res.size() > MAX_RESULTS ) {                          double bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, bedsteAdr);
                                 System.out.println("Returnerede mere end MAX_RESULTS> " + res.size() );  
                                 System.exit(0);  
                         }  
80    
81                            
82                            //Hvis at den er inden for afstand, så prøver vi at lave findNærmste på vej distancen
83                            if (bedsteAfstand <= consts.getMaxDistance()) {
84                                    //Adresse bedsteAdr2 = osrmHelper.getNearestViarouteHttp(qAdresse, res);
85                                    //Adresse bedsteAdr2 = osrmHelper.getNearestViarouteJni(qAdresse, res);
86                                    //Adresse bedsteAdr2 = osrmHelper.getNearestTableHttp(qAdresse, res);
87                                    Adresse bedsteAdr2 = osrmHelper.getNearestTableJni(qAdresse, res);
88    
89                                    if (bedsteAdr2 != null) {
90                                            bedsteAdr = bedsteAdr2;
91                                            bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, bedsteAdr);
92                                    } else {
93                                            logger.info("NearestViaTable returned null for " + qAdresse);
94                                    }
95                            }
96                            
97    
98                          Adresse bedsteAdr = osrmHelper.getNearestViaTable(qAdresse, res);                          
                         //System.out.println("Bedste:" + bedsteAdr );  
   
                         double bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, bedsteAdr);  
99    
100    
101                          if (bedsteAfstand <= consts.getMaxDistance() ) { //Gem kun hvis distancen er under max_distance for distributøren                          if (bedsteAfstand <= consts.getMaxDistance() ) { //Gem kun hvis distancen er under max_distance for distributøren
# Line 99  public class LookupWorker implements Run Line 119  public class LookupWorker implements Run
119                                  }                                  }
120                          }                          }
121    
122                            }
123    
124                    } catch (Exception e) {
125                            logger.log( Level.SEVERE, "Worker/" + workerID, e);
126                  }                  }
127    
128    
129    
130                  try {                  try {
131                            logger.info( "Worker/" + workerID + " afventer barrier");
132                          barrier.await();                          barrier.await();
133                  } catch (BrokenBarrierException e) {                  } catch (BrokenBarrierException e) {
134                          logger.log(Level.SEVERE, e.getMessage(), e);                          logger.log(Level.SEVERE, e.getMessage(), e);
135                          System.exit(-1);                          System.exit(-1);
136                  } catch(InterruptedException e) {                  } catch(InterruptedException e) {
137                          //Do nothing                          logger.log(Level.SEVERE, e.getMessage(), e);
138                  }                  }
139    
140    

Legend:
Removed from v.2712  
changed lines
  Added in v.2741

  ViewVC Help
Powered by ViewVC 1.1.20