Ejemplo n.º 1
0
        private void gMapControl1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            var lat = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lat;
            var lng = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lng;

            if (_currentStationOnCurrentRoute < _namesOfStationsOnCurrentRoute.Count)
            {
                var station = new Station(_namesOfStationsOnCurrentRoute[_currentStationOnCurrentRoute]);
                _allStations.AddStation(station);

                AddMarker(lat, lng, station);
            }

            AddStationToRoute();
        }
Ejemplo n.º 2
0
        private void Btn_Add_Click(object sender, EventArgs e)
        {
            _stationsLoader = new StationsLoader();

            for (int i = 1; i <= 4; i++)
            {
                var transportType  = i;
                var url            = $"http://www.yargortrans.ru/list.php?vt={transportType}";
                var _transportType = SwitchTransportType(i);

                var Webget = new HtmlWeb()
                {
                    OverrideEncoding = Encoding.Default
                };

                var doc    = Webget.Load(url);
                var routes = doc.DocumentNode.SelectNodes("//li[@class='route_list_item']//a");

                for (int j = 0; j < routes.Count; j++)
                {
                    string[] items         = routes[j].InnerText.Split('.');
                    var      routeNumber   = items[0];
                    var      routeNumberEn = ReplaceLetter(routeNumber);

                    url = $"http://www.yargortrans.ru/config.php?vt={transportType}&nmar={routeNumberEn}";
                    _stationsLoader.Load(url, transportType);

                    var directRoute         = new List <string>();
                    var reverseRoute        = new List <string>();
                    var lengthOfDirectRoute = _stationsLoader.CountOfStationsOnDirectRoute;

                    for (int k = 0; k < lengthOfDirectRoute; k++)
                    {
                        directRoute.Add(_stationsLoader.StationsList[k]);
                        _allStations.AddStation(new Station(_stationsLoader.StationsList[k]));
                    }

                    for (int k = lengthOfDirectRoute; k < _stationsLoader.StationsList.Count; k++)
                    {
                        reverseRoute.Add(_stationsLoader.StationsList[k]);
                        _allStations.AddStation(new Station(_stationsLoader.StationsList[k]));
                    }

                    var route        = new Route(routeNumberEn, _transportType);
                    var routeContent = new RouteContent(directRoute, reverseRoute);

                    _allRoutes.AddRoute(route, routeContent);
                    _routeMatrix.AddRoute(route, directRoute, reverseRoute, _allStations);
                }
            }

            var formatter = new BinaryFormatter();

            using (FileStream fs = new FileStream("allroutes.dat", FileMode.OpenOrCreate))
            {
                formatter.Serialize(fs, _allRoutes);
            }

            using (FileStream fs = new FileStream("allstations.dat", FileMode.OpenOrCreate))
            {
                formatter.Serialize(fs, _allStations);
            }

            using (FileStream fs = new FileStream("routematrix.dat", FileMode.OpenOrCreate))
            {
                formatter.Serialize(fs, _routeMatrix);
            }

            label1.Visible = true;
        }