/// <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); }
private void downRoadCross() { GaoDeRoads r = new GaoDeRoads(); r.roadCrossDowningHandler += new GaoDeRoads.RoadCrossDowningHandler(roadCrossDownHandler); r.downOverHandler += new GaoDeRoads.DownOverHandler(downEnd); r.downLoadRoadCrossByCityName(this.currentCity); }
/// <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(); }
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); }
/// <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); }
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(); }