Beispiel #1
0
        public bool addPath(int stationA, int stationB)
        {
            if (!_busData.Stations.ContainsKey(stationA) || !_busData.Stations.ContainsKey(stationB))
            {
                return(false);
            }
            Vertex vertA = checkAndAddVertex(stationA);
            Vertex vertB = checkAndAddVertex(stationB);

            string      pathId = BUtils.generatePathId(stationA, stationB);
            Edge        edge   = checkAndAddEdge(pathId);
            StationPath path   = _busData.getStationPath(pathId);

            edge.Target = vertB;
            edge.Weight = path.Distance;
            addEdgeToVertex(edge, vertA);

            return(true);
        }
Beispiel #2
0
        private void drawStationPath(List <int> stationIds, Color color, GMapOverlay overlay)
        {
            List <PointLatLng> list = new List <PointLatLng>();
            int preStation          = 0;

            for (int i = 0; i < stationIds.Count; i++)
            {
                int station = stationIds[i];
                if (preStation == 0)
                {
                    preStation = station;
                }
                else
                {
                    string key = BUtils.generatePathId(preStation, station);
                    if (!StationPaths.ContainsKey(key))
                    {
                        preStation = station;
                        continue;
                    }
                    StationPath    path   = StationPaths[key];
                    List <LatLong> points = path.Path;
                    for (int j = 0; j < points.Count; j++)
                    {
                        LatLong     point = points[j];
                        PointLatLng pont1 = new PointLatLng(point.Latitude, point.Longitude);
                        list.Add(pont1);
                    }
                    preStation = station;
                }
            }

            GMapRoute routers = new GMapRoute(list, "polygon");

            routers.Stroke       = new Pen(color);
            routers.Stroke.Width = 5;
            overlay.Routes.Add(routers);
        }