changed speeds and return type to byte
This commit is contained in:
@ -25,10 +25,8 @@ public static partial class Pathfinder
|
||||
if (node2 is null)
|
||||
return double.MaxValue;
|
||||
double distance = Utils.DistanceBetween(node1, node2);
|
||||
double speed = regionManager.GetSpeedForEdge(node1, edge.wayId, vehicle);
|
||||
if (speed is 0)
|
||||
return double.MaxValue;
|
||||
return distance / speed;
|
||||
byte speed = regionManager.GetSpeedForEdge(node1, edge.wayId, vehicle);
|
||||
return speed is 0 ? double.MaxValue : distance / speed;
|
||||
}
|
||||
|
||||
private static List<PathNode> GetRouteFromCalc(OsmNode goalNode, RegionManager regionManager)
|
||||
|
@ -76,10 +76,8 @@ namespace Pathfinding
|
||||
{
|
||||
if (type == Tag.SpeedType.any)
|
||||
return true;
|
||||
double speed = GetSpeedForEdge(node1, edge.wayId, type);
|
||||
if (speed != 0)
|
||||
return true;
|
||||
return false;
|
||||
byte speed = GetSpeedForEdge(node1, edge.wayId, type);
|
||||
return (speed is not 0);
|
||||
}
|
||||
|
||||
public OsmNode? ClosestNodeToCoordinates(Coordinates coordinates, Tag.SpeedType vehicle)
|
||||
@ -97,7 +95,7 @@ namespace Pathfinding
|
||||
hasConnectionUsingVehicle = false;
|
||||
foreach (OsmEdge edge in node.edges)
|
||||
{
|
||||
double speed = GetSpeedForEdge(node, edge.wayId, vehicle);
|
||||
byte speed = GetSpeedForEdge(node, edge.wayId, vehicle);
|
||||
if (speed != 0)
|
||||
hasConnectionUsingVehicle = true;
|
||||
}
|
||||
@ -114,25 +112,20 @@ namespace Pathfinding
|
||||
return closest;
|
||||
}
|
||||
|
||||
public double GetSpeedForEdge(OsmNode node1, ulong wayId, Tag.SpeedType vehicle)
|
||||
public byte GetSpeedForEdge(OsmNode node1, ulong wayId, Tag.SpeedType vehicle)
|
||||
{
|
||||
TagManager tags = GetRegion(node1.coordinates)!.tagManager;
|
||||
Tag.WayType wayType = (Tag.WayType)tags.GetTag(wayId, Tag.TagType.highway)!;
|
||||
byte speed = 0;
|
||||
switch (vehicle)
|
||||
{
|
||||
case Tag.SpeedType.pedestrian:
|
||||
byte speed = Tag.defaultSpeedPedestrian[wayType];
|
||||
if (speed is not 0)
|
||||
return speed;
|
||||
return 0;
|
||||
speed = Tag.defaultSpeedPedestrian[wayType];
|
||||
return speed is not 0 ? speed : (byte)0;
|
||||
case Tag.SpeedType.car:
|
||||
byte? maxSpeed = (byte?)tags.GetTag(wayId, Tag.TagType.maxspeed);
|
||||
if (maxSpeed is not null)
|
||||
return (double)maxSpeed;
|
||||
maxSpeed = Tag.defaultSpeedCar[wayType];
|
||||
if(maxSpeed is not 0)
|
||||
return (byte)maxSpeed;
|
||||
return 0;
|
||||
speed = Tag.defaultSpeedCar[wayType];
|
||||
return maxSpeed < speed ? (byte)maxSpeed : speed;
|
||||
case Tag.SpeedType.any:
|
||||
return 1;
|
||||
default:
|
||||
|
Reference in New Issue
Block a user