KuoJian.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using SuperMap.Data;
  2. using SuperMap.Mapping;
  3. using System;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Windows.Forms;
  7. using WWPipeLine.MapBasic;
  8. using WWPipeLine.MapBasic.Conditions;
  9. namespace WWPipeLine.MapTools.Conditions.AnalystToolBar
  10. {
  11. public class KuoJian : BasicToolBar
  12. {
  13. public KuoJian() : base()
  14. {
  15. this.ConditionPanelName = "道路扩建分析";
  16. var analystToolStripButton = new ToolStripButton()
  17. {
  18. DisplayStyle = ToolStripItemDisplayStyle.ImageAndText,
  19. Text = "扩建分析",
  20. Name = "Analyst",
  21. AutoToolTip = false
  22. };
  23. base.ToolStrip.Items.Add(analystToolStripButton);
  24. analystToolStripButton.Click += AnalystToolStripButton_Click;
  25. }
  26. private void AnalystToolStripButton_Click(object sender, EventArgs e)
  27. {
  28. int index = MapControl.Map.TrackingLayer.IndexOf(ComsStatic.ControlToolsTrackingName);
  29. if (index == -1)
  30. {
  31. Sunny.UI.UIMessageTip.ShowError("请先绘制区域"); return;
  32. }
  33. GeoRegion geo = MapControl.Map.TrackingLayer.Get(index) as GeoRegion;
  34. DataSet dtsLayer = new DataSet();
  35. DatasetVector dv;
  36. Recordset ds;
  37. DataTable dt;
  38. foreach (Layer lyr in ComsStatic.MapLayersUsed)
  39. {
  40. dv = lyr.Dataset as DatasetVector;
  41. if (dv is null) continue;
  42. ds = dv.Query(geo, 0, CursorType.Static);
  43. if (ds is null) continue;
  44. dt = ComsStatic.RecordsetToDataTable(ds);
  45. if (dt.Rows.Count == 0) continue;
  46. dt.TableName = string.Format("{0} 影响{1}个", lyr.Caption, dt.Rows.Count);
  47. dtsLayer.Tables.Add(dt);
  48. }
  49. AnalystResultTabControl from = new AnalystResultTabControl(dtsLayer, "扩建分析结果");
  50. from.ShowDialog();
  51. this.CloseToolBar();
  52. }
  53. protected override void OnLoad(EventArgs e)
  54. {
  55. MapControl.Action = SuperMap.UI.Action.CreatePolygon;
  56. MapControl.Tracked += ComsStatic.MapControl_Tracked_TrackingName;
  57. }
  58. private void InitializeComponent()
  59. {
  60. this.SuspendLayout();
  61. //
  62. // KuoJian
  63. //
  64. this.Name = "KuoJian";
  65. this.ResumeLayout(false);
  66. this.PerformLayout();
  67. }
  68. }
  69. }