Esempio n. 1
0
  public static void tdsp() {
    // node list used for store path
    ArrayList<Long> pathNodeList = new ArrayList<Long>();

    // test start end node
    // OSMOutput.generateStartEndlNodeKML(START_NODE, END_NODE, nodeHashMap);
    // test count time
    long begintime = System.currentTimeMillis();

    LocationInfo startLoc = new LocationInfo(OSMRouteParam.START_LAT, OSMRouteParam.START_LON);
    LocationInfo endLoc = new LocationInfo(OSMRouteParam.END_LAT, OSMRouteParam.END_LON);
    NodeInfo start = startLoc.searchNode();
    NodeInfo end = endLoc.searchNode();

    double cost;
    // routing using A* algorithm with priority queue
    // cost = routingAStar(start.getNodeId(), end.getNodeId(), OSMRouteParam.START_TIME,
    // OSMRouteParam.DAY_INDEX, pathNodeList);

    // routing using A* algorithm with fibonacci heap
    // cost = routingAStarFibonacci(start.getNodeId(), end.getNodeId(), OSMRouteParam.START_TIME,
    // OSMRouteParam.DAY_INDEX, pathNodeList);

    // routing using bidirectional hierarchy search
    cost =
        routingHierarchy(
            start.getNodeId(),
            end.getNodeId(),
            OSMRouteParam.START_TIME,
            OSMRouteParam.DAY_INDEX,
            pathNodeList);

    long endtime = System.currentTimeMillis();
    long response = (endtime - begintime);
    System.out.println("routing cost: " + cost + " s, response time: " + response + " ms");

    // output kml
    OSMOutput.generatePathKML(pathNodeList);
    // OSMOutput.generatePathNodeKML(pathNodeList);

    String turnByTurn = turnByTurn(pathNodeList);
    System.out.println(turnByTurn);
  }