Ejemplo n.º 1
0
        /// <summary>
        /// 路网数据下载
        /// </summary>
        public void DownLoadRoadLine()
        {
            var roads         = new GaoDeRoads();
            var roaddataTable = new DataTable(this.City);

            roaddataTable.Columns.AddRange(
                new[]
                { new DataColumn("Name"), new DataColumn("WIDTH"), new DataColumn("TYPE"), new DataColumn("PATH") });

            Console.WriteLine("下载{0}中", this.City);
            roads.downOverHandler += () =>
            {
                var directory = this.GetCityDirectory();
                var path      = Path.Combine(directory, this.CityPinyin + "_roadNet.shp");
                ShpFileHelper.SaveShpFile(
                    roaddataTable,
                    path,
                    wkbGeometryType.wkbLineString,
                    ProjectConvert.GAODE84_WGS);
                roaddataTable.Rows.Clear();
            };
            roads.roadDateDowningHandler += (RoadModel road, int index, int count) =>
            {
                foreach (string path in road.paths)
                {
                    DataRow row = roaddataTable.NewRow();
                    row[0] = road.name;
                    row[1] = road.width;
                    row[2] = road.type;
                    row[3] = path;
                    roaddataTable.Rows.Add(row);
                }
            };
            roads.downLoadRoadsByCityName(this.City);
        }
Ejemplo n.º 2
0
        private void downRoadCross()
        {
            GaoDeRoads r = new GaoDeRoads();

            r.roadCrossDowningHandler += new GaoDeRoads.RoadCrossDowningHandler(roadCrossDownHandler);
            r.downOverHandler         += new GaoDeRoads.DownOverHandler(downEnd);
            r.downLoadRoadCrossByCityName(this.currentCity);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 根据道路交叉口检测道路名称
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.cmbCity.SelectedItem == null)
            {
                return;
            }
            var cityName = ((ComboboxItem)this.cmbCity.SelectedItem).Text;
            var roadMap  = new GaoDeRoads();

            this.rtxbRoadNames.ReadOnly = true;
            var list = new List <string>();

            roadMap.roadCrossDowningHandler += (roadcross, index, count) =>
            {
                this.BeginInvoke(new MethodInvoker(
                                     () =>
                {
                    if (this.IsDisposed)
                    {
                        return;
                    }
                    this.labMessage.Text = string.Format(
                        "{0}_{1}",
                        roadcross.first_name,
                        roadcross.second_name);
                }));
                list.Add(roadcross.first_name);
                list.Add(roadcross.second_name);
            };
            roadMap.downOverHandler += () =>
            {
                list = list.Distinct().ToList();
                var temp = list;
                this.BeginInvoke(
                    new MethodInvoker(
                        () =>
                {
                    if (this.IsDisposed)
                    {
                        return;
                    }
                    this.rtxbRoadNames.ReadOnly = false;
                    this.rtxbRoadNames.Text     = string.Join(",", temp.Distinct().ToArray());
                    this.labMessage.Text        = string.Format("更新成功,新增{0}条数据", temp.Count);
                }));
                var currentCity = CityRoadConfig.GetInstance().GetRoadName(cityName);
                list.AddRange(currentCity.Roads);
                list = list.Distinct().ToList();
                list.Sort((m, n) => { return(string.Compare(m, n)); });
                currentCity.Roads = list;
                CityRoadConfig.GetInstance().SaveConfig();
            };
            new Thread(
                () =>
            {
                roadMap.downLoadRoadCrossByCityName(cityName);
            }).Start();
        }
Ejemplo n.º 4
0
        private void downRoadData()
        {
            this.InitRoadDataTable();
            GaoDeRoads gaodeRoad = new GaoDeRoads();

            gaodeRoad.roadDateDowningHandler += new GaoDeRoads.RoadDateDowningHandler(roadDownHandler);
            gaodeRoad.downOverHandler        += new GaoDeRoads.DownOverHandler(saveDataInShp);
            gaodeRoad.downLoadRoadsByCityName(this.roadCurrentCity);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 路口数据下载
        /// </summary>
        public void DownLoadRoadCross()
        {
            var crossDataTable = new DataTable();

            crossDataTable.Columns.Add("first_name", Type.GetType("System.String"));
            crossDataTable.Columns.Add("second_name", Type.GetType("System.String"));

            crossDataTable.Columns.Add("x", Type.GetType("System.String"));
            crossDataTable.Columns.Add("y", Type.GetType("System.String"));
            crossDataTable.Columns.Add("name", Type.GetType("System.String"));

            var directory = this.GetCityDirectory();

            var path = Path.Combine(directory, this.CityPinyin + "_roadcross.xlsx");

            var road = new GaoDeRoads();

            road.roadCrossDowningHandler += (roadCross, index, count) =>
            {
                DataRow row = crossDataTable.NewRow();
                row["first_name"]  = roadCross.first_name;
                row["second_name"] = roadCross.second_name;
                row["x"]           = roadCross.wgs_x;
                row["y"]           = roadCross.wgs_y;
                row["name"]        = string.Format("{0}_{1}", roadCross.first_name, roadCross.second_name);
                crossDataTable.Rows.Add(row);
            };
            road.downOverHandler += () =>
            {
                try
                {
                    AsposeCellsHelper.ExportToExcel(crossDataTable, path);
                    crossDataTable.Rows.Clear();
                }
                catch (Exception)
                {
                    Console.WriteLine("Error" + this.City);
                }
            };
            road.downLoadRoadCrossByCityName(this.City);
        }
Ejemplo n.º 6
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.rtxbRoadNames.Text))
            {
                return;
            }
            if (this.cmbCity.SelectedItem == null)
            {
                return;
            }
            var cityName  = ((ComboboxItem)this.cmbCity.SelectedItem).Text;
            var roadNames = this.rtxbRoadNames.Text.Replace(",", ",").Split(',');

            var roadMap       = new GaoDeRoads();
            var roaddataTable = new DataTable();

            roaddataTable.Columns.Add("Name", Type.GetType("System.String"));
            roaddataTable.Columns.Add("WIDTH", Type.GetType("System.String"));
            roaddataTable.Columns.Add("TYPE", Type.GetType("System.String"));
            roaddataTable.Columns.Add("PATH", Type.GetType("System.String"));
            var m = 0;

            roadMap.roadDateDowningHandler += (RoadModel road, int index, int count) =>
            {
                for (int i = 0; i < road.paths.Count; i++)
                {
                    m++;
                    DataRow row = roaddataTable.NewRow();
                    row[0] = road.name;
                    row[1] = road.width;
                    row[2] = road.type;
                    row[3] = road.paths[i];
                    roaddataTable.Rows.Add(row);
                }
                this.BeginInvoke(
                    new MethodInvoker(
                        () =>
                {
                    if (this.IsDisposed)
                    {
                        return;
                    }
                    this.progressBar.Value = index * 100 / count;
                    this.labMessage.Text   = "已下载完道路:" + road.name;
                    this.progressBar.Update();
                }));
            };

            roadMap.downOverHandler += () =>
            {
                var path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, cityName + ".shp");
                ShpFileHelper.SaveShpFile(roaddataTable, path, wkbGeometryType.wkbLineString, ProjectConvert.GAODE84_WGS);
                this.BeginInvoke(
                    new MethodInvoker(
                        () =>
                {
                    if (this.IsDisposed)
                    {
                        return;
                    }
                    this.progressBar.Value = 100;
                    this.labMessage.Text   = "保存完成";
                    this.progressBar.Update();
                }));
            };
            new Thread(
                () =>
            {
                roadMap.DownLoadRoads(cityName, roadNames.ToList());
            }).Start();
        }