EdgeWeight rewrite

This commit is contained in:
2023-04-09 17:00:28 +02:00
parent 05ae0bff6e
commit 5efec08bbc
3 changed files with 11 additions and 7 deletions

View File

@ -19,12 +19,15 @@ public static partial class Pathfinder
return retTuple;
}
private static double EdgeWeight(OsmNode node1, OsmNode node2, ulong wayId, Tag.SpeedType vehicle, ref RegionManager regionManager)
private static double EdgeWeight(OsmNode node1, OsmEdge edge, Tag.SpeedType vehicle, RegionManager regionManager)
{
OsmNode? node2 = regionManager.GetNode(edge.neighborId, edge.neighborRegion);
if (node2 is null)
return double.MaxValue;
double distance = Utils.DistanceBetween(node1, node2);
double speed = regionManager.GetSpeedForEdge(node1, wayId, vehicle);
if (speed is not 0)
return distance / speed;
return double.PositiveInfinity;
double speed = regionManager.GetSpeedForEdge(node1, edge.wayId, vehicle);
if (speed is 0)
return double.MaxValue;
return distance / speed;
}
}