--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupMain.java 2015/09/27 13:21:45 2707 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupMain.java 2015/09/27 18:20:41 2708 @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Consumer; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; @@ -15,6 +16,8 @@ import com.jwetherell.algorithms.data_structures.KdTree; +import dk.daoas.fulddaekning.osrm.OSRMHelper; + public class LookupMain { static class LookupResult { @@ -37,7 +40,9 @@ + static final int MAX_RESULTS = 100; + static OSRMHelper osrmHelper = new OSRMHelper(); @@ -136,18 +141,19 @@ KdTree addressTree = hoTrees.get(ho); LookupResult result = new LookupResult(); - Collection res = addressTree.nearestNeighbourSearch(1, qAdresse); - if (res.size() > 1 ) { - System.out.println("Returnerede mere end 1>" + res.size() ); + Collection res = addressTree.nearestNeighbourSearch(MAX_RESULTS, qAdresse); + if (res.size() > MAX_RESULTS ) { + System.out.println("Returnerede mere end MAX_RESULTS> " + res.size() ); System.exit(0); } - result.bedsteAdr = res.iterator().next(); - //result.bedsteAdr = (Adresse) addressTree.findNearest(qAdresse); + + result.bedsteAdr = osrmHelper.getNearestViaTable(qAdresse, res); + System.out.println("Bedste:" + result.bedsteAdr ); + result.bedsteAfstand = GeoPointHelper.beregnAfstand(qAdresse, result.bedsteAdr); - if (result.bedsteAfstand <= consts.getMaxDistance() ) { //Gem kun hvis distancen er under max_distance for distributøren if (verbose == true) { logger.fine("(" +workerId + ") Bedste: " + qAdresse + "==>" + result.bedsteAdr + " ::: " + result.bedsteAfstand );