diff --git a/Pathfinding/Pathfinder.cs b/Pathfinding/Pathfinder.cs index 495e66b..ea08b57 100644 --- a/Pathfinding/Pathfinder.cs +++ b/Pathfinding/Pathfinder.cs @@ -8,14 +8,9 @@ public static class Pathfinder { public static List CustomAStar(string workingDir, Coordinates start, Coordinates goal, Tag.SpeedType vehicle) { - RegionManager regionManager = new RegionManager(workingDir); - Region? startRegion = regionManager.GetRegion(start); - Region? goalRegion = regionManager.GetRegion(goal); - if (startRegion is null || goalRegion is null) - return new List(); - - OsmNode? startNode = ClosestNodeToCoordinates(start, startRegion, vehicle, ref regionManager); - OsmNode? goalNode = ClosestNodeToCoordinates(goal, goalRegion, vehicle, ref regionManager); + RegionManager regionManager = new (workingDir); + OsmNode? startNode = ClosestNodeToCoordinates(start, vehicle, ref regionManager); + OsmNode? goalNode = ClosestNodeToCoordinates(goal, vehicle, ref regionManager); if (startNode == null || goalNode == null) return new List(); @@ -71,10 +66,13 @@ public static class Pathfinder return path; } - private static OsmNode? ClosestNodeToCoordinates(Coordinates coordinates, Region region, Tag.SpeedType vehicle, ref RegionManager regionManager) + public static OsmNode? ClosestNodeToCoordinates(Coordinates coordinates, Tag.SpeedType vehicle, ref RegionManager regionManager) { OsmNode? closest = null; double distance = double.MaxValue; + Region? region = regionManager.GetRegion(coordinates); + if (region is null) + return null; foreach (OsmNode node in region.nodes) { bool hasConnectionUsingVehicle = false;