namespace Graph; public class Node(float lat, float lon, Dictionary>? neighbors = null) { public readonly Dictionary> Neighbors = neighbors??new(); //nodeId, wayId, forward public readonly float Lat = lat, Lon = lon; public double DistanceTo(Node n2) => Utils.NodeUtils.DistanceBetween(this, n2); public double DistanceTo(float latitude, float longitude) => Utils.NodeUtils.DistanceBetween(this, latitude, longitude); public bool HasEdgeTo(ulong neighbor) => this.Neighbors.ContainsKey(neighbor); public override string ToString() { return $"Node {Lat:00.000000} {Lon:000.000000}"; } }