import static java.lang.System.out; import static busradar.madison.Route.*; import java.io.*; import java.util.*; import org.json.*; import org.khelekore.prtree.*; import busradar.madison.*; import org.apache.commons.io.*; class CreatePaths { public static void main(String[] args) throws Exception { int[][][] polylines = null; JSONObject pathsdb = new JSONObject( FileUtils.readFileToString(new File("../paths-joined.json"))); JSONArray routes = new JSONArray( FileUtils.readFileToString(new File("../routes.json"))); ArrayList<Route> paths_out = new ArrayList<Route>(); for (int i = 0; i < routes.length(); i++) { JSONObject route = routes.getJSONObject(i); if (route.getBoolean("inactive")) { continue; } String name = route.getString("name"); int color = Integer.parseInt(route.getString("color"), 16); Route r = new Route(); r.color = color; r.days = BOTH; r.name = name; r.id = route.getInt("id"); JSONArray polylines_in = pathsdb.getJSONArray(name); r.polylines = new int[polylines_in.length()][]; for ( int polylinesi = 0; polylinesi < polylines_in.length(); polylinesi++) { JSONArray polyline_in = polylines_in.getJSONArray(polylinesi); int[] polyline = r.polylines[polylinesi] = new int[polyline_in.length() * 2]; for (int j = 0; j < polyline_in.length(); j++) { polyline[j*2] = polyline_in.getJSONArray(j).getInt(0); polyline[j*2+1] = polyline_in.getJSONArray(j).getInt(1); } } paths_out.add(r); } FileOutputStream file = new FileOutputStream("routes.bin.tmp"); DataOutputStream out = new DataOutputStream(file); out.writeInt(paths_out.size()); for (Route r : paths_out) { r.write(out); } file.close(); new File("routes.bin.tmp").renameTo(new File("routes.bin")); } }