/* * Add connection for the carpooling network based on PT stops */ public TConnectionForCarpooling AddConnectionForCarpoolingRides(TNodeCarpooling src, TNodeCarpooling dst) { TConnectionForCarpooling C = new TConnectionForCarpooling(__MaxArcID, src, dst); src.Connections.Add(C); Connections.Add(__MaxArcID, C); TConnectionsForCarpoolingRides.Add(__MaxArcID, C); ++(__MaxArcID); return(C); }
public TConnectionForCarpooling AreConnected(TNodeCarpooling src, TNodeCarpooling dst, string routeID) { TConnectionForCarpooling TC = TConnectionsForCarpoolingRides.Values.Where(x => x.GetSource().Id == src.Id && x.GetDestination().Id == dst.Id).FirstOrDefault(); if (TC == null) { double distanceFromSource = src.Point.DistanceFrom(dst.Point); this.AddConnectionForCarpoolingRides(src, dst); TC = TConnectionsForCarpoolingRides.Values.Where(x => x.GetSource().Id == src.Id && x.GetDestination().Id == dst.Id).FirstOrDefault(); log.Warn("Not connected, added connection from \"" + src.StopName + "\" to \"" + dst.StopName + "\" (distance: " + distanceFromSource + "m)"); } return(TC); }