--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/osrm/OSRMHelper.java 2015/09/28 14:59:11 2720 +++ dao/FuldDaekningWorker/src/main/java/dk/daoas/fulddaekning/osrm/OSRMHelper.java 2015/09/29 09:17:03 2730 @@ -6,6 +6,19 @@ import java.util.logging.Level; import java.util.logging.Logger; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Future; + +import org.apache.http.HttpHost; +import org.apache.http.HttpRequest; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.nio.client.CloseableHttpPipeliningClient; +import org.apache.http.impl.nio.client.HttpAsyncClients; +import org.apache.http.util.EntityUtils; + import com.google.gson.Gson; import dk.daoas.fulddaekning.Adresse; @@ -18,7 +31,10 @@ Gson gson = new Gson(); - final String base_url = "http://10.30.2.61:5000"; + + final String host = "10.30.2.61"; + final int port = 5000; + final String base_url = "http://" + host + ":" + port; public Adresse getNearestViaTable(Adresse a1, Collection haystack) { @@ -39,6 +55,11 @@ try { String txtResponse = HttpUtil.getContentString(sb.toString(), 500, "UTF-8"); OSRMDistanceTable table = gson.fromJson(txtResponse, OSRMDistanceTable.class); + if (table.status != 0) { + logger.info("OSRM failed with message: " + table.status_message); + return null; + } + int bedsteTid = Integer.MAX_VALUE; for (int i = 1; i haystack) { + + int bedsteAfstand = Integer.MAX_VALUE; + Adresse bedsteAdresse = null; + + Adresse hayArray[] = new Adresse[ haystack.size() ]; + haystack.toArray(hayArray); + + + try (CloseableHttpPipeliningClient httpclient = HttpAsyncClients.createPipelining(); ) { + httpclient.start(); + + HttpHost targetHost = new HttpHost(host, port); + + System.out.println("1>" + targetHost.toString() ); + System.out.println("2>" + targetHost.toURI() ); + + List requests = new ArrayList(); + + String loc1 = a1.latitude + "," + a1.longitude; + + //for (int i=0; i> future = httpclient.execute(targetHost, requests, null); + List responses = future.get(); + + HttpResponse respArr[] = new HttpResponse[ responses.size() ]; + responses.toArray( respArr ); + + for (int i=0; i haystack) { - int bedsteAfstand = 9999999; + int bedsteAfstand = Integer.MAX_VALUE; Adresse bedsteAdresse = null; Iterator it = haystack.iterator();