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

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

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

revision 2769 by torben, Tue Nov 3 10:27:01 2015 UTC revision 2770 by torben, Sat Nov 7 18:02:56 2015 UTC
# Line 66  public class OSRMHelper { Line 66  public class OSRMHelper {
66                  }                  }
67    
68                  try {                  try {
69    
70    
71                          String txtResponse = HttpUtil.getContentString(sb.toString(), 500, "UTF-8");                          String txtResponse = HttpUtil.getContentString(sb.toString(), 500, "UTF-8");
72                          //OSRMDistanceTable table = gson.fromJson(txtResponse, OSRMDistanceTable.class);                          //OSRMDistanceTable table = gson.fromJson(txtResponse, OSRMDistanceTable.class);
73                          OSRMDistanceTable table = JSONValue.parse(txtResponse, OSRMDistanceTable.class);                          OSRMDistanceTable table = JSONValue.parse(txtResponse, OSRMDistanceTable.class);
# Line 81  public class OSRMHelper { Line 83  public class OSRMHelper {
83    
84                          int bedsteTid = Integer.MAX_VALUE;                          int bedsteTid = Integer.MAX_VALUE;
85    
86                          for (int i = 1; i<table.distance_table.length; i++) {                          for (int i = 1; i<table.distance_table[0].length; i++) {
87                                  if (table.distance_table[0][i] < bedsteTid) {                                  if (table.distance_table[0][i] < bedsteTid) {
88                                          bedsteTid = table.distance_table[0][i];                                          bedsteTid = table.distance_table[0][i];
89                                          int idx = i-1;                                          int idx = i-1;
# Line 98  public class OSRMHelper { Line 100  public class OSRMHelper {
100    
101    
102                  return bedsteAdresse;                  return bedsteAdresse;
103            }
104    
105            public Adresse getNearestTableHttpExperimental(Adresse a1, Collection<Adresse> haystack) {
106    
107    
108    
109                    Adresse bedsteAdresse = null;
110    
111                    Adresse hayArray[] = new Adresse[ haystack.size() ];
112                    haystack.toArray(hayArray);
113    
114                    StringBuilder sb = new StringBuilder();
115                    sb.append(base_url);
116                    sb.append("/table?src=").append(a1.latitude).append(",").append(a1.longitude);
117    
118                    for(int i = 0; i<hayArray.length; i++) {
119                            Adresse a = hayArray[i];
120                            sb.append("&loc=").append( a.latitude ).append(",").append(a.longitude);
121                    }
122    
123                    try {
124    
125                            String txtResponse = HttpUtil.getContentString(sb.toString(), 500, "UTF-8");
126    
127                            //OSRMDistanceTable table = gson.fromJson(txtResponse, OSRMDistanceTable.class);
128                            OSRMDistanceTable table = JSONValue.parse(txtResponse, OSRMDistanceTable.class);
129                            if (table.status != 0) {
130                                    logger.info("OSRM failed with message: " + table.status_message);
131                                    return null;
132                            }
133    
134                            if ( table.distance_table[0].length != hayArray.length  ) {
135                                    logger.log(Level.SEVERE, "Wrong number of results in matrix " + table.distance_table[0].length);
136    
137                                    System.out.println("--------------");
138                                    System.out.println("URL:");
139                                    System.out.println(sb.toString());
140                                    System.out.println("--------------");
141                                    System.out.println("Response:");
142                                    System.out.println(txtResponse);
143    
144    
145                                    System.exit(0);
146                            }
147    
148                            int bedsteTid = Integer.MAX_VALUE;
149    
150                            for (int i = 0; i<table.distance_table[0].length; i++) {
151                                    if (table.distance_table[0][i] < bedsteTid) {
152                                            bedsteTid = table.distance_table[0][i];
153                                            bedsteAdresse = hayArray[i];
154                                    }
155                            }
156    
157    
158                    } catch (Exception e) {
159                            logger.log(Level.SEVERE, "Lookup failed", e);
160                            System.out.println( sb.toString() );
161                            System.out.println( a1 );
162                            System.exit(1);                
163                    }
164    
165                    //return gson.fromJson(txtResponse, OSRMResponse.class);
166    
167    
168    
169                    return bedsteAdresse;
170          }          }
171                    
172                    

Legend:
Removed from v.2769  
changed lines
  Added in v.2770

  ViewVC Help
Powered by ViewVC 1.1.20