Intersection startTemp = findClosestIntersection(start.x, start.y); Intersection endTemp = findClosestIntersection(end.x, end.y);  Route bestRoute = null;  if (startTemp != null && endTemp != null) { if (roadClasses == null) logger.warning("huh? road classes is null???");  bestRoute = Route.getBestRoute(startTemp, endTemp, roadClasses.getBestConvoySpeed(), roadClasses.getWorstConvoySpeed()); }  if (bestRoute == null) { if (logger.isLoggable(Level.INFO)) logger.info("no route from " + startTemp + " to " + endTemp); } else { if (logger.isLoggable(Level.INFO)) logger.info("route from " + startTemp + " to " + endTemp + " is " + bestRoute); }   if (logger.isLoggable(Level.INFO) && bestRoute != null) { float length = 0; for (int i = 0; i < bestRoute.getRoads().length; i++) { Road road = bestRoute.getRoads()[i]; length += road.getLengthInKilometers(); }  logger.info("best route from " + bestRoute.getOriginIntersection() + " - start " + start + " to " + bestRoute.getDestinationIntersection() + " - end " + end + " was " + length + " kilometers."); }  return bestRoute;
return getPathOnRoad(createLatLonPoint(start.x, start.y), createLatLonPoint(end.x, end.y));
    public Route getRouteBetweenPoints(Point start, Point end) {        Intersection startTemp = findClosestIntersection(start.x, start.y);        Intersection endTemp = findClosestIntersection(end.x, end.y);        Route bestRoute = null;        if (startTemp != null && endTemp != null) {            if (roadClasses == null)                logger.warning("huh? road classes is null???");            bestRoute = Route.getBestRoute(startTemp,                    endTemp,                    roadClasses.getBestConvoySpeed(),                    roadClasses.getWorstConvoySpeed());        }        if (bestRoute == null) {            if (logger.isLoggable(Level.INFO))                logger.info("no route from " + startTemp + " to " + endTemp);        } else {            if (logger.isLoggable(Level.INFO))                logger.info("route from " + startTemp + " to " + endTemp                        + " is " + bestRoute);        }        // post condition check        if (logger.isLoggable(Level.INFO) && bestRoute != null) {            float length = 0;            for (int i = 0; i < bestRoute.getRoads().length; i++) {                Road road = bestRoute.getRoads()[i];                length += road.getLengthInKilometers();            }            logger.info("best route from " + bestRoute.getOriginIntersection()                    + " - start " + start + " to "                    + bestRoute.getDestinationIntersection() + " - end " + end                    + " was " + length + " kilometers.");        }        return bestRoute;    }