WorkSpaceEx.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using SuperMap.Data;
  2. using SuperMap.Mapping;
  3. using SuperMap.UI;
  4. using System.Windows.Forms;
  5. namespace WWPipeLine.Map
  6. {
  7. public class WorkSpaceEx
  8. {
  9. /// <summary>
  10. /// 打开工作空间,地图,鹰眼
  11. /// </summary>
  12. /// <param name="mapControl"></param>
  13. /// <param name="mapControlEagleEye"></param>
  14. /// <param name="lastPath"></param>
  15. public void OpenMap(MapControl mapControl, MapControl mapControlEagleEye, string lastPath = "")
  16. {
  17. OpenFileDialog dialog = new OpenFileDialog
  18. {
  19. Multiselect = true,//该值确定是否可以选择多个文件
  20. Title = "请选择管线工作空间",
  21. Filter = "SuperMap 工作空间文件|*.smwu;*.sxwu"
  22. };
  23. if (!string.IsNullOrEmpty(lastPath) && System.IO.File.Exists(lastPath))
  24. {
  25. Open(lastPath);
  26. return;
  27. }
  28. if (dialog.ShowDialog() == DialogResult.OK)
  29. {
  30. string file = dialog.FileName;
  31. Open(file);
  32. Commons.SerializeHelper.IniHelper.Write(Commons.SerializeHelper.IniHelper.KEY_LAST_WORKSPACE_PATH, file);
  33. }
  34. void Open(string path)
  35. {
  36. Workspace ws = new Workspace();
  37. WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(path);
  38. if (ws.Open(workspaceConnectionInfo))
  39. {
  40. mapControl.Map.Workspace = ws;
  41. var mapName = ws.Maps[0];
  42. mapControl.Map.Open(mapName);
  43. mapControl.Action = SuperMap.UI.Action.Pan;
  44. mapControl.Map.Refresh();
  45. //鹰眼的配置
  46. mapControlEagleEye.Map.Workspace = ws;
  47. mapControlEagleEye.Map.Open(mapName);
  48. mapControlEagleEye.Map.Layers.Remove("JSLK@CL_PostGreSQL#1");
  49. mapControlEagleEye.Map.Layers.Remove("JSLK@CL_PostGreSQL");
  50. mapControlEagleEye.Map.Layers.Remove("JSJDPT@CL_PostGreSQL");
  51. foreach (Layer layer in mapControlEagleEye.Map.Layers)
  52. {
  53. layer.IsSelectable = false;
  54. layer.IsEditable = false;
  55. }
  56. mapControlEagleEye.Map.ViewEntire();
  57. mapControlEagleEye.Map.Refresh();
  58. mapControlEagleEye.MarginPanEnabled = false;
  59. mapControlEagleEye.IsWaitCursorEnabled = false;
  60. mapControlEagleEye.InteractionMode = InteractionMode.CustomAll;
  61. mapControlEagleEye.Cursor = Cursors.Arrow;
  62. }
  63. else
  64. {
  65. MessageBox.Show("打开工作空间失败");
  66. }
  67. }
  68. }
  69. /// <summary>
  70. /// 关闭工作空间,地图,鹰眼
  71. /// </summary>
  72. /// <param name="mapControl"></param>
  73. /// <param name="mapControlOfEagleEye"></param>
  74. public void CloseMap(MapControl mapControl, MapControl mapControlOfEagleEye)
  75. {
  76. mapControl.Map.Close();
  77. mapControlOfEagleEye.Map.Close();
  78. mapControl.Dispose();
  79. mapControlOfEagleEye.Dispose();
  80. if (mapControl.Map.Workspace != null)
  81. {
  82. mapControl.Map.Workspace.Close();
  83. mapControl.Map.Workspace.Dispose();
  84. }
  85. if (mapControlOfEagleEye.Map.Workspace != null)
  86. {
  87. mapControlOfEagleEye.Map.Workspace.Close();
  88. mapControlOfEagleEye.Map.Workspace.Dispose();
  89. }
  90. }
  91. }
  92. }