Compare commits
5 Commits
e53d1086cc
...
56ac9dc948
Author | SHA1 | Date | |
---|---|---|---|
56ac9dc948 | |||
9ef63c9886 | |||
2b5dd91335 | |||
9f0d47ed59 | |||
371989b34d |
@ -21,8 +21,7 @@ public class Coordinates
|
||||
if (obj == null || obj.GetType() != this.GetType())
|
||||
return false;
|
||||
Coordinates convObj = (Coordinates)obj;
|
||||
// ReSharper disable twice CompareOfFloatsByEqualityOperator static values
|
||||
return convObj.latitude == this.latitude && convObj.longitude == this.longitude;
|
||||
return convObj.latitude.Equals(this.latitude) && convObj.longitude.Equals(longitude);
|
||||
}
|
||||
|
||||
public static ulong GetRegionHashCode(float latitude, float longitude)
|
||||
@ -49,6 +48,6 @@ public class Coordinates
|
||||
public override string ToString()
|
||||
{
|
||||
return
|
||||
$"lat:{latitude.ToString(NumberFormatInfo.InvariantInfo)} lon:{longitude.ToString(CultureInfo.InvariantCulture)}";
|
||||
$"Coordinates lat:{latitude.ToString(NumberFormatInfo.InvariantInfo)} lon:{longitude.ToString(CultureInfo.InvariantCulture)}";
|
||||
}
|
||||
}
|
@ -22,6 +22,6 @@ public class OsmEdge
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"w:{wayId} n1:{startId} n2:{neighborId} in r:{neighborRegion}";
|
||||
return $"Edge wayId:{wayId} n1:{startId} n2:{neighborId} in regionId:{neighborRegion}";
|
||||
}
|
||||
}
|
@ -40,6 +40,6 @@ public class OsmNode
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{nodeId} {coordinates} ec:{edges.Count}";
|
||||
return $"Node id:{nodeId} coordinates:{coordinates} edges-count:{edges.Count}";
|
||||
}
|
||||
}
|
@ -18,7 +18,7 @@ public class Tag
|
||||
switch (key)
|
||||
{
|
||||
case TagType.highway:
|
||||
this.value = (WayType)value.GetByte();
|
||||
this.value = value.GetByte();
|
||||
break;
|
||||
case TagType.maxspeed:
|
||||
this.value = value.GetByte();
|
||||
|
@ -23,17 +23,13 @@ namespace Pathfinding
|
||||
|
||||
public Region? GetRegion(ulong id)
|
||||
{
|
||||
|
||||
if(_regions.TryGetValue(id, out Region? retRegion))
|
||||
return retRegion;
|
||||
|
||||
if (!_regions.ContainsKey(id))
|
||||
{
|
||||
Region? loadedRegion = RegionFromId(id);
|
||||
|
||||
if(_regions.TryGetValue(id, out Region? retRegion2)) //Prevent other thread from changing collection
|
||||
return retRegion2;
|
||||
if(loadedRegion is not null)
|
||||
if (loadedRegion is not null)
|
||||
_regions.TryAdd(loadedRegion.regionHash, loadedRegion);
|
||||
|
||||
return _regions[id]; //return from _regions instead of loadedRegion for multithreading/pointers
|
||||
}
|
||||
return _regions[id];
|
||||
}
|
||||
|
||||
@ -46,7 +42,7 @@ namespace Pathfinding
|
||||
{
|
||||
if (!File.Exists(filePath))
|
||||
{
|
||||
throw new FileNotFoundException(filePath);
|
||||
//throw new FileNotFoundException(filePath);
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -70,9 +66,8 @@ namespace Pathfinding
|
||||
|
||||
public bool TestValidConnectionForType(OsmNode node1, OsmNode node2, SpeedType type)
|
||||
{
|
||||
foreach (OsmEdge edge in node1.edges)
|
||||
foreach (OsmEdge edge in node1.edges.Where(edge => edge.neighborId.Equals(node2.nodeId)))
|
||||
{
|
||||
if (edge.neighborId.Equals(node2.nodeId))
|
||||
return TestValidConnectionForType(node1, edge, type);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user