deleteDir(NEO4J_FOLDER);
}
//Init Neo4j database
GraphDatabaseService db = new EmbeddedGraphDatabase(NEO4J_FOLDER);
//Import OSM data into the Neo4j database
new OsmImporter(db).importXML(OSM_MAP);
//Optimize previously loaded database
GlobalGraphOperations graphOperations = GlobalGraphOperations.at(db);
System.out.printf("BEFORE OPTIMIZE nodes = %d ways = %d \n", nodesCount(graphOperations), relCount(graphOperations));
new OsmRoutingOptimizer(db).optimize();
System.out.printf("AFTER OPTIMIZE nodes = %d ways = %d \n", nodesCount(graphOperations), relCount(graphOperations));
//Find route
List<LineString> route = new RouteCalculator().findRoute(getStartNode(db), getEndNode(db));
//Dump route to KML
KmlBuilder kmlBuilder = new KmlBuilder();
kmlBuilder.start();
kmlBuilder.addPoint(getCoordinate(getStartNode(db)), "START");
for (LineString lineString : route) {
kmlBuilder.addLineString(lineString, "");
}
kmlBuilder.addPoint(getCoordinate(getEndNode(db)), "FINISH");
kmlBuilder.finish();
kmlBuilder.writeToFile(new File("siem-reap.kml"));
//Close Neo4j
db.shutdown();
}