Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
App.java 2.74 KiB
package map.builder;
import java.io.IOException;
import java.util.ArrayList;
import org.json.JSONArray;
import de.fuberlin.navigator.protos.map_builder.RoadNetwork;
import map.builder.osm.OSMConnectedComponentParser;
import map.builder.osm.OSMFetcher;
import map.builder.osm.OSMParser;
import map.builder.utilities.BoundingBox;
import map.builder.utilities.ConnectedComponentGraph;
import map.builder.utilities.FileHandler;
public class App {
public static void main(String[] args) throws IOException {
RoadNetwork.Builder roadNetworkBuilder = RoadNetwork.newBuilder();
OSMParser parser = new OSMParser(roadNetworkBuilder);
// A small BBox inside Cottbus
/*
* float minLat = 51.765120241998865f;
* float minLon = 14.32669617537409f;
* float maxLat = 51.77116774623326f;
* float maxLon = 14.330334220133722f;
*/
// smaller BBox inside Cottbus, better for the debug tool
float minLat = 51.754092326645475f;
float minLon = 14.300615062713623f;
float maxLat = 51.766591637718435f;
float maxLon = 14.314413070678711f;
// BBox around Cottbus
/*
* float minLat = 51.714692361306376f;
* float minLon = 14.26197052001953f;
* float maxLat = 51.79290380494767f;
* float maxLon = 14.415779113769531f;
*/
BoundingBox bbox = new BoundingBox(minLat, minLon, maxLat, maxLon);
JSONArray restrictions = OSMFetcher.fetchTurnRestrictions(bbox);
JSONArray roads = OSMFetcher.fetchNodesAndWays(bbox);
OSMFetcher.dumpJsonData(roads, "test_data.json");
parser.parseTurnRestrictions(restrictions);
parser.parseRoads(roads);
// set it to 0 so that it can be collected by garbage collector
restrictions = null;
roads = null;
bbox = null;
parser = null;
// create the nodes graph in order to run LCC on it
ConnectedComponentGraph graph = new ConnectedComponentGraph();
OSMConnectedComponentParser.addNodes(roadNetworkBuilder, graph);
OSMConnectedComponentParser.addEdges(roadNetworkBuilder, graph);
ArrayList<Long> component = graph.getSCCs();
System.out.println(component.toString());
// cleanup
graph = null;
OSMConnectedComponentParser.cleanUp(roadNetworkBuilder, component);
RoadNetwork roadNetwork = roadNetworkBuilder.build();
System.out.println("Turn restrictions count: " + roadNetwork.getTurnRestrictionsCount());
System.out.println("Nodes count: " + roadNetwork.getNodesCount());
System.out.println("Segments count: " + roadNetwork.getSegmentsCount());
FileHandler.saveToFile(roadNetwork, "./roadnetwork_sample.proto");
}
}