/[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 2713 by torben, Sun Sep 27 19:52:01 2015 UTC dao/FuldDaekningWorker/src/main/java/dk/daoas/fulddaekning/LookupWorker.java revision 2725 by torben, Tue Sep 29 07:48:48 2015 UTC
# Line 3  package dk.daoas.fulddaekning; Line 3  package dk.daoas.fulddaekning;
3  import java.sql.SQLException;  import java.sql.SQLException;
4  import java.util.Collection;  import java.util.Collection;
5  import java.util.Map;  import java.util.Map;
6    import java.util.NoSuchElementException;
7  import java.util.Queue;  import java.util.Queue;
8  import java.util.concurrent.BrokenBarrierException;  import java.util.concurrent.BrokenBarrierException;
9  import java.util.concurrent.CyclicBarrier;  import java.util.concurrent.CyclicBarrier;
# Line 60  public class LookupWorker implements Run Line 61  public class LookupWorker implements Run
61          public void run() {          public void run() {
62                  System.out.println( "Worker/" + workerID + " starting");                  System.out.println( "Worker/" + workerID + " starting");
63    
64                  while ( ! ikkeDaekkede.isEmpty() ) {                  try {
65                            while ( ! ikkeDaekkede.isEmpty() ) {
66                                                    
67                          Adresse qAdresse = ikkeDaekkede.remove();                                  Adresse qAdresse = ikkeDaekkede.remove();
   
                         short ho = qAdresse.ho;  
                         KdTree<Adresse> addressTree = hoTrees.get(ho);  
68    
69                          Collection<Adresse> res = addressTree.nearestNeighbourSearch(MAX_RESULTS, qAdresse);                                  short ho = qAdresse.ho;
70                          if (res.size() > MAX_RESULTS ) {                                  KdTree<Adresse> addressTree = hoTrees.get(ho);
                                 System.out.println("Returnerede mere end MAX_RESULTS> " + res.size() );  
                                 System.exit(0);  
                         }  
71    
72                                    Collection<Adresse> res = addressTree.nearestNeighbourSearch(MAX_RESULTS, qAdresse);
73                                    if (res.size() > MAX_RESULTS ) {
74                                            System.out.println("Returnerede mere end MAX_RESULTS> " + res.size() );
75                                            System.exit(0);
76                                    }
77    
                         Adresse bedsteAdr = osrmHelper.getNearestViaTable(qAdresse, res);  
                         //System.out.println("Bedste:" + bedsteAdr );  
78    
79                            Adresse bedsteAdr = res.iterator().next(); //Tag første element
80                          double bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, bedsteAdr);                          double bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, bedsteAdr);
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.getNearestViaTable(qAdresse, res);
85    
86                                    if (bedsteAdr2 != null) {
87                                            bedsteAdr = bedsteAdr2;
88                                            bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, bedsteAdr);
89                                    } else {
90                                            logger.info("NearestViaTable returned null for " + qAdresse);
91                                    }
92                            }
93                            
94    
95                            
96    
97    
98                          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 101  public class LookupWorker implements Run Line 116  public class LookupWorker implements Run
116                                  }                                  }
117                          }                          }
118    
119                            }
120    
121                    } catch (Exception e) {
122                            logger.log( Level.SEVERE, "Worker/" + workerID, e);
123                  }                  }
124    
125    
126    
127                  try {                  try {
128                            logger.info( "Worker/" + workerID + " afventer barrier");
129                          barrier.await();                          barrier.await();
130                  } catch (BrokenBarrierException e) {                  } catch (BrokenBarrierException e) {
131                          logger.log(Level.SEVERE, e.getMessage(), e);                          logger.log(Level.SEVERE, e.getMessage(), e);
132                          System.exit(-1);                          System.exit(-1);
133                  } catch(InterruptedException e) {                  } catch(InterruptedException e) {
134                          //Do nothing                          logger.log(Level.SEVERE, e.getMessage(), e);
135                  }                  }
136    
137    

Legend:
Removed from v.2713  
changed lines
  Added in v.2725

  ViewVC Help
Powered by ViewVC 1.1.20