コード例 #1
0
        /*
         * 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);
        }
コード例 #2
0
        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);
        }