public ArrayList<Direction> directionsTo(int toNodeId, boolean walkOnly, int fromNodeId) {
    Node fromNode = mGraph.getNode(fromNodeId);
    if (fromNode.getOutGoingEdges().size() == 0) return null;
    GeoPoint fromLoc = new GeoPoint(fromNode.getLatE6(), fromNode.getLongE6());

    return directionsTo(toNodeId, walkOnly, fromLoc);
  }
  public void centerOn(int nodeId, long delayMilliSecs) {
    if (loadMapTask.isCompleted == false) {
      this.mToBeCenterOn = true;
      this.mCenterOnNodeId = nodeId;
      this.mCenterOnDelay = delayMilliSecs;
      return;
    }

    Node node = mGraph.getNode(nodeId);
    GeoPoint loc = new GeoPoint(node.getLatE6(), node.getLongE6());
    centerOn(loc, delayMilliSecs);
  }
 public void routeTo(int toNodeId, boolean walkOnly, int fromNodeId, boolean centerMap) {
   if (!this.loadMapTask.isCompleted) {
     this.isPathToBeDisplayed = true;
     this.destinationNodeId = toNodeId;
     this.startNodeId = fromNodeId;
     this.isWalkOnly = walkOnly;
     Toast.makeText(mContext, ("Please wait for data to load."), Toast.LENGTH_LONG).show();
     return;
   }
   Node fromNode = mGraph.getNode(fromNodeId);
   GeoPoint fromLoc = new GeoPoint(fromNode.getLatE6(), fromNode.getLongE6());
   routeTo(toNodeId, walkOnly, fromLoc, centerMap);
 }