年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

749 lines
31 KiB

6 months ago
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using KGIS.Framework.Views;
using KGIS.Framework.Maps;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.ExtensionMethod;
using KGIS.Framework.Menus;
using KGIS.Framework.Core.Consts;
using ESRI.ArcGIS.Carto;
using KGIS.Framework.Menus.Entities;
using UIShell.OSGi;
using KGIS.Framework.Commands;
using DevExpress.XtraBars;
using ESRI.ArcGIS.SystemUI;
using KGIS.Framework.Platform;
using ESRI.ArcGIS.Geometry;
using KGIS.Framework.Utils.Helper;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Display;
using Kingo.PluginServiceInterface;
using DevExpress.Xpf.Editors;
using KGIS.Framework.AE;
using KGIS.Framework.AE.Enum;
using ESRI.ArcGIS.Geodatabase;
using System.IO;
using static Kingo.Plugin.BHTB_Extract.View.MulitMapCatalog;
using Kingo.Framework.LayerStyleConvert.XSDClass;
using Kingo.Framework.LayerStyleConvert.Common;
namespace Kingo.Plugin.BHTB_Extract.View
{
public partial class UcMapControl : UserControl, IDocumentView
{
public string Header { get; set; }
public bool IsOpened { get; set; }
public bool AllowClose { get; set; }
public bool IsFloat { get; set; }
public bool IsActive { get; set; }
public bool AllowFloat { get; set; }
ICommandManager _CmdManager = null;
private MenuGroupEntityManager _mapToolsGroupEntityManager;
private MenuItemEntityManager _mapToolsItemEntityManager;
private string StrTig { get; set; }
private List<ILayer> layer { get; set; } = new List<ILayer>();
public UcMapControl(/*List<ILayer> tempLayer*/)
{
InitializeComponent();
//layer = tempLayer;
//layer = MapsManager.Instance.MapService.GetAllLayerInMap<ILayer>();
Header = "前时相";
this.AllowClose = true;
this.IsActive = true;
this.AllowFloat = false;
InitMapTools();
axMapControl.OnExtentUpdated -= AxMapControl_OnExtentUpdated;
axMapControl.OnExtentUpdated += AxMapControl_OnExtentUpdated;
Platform.Instance.NotifyMsgEven2 += o =>
{
if (o.MsgType == "ExtentUpdated" && o.Content.ToTrim() == "MainMap")
{
try
{
StrTig = o.Content.ToTrim();
axMapControl.ActiveView.Extent = o.Extend as IEnvelope;// MapsManager.Instance.MapService.getAxMapControl().Extent;
axMapControl.ActiveView.Refresh();
}
catch { }
}
};
}
private void AxMapControl_OnExtentUpdated(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvent e)
{
//MapsManager.Instance.MapService.getAxMapControl().Extent != (e.newEnvelope as IEnvelope) &&
if (StrTig != "MainMap")
{
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "ExtentUpdated", Content = "Map2", Extend = e.newEnvelope });
}
StrTig = "";
}
private void InitMapTools()
{
InitData(ExtensionPointConst.MapTools);
var MenuPageData = GetMenuPageData();
InitMapTools(MenuPageData);
}
public void SetLayer()
{
layer = MapsManager.Instance.MapService.GetAllLayerInMap<ILayer>();
if (layer == null)
{
MessageHelper.ShowWarning("获取多窗口操作图层失败!");
return;
}
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProjectForNoEditor" });
InitLayerVisible();
layer.Reverse();
axMapControl.SpatialReference = MapsManager.Instance.MapService.getAxMapControl().SpatialReference;
foreach (ILayer item in layer)
{
if ((item as RasterLayer) != null)
{
IRasterLayer templayer = new RasterLayerClass();
templayer.CreateFromFilePath((item as IRasterLayer).FilePath);
templayer.Name = item.Name;
templayer.Visible = item.Visible == false ? false : GetParentIsChecked(nodes.Find(a=>a.LayerName == item.Name).PID);
axMapControl.Map.AddLayer(templayer);
}
else if ((item as KOTilesLayer) != null)
{
KOTilesLayer ko = KOTilesLayer.CreateInstance((item as KOTilesLayer).DBPath);
ko.Name = item.Name;
ko.Visible = item.Visible == false ? false : GetParentIsChecked(nodes.Find(a => a.LayerName == item.Name).PID);
axMapControl.Map.AddLayer(ko);
}
}
foreach (ILayer item in layer)
{
if ((item as IFeatureLayer) != null)
{
string FcPath = ((item as IFeatureLayer).FeatureClass as FeatureClass).Workspace.PathName;
WorkspaceTypeEnum workspaceType = WorkspaceTypeEnum.GDBFile;
if (FcPath.ToLower().EndsWith(".mdb"))
workspaceType = WorkspaceTypeEnum.MDBFile;
else if (FcPath.ToLower().EndsWith(".gdb"))
workspaceType = WorkspaceTypeEnum.GDBFile;
else
workspaceType = WorkspaceTypeEnum.ShapeFile;
IWorkspaceAPI wsAPI = new WorkspaceAPI(FcPath, workspaceType);
IFeatureClass fc = (item as IFeatureLayer).FeatureClass;
IFeatureClassAPI hrFcAPI = wsAPI.OpenFeatureClass((fc as FeatureClass).Name);
//IFeatureClassAPI hrFcAPI = wsAPI.OpenFeatureClass(item.BrowseName);
//IFeatureClass fc = wsAPI.OpenFeatureClass(item.Name).FeatureClass;
//ILayer tempLayer = new FeatureLayer() { Name = item.Name, FeatureClass = fc };
ILayer tempLayer = new FeatureLayerClass() { FeatureClass = hrFcAPI.FeatureClass };
tempLayer.Visible = item.Visible == false ? false : GetParentIsChecked(nodes.Find(a => a.LayerName == fc.AliasName).PID);
#region 图层样式
Renderer randerer = SymbolConvert.Instance().GetRenderer((item as IGeoFeatureLayer).Renderer);
LabelingInfo labelingInfo = null;
LabelStyleConvert styleConvert = new LabelStyleConvert();
List<LabelingInfo> labelInfo = styleConvert.EsriLabelToCustomLabels((item as IGeoFeatureLayer).AnnotationProperties);
if (labelInfo != null && labelInfo.Count > 0)
labelingInfo = labelInfo[0];
string symbol = null;
if (labelingInfo != null)
{
AdvancedDrawingInfo adi = new AdvancedDrawingInfo();
adi.DrawingInfo.Renderer = randerer;
adi.DrawingInfo.LabelingInfo = labelInfo;
symbol = adi.ToJson();
}
IFeatureRenderer render = GetSymbol(symbol);
if (render != null)
(tempLayer as IGeoFeatureLayer).Renderer = render;
#endregion
axMapControl.Map.AddLayer(tempLayer);
}
}
//axMapControl.ActiveView.Extent = MapsManager.Instance.MapService.getAxMapControl().Extent;
axMapControl.Refresh();
}
private IFeatureRenderer GetSymbol(string pStrSymbol)
{
IFeatureRenderer result = null;
try
{
if (!string.IsNullOrWhiteSpace(pStrSymbol))
{
AdvancedDrawingInfo ad = AdvancedDrawingInfo.FromJson(pStrSymbol);
if (ad != null)
{
if (ad.DrawingInfo.Renderer is Framework.LayerStyleConvert.XSDClass.SimpleRenderer)
{
Symbol symbol1 = (ad.DrawingInfo.Renderer as Framework.LayerStyleConvert.XSDClass.SimpleRenderer).Symbol;
ISimpleRenderer simpleRander2 = SymbolConvert.Instance().GetSimpleRenderer(symbol1, SymbolTypeEnum.Fill);
result = simpleRander2 as IFeatureRenderer;
}
else if (ad.DrawingInfo.Renderer is Framework.LayerStyleConvert.XSDClass.UniqueValueRenderer)
{
Renderer rander = ad.DrawingInfo.Renderer;
IUniqueValueRenderer uniqueValueRander = SymbolConvert.Instance().GetUniqueValueRenderer(rander, SymbolTypeEnum.Fill);
result = uniqueValueRander as IFeatureRenderer;
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug("获取图层样式失败:" + ex.Message);
}
return result;
}
List<MapTreeViewModel> nodes = new List<MapTreeViewModel>();
bool isFirst = true;
MapTreeViewModel treeViewModel = new MapTreeViewModel();
private void InitLayerVisible()
{
isFirst = true;
LayerCfg layerInfo = null;
treeViewModel = new MapTreeViewModel();
ProjectInfo ProInfo = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo;
if (ProInfo != null)
{
ProInfo.MulitMapData = ProInfo.TempData;
byte[] contentArray = Convert.FromBase64String(ProInfo.MulitMapData);
string LayerCfg = System.Text.Encoding.Default.GetString(contentArray);
layerInfo = KGIS.Framework.Utils.SerializeAPI.DeserializeToObject<LayerCfg>(LayerCfg);
nodes.Clear();
AddNodeTree(treeViewModel, layerInfo);
}
}
private void AddNodeTree(MapTreeViewModel treeViewModel, LayerCfg layerInfo)
{
if (isFirst)
{
isFirst = false;
treeViewModel.PID = 0;
treeViewModel.ID = 1;
treeViewModel.IsChecked = layerInfo.Visible;
treeViewModel.LayerName = layerInfo.LayerName;
nodes.Add(treeViewModel);
}
for (int i = 0; i < layerInfo.Layers.Count; i++)
{
MapTreeViewModel childTreeViewModel = new MapTreeViewModel();
childTreeViewModel.PID = treeViewModel.ID;
childTreeViewModel.ID = treeViewModel.ID * 100 + i + 1;
childTreeViewModel.IsChecked = layerInfo.Layers[i].Visible;
childTreeViewModel.LayerName = layerInfo.Layers[i].LayerName;
treeViewModel.Children.Add(childTreeViewModel);
nodes.Add(childTreeViewModel);
AddNodeTree(childTreeViewModel, layerInfo.Layers[i]);
}
}
private bool GetParentIsChecked(int PID)
{
if (!treeViewModel.IsChecked) return false;
MapTreeViewModel parent = nodes.FirstOrDefault(a => a.ID == PID);
if (parent == null)
{
return true;
}
else if (!parent.IsChecked)
{
return false;
}
else
{
return GetParentIsChecked(parent.PID);
}
}
public void SetMask(IGeometry currentGeo)
{
ShowMaskHelper showMaskForBHTBHelper = new ShowMaskHelper();
showMaskForBHTBHelper.axMapControl = axMapControl;
showMaskForBHTBHelper.ShowMask(currentGeo);
}
public void InitMapTools(IEnumerable<MenuPageEntity> pageDatas)
{
try
{
if (barManager1 == null) return;
barManager1.BeginUpdate();
if (_CmdManager == null)
{
_CmdManager = BundleRuntime.Instance.GetFirstOrDefaultService<ICommandManager>();
}
//int num = 0;
foreach (var pageEntity in pageDatas)
{
var groupChilds = pageEntity.Childs;
if (groupChilds == null)
continue;
foreach (var groupChild in groupChilds)
{
if (groupChild.Id != "MapTools.Group.MapOperation")
continue;
Bar subItem = new Bar();
subItem.OptionsBar.AllowQuickCustomization = false;
subItem.BarName = groupChild.Name;
subItem.Visible = groupChild.Visible;
if (groupChild.Name == "地图操作")
{
subItem.DockStyle = BarDockStyle.Left;
}
else
{
subItem.DockStyle = BarDockStyle.Top;
}
barManager1.Bars.Add(subItem);
var itemChilds = groupChild.Childs;
if (itemChilds == null)
continue;
foreach (var itemChild in itemChilds)
{
//if (num == 0)
//{
// MenuItemEntity menuItemEntity = new MenuItemEntity()
// {
// Name = "目录",
// ItemType = "ToolItem",
// Id = "MapTools.Tool.Calagon",
// Visible = true,
// ToolTip = "点击可查看地图目录列表。",
// //SmallImage = @"\Resources\维护数据字典.png",
// //LargeImage = @"\Resources\维护数据字典.png",
// //CommandId = "Kingo.Plugin.BHTB_Extract.Commands.CmdShowMulitMapCatalog"
// };
// var item1 = CreateItem(menuItemEntity, axMapControl.Object);
// subItem.LinksPersistInfo.Add(new LinkPersistInfo(item1));
//}
//num++;
var item = CreateItem(itemChild, axMapControl.Object);
//item.PaintStyle = BarItemPaintStyle.Caption;
//subItem.LinksPersistInfo.Add(new LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, item, "", false, true, true, 0, null, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph));
subItem.LinksPersistInfo.Add(new LinkPersistInfo(item));
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug("加载主菜单异常,异常信息如下:");
LogAPI.Debug(ex);
LogAPI.Debug("异常信息结束");
}
finally
{
barManager1.EndUpdate();
}
}
private BarItem CreateItem(MenuItemEntity itemEntity, object pHook)
{
try
{
var itemType = itemEntity.ItemType;
var item = CreateItem(itemType);
item.Caption = itemEntity.Name;
item.Glyph = itemEntity.GetSmallImage();
item.LargeGlyph = itemEntity.GetLargeImage();
var type = item.GetType();
//设置文本信息
var propertyInfo = type.GetProperty("Text");
if (propertyInfo != null)
propertyInfo.SetValue(item, itemEntity.Name, null);
//注册快捷键
//propertyInfo = type.GetProperty("ShortcutKeys");
if (!string.IsNullOrWhiteSpace(itemEntity.ShortcutKeys))
{
if (itemEntity.ShortcutKeys.Contains("+"))
{
if (itemEntity.ShortcutKeys.StartsWith("Shift"))
{
Keys key = GetObj<Keys>(itemEntity.ShortcutKeys.Replace("Shift+", ""));
item.ItemShortcut = new BarShortcut(Keys.Shift, key);
}
else
{
Shortcut shortcut = GetObj<Shortcut>(itemEntity.ShortcutKeys.Replace("+", "").Trim());
BarShortcut ishortcut = new BarShortcut(shortcut);
item.ItemShortcut = ishortcut;
}
}
else
{
Keys key = GetObj<Keys>(itemEntity.ShortcutKeys);
item.ItemShortcut = new BarShortcut(key);
}
}
item.ItemClick += Item_ItemClick;
string commandId = itemEntity.CommandId;
if (!string.IsNullOrEmpty(commandId))
{
if (_CmdManager != null)
{
item.Tag = _CmdManager.AddCmd(itemEntity.CommandId, itemEntity.Bundle, pHook);
if (item.Tag is ICommand)
{
(item.Tag as ICommand).OnCreate(axMapControl.Object);
(item as BarItem).Enabled = (item.Tag as ESRI.ArcGIS.SystemUI.ICommand).Enabled;
}
else if (item.Tag is BaseMenuCommand)
{
(item.Tag as BaseMenuCommand).OnCreate(axMapControl.Object);
(item as BarItem).Enabled = (item.Tag as BaseMenuCommand).Enabled;
}
}
}
if (item is BarCheckItem && item.Tag is ESRI.ArcGIS.SystemUI.ICommand)
{
(item as BarCheckItem).Checked = (item.Tag as ESRI.ArcGIS.SystemUI.ICommand).Checked;
}
else if (item.Tag is ICombox)
{
ICombox combox = item.Tag as ICombox;
combox.SetBarEditItem(item);
}
//CreateChildItems(item, itemEntity);
return item;
}
catch (Exception ex)
{
LogAPI.Debug("创建菜单项 时异常,异常信息如下:");
LogAPI.Debug(ex);
LogAPI.Debug("创建菜单项 时异常信息结束");
throw ex;
}
}
private T GetObj<T>(string pStr)
{
T t = default(T);
try
{
t = (T)System.Enum.Parse(typeof(T), pStr);
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
return t;
}
private void Item_ItemClick(object sender, ItemClickEventArgs e)
{
BarItem item = e.Item as BarItem;
//if (item != null && item.Caption == "目录")
//{
// System.Drawing.Point p = this.axMapControl.Location;
// System.Drawing.Point p2 = this.axMapControl.PointToScreen(p);
// List<ILayer> templayers = new List<ILayer>();
// int layerCount = this.axMapControl.LayerCount;
// for (int i = 0; i < layerCount; i++)
// {
// ILayer templayer = this.axMapControl.get_Layer(i);
// templayers.Add(templayer);
// }
// MulitMapCatalog.Getlnstance(p2, templayers, axMapControl).ShowWin();
// return;
//}
if (item == null || item.Tag == null)
{
return;
}
try
{
if (item.Tag is ITool)
{
SetCurrentTool(item.Tag);
}
else
if (item.Tag is ICommand)
{
(item.Tag as ICommand).OnClick();
if (item is BarCheckItem)
{
(item as BarCheckItem).Checked = (item.Tag as ICommand).Checked;
}
}
else
if (item.Tag is IMenuCommand)
{
//if (item.Tag is IAppMenuCommand)
//{
// (item.Tag as IAppMenuCommand).CmdParameter = param;
//}
(item.Tag as IMenuCommand).OnClick();
}
else
{
//IMapService mapService = MapsManager.Instance.MapService;
//if (mapService != null)
//{
// mapService.SetCurrentTool(item.Tag);
// //if (mapService.Hook is IMapControlDefault)
// //{
// // (mapService.Hook as IMapControlDefault).CurrentTool = pCmd as ITool;
// //}
//}
}
}
catch (Exception ex)
{
LogAPI.Debug(string.Format("执行【{0}】命令异常,异常信息如下:", item.Caption));
LogAPI.Debug(ex);
LogAPI.Debug("异常信息结束");
}
}
/// <summary> 创建菜单项
/// </summary>
/// <param name="itemType">菜单项类型</param>
private BarItem CreateItem(string itemType)
{
if (string.IsNullOrWhiteSpace(itemType))
return new BarButtonItem();
BarItem item = null;
switch (itemType.ToLower())
{
case "cmditem":
item = new BarButtonItem();
break;
case "toolitem":
item = new BarCheckItem();
break;
case "combobox":
item = new BarEditItem();
break;
case "labitem":
item = new BarHeaderItem();
item.PaintStyle = BarItemPaintStyle.Caption;
break;
}
return item;
}
public void SetCurrentTool(object tool)
{
if (tool is ITool)
{
axMapControl.CurrentTool = tool as ITool;
RefreshToolState(tool);
}
}
public void RefreshToolState(object currentTool)
{
try
{
if (barManager1 == null) return;
foreach (Bar bar in barManager1.Bars)
{
foreach (LinkPersistInfo linkPersist in bar.LinksPersistInfo)
{
BarItem item = linkPersist.Item;
if (item.Tag is ICommand)
{
item.Enabled = (item.Tag as ICommand).Enabled;
if (item is BarCheckItem)
{
(item as BarCheckItem).Checked = (item.Tag as ICommand).Checked;
if (currentTool == item.Tag)
{
(item as BarCheckItem).Checked = true;
}
}
}
else if (item.Tag is BaseMenuCommand)
{
item.Enabled = (item.Tag as BaseMenuCommand).Enabled;
if (item is BarCheckItem)
{
(item as BarCheckItem).Checked = (item.Tag as BaseMenuCommand).Checked;
if (currentTool == item.Tag)
{
(item as BarCheckItem).Checked = true;
}
}
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug("刷新工具条状态时发生异常,异常信息如下:");
LogAPI.Debug(ex);
LogAPI.Debug("异常信息结束");
}
}
private IEnumerable<MenuPageEntity> GetMenuPageData()
{
try
{
var pages = new List<MenuPageEntity>() { new MenuPageEntity() {
Id="DefaultToolBar",
LocationUri="",
LocationPosition=""
} };
var groups = _mapToolsGroupEntityManager.GetAll().ToList();
var items = _mapToolsItemEntityManager.GetAll().ToList();
var menuPageData = MenuExtensionParser.ArrangeMainMenuData(pages, groups, items);
pages.Clear();
groups.Clear();
items.Clear();
return menuPageData;
}
catch (Exception ex)
{
throw ex;
}
}
public void InitData(string pExtensionPoint)
{
IBundle bundle = BundleRuntime.Instance.Framework.Bundles.Find(v => v.Context != null);
var menuExtensions = bundle.Context.GetExtensions(pExtensionPoint);
var GroupMenuEntities = MenuExtensionParser.GetMenuGroupEntities(menuExtensions);
var ItemMenuEntities = MenuExtensionParser.GetMenuItemEntities(menuExtensions);
if (_mapToolsGroupEntityManager == null)
_mapToolsGroupEntityManager = new MenuGroupEntityManager();
_mapToolsGroupEntityManager.Clear();
_mapToolsGroupEntityManager.AddRange(GroupMenuEntities);
if (_mapToolsItemEntityManager == null)
_mapToolsItemEntityManager = new MenuItemEntityManager();
_mapToolsItemEntityManager.Clear();
_mapToolsItemEntityManager.AddRange(ItemMenuEntities);
}
public void MarkLabelLayer()
{
try
{
IFeatureLayer pFeatureLayer = null;
int layerCount = axMapControl.LayerCount;
for (int i = 0; i < layerCount; i++)
{
ILayer templayer = axMapControl.get_Layer(i);
if ((templayer as RasterLayer) != null || (templayer as KOTilesLayer) != null) continue;
IFeatureLayer featureLayer = templayer as IFeatureLayer;
if (featureLayer == null) continue;
if (featureLayer.FeatureClass.AliasName == "ZYQ" || featureLayer.FeatureClass.AliasName == "作业区")
{
pFeatureLayer = templayer as IFeatureLayer;
break;
}
}
if (pFeatureLayer == null) return;
IGeoFeatureLayer pGeoLayer = pFeatureLayer as IGeoFeatureLayer;
IRgbColor pColor = new RgbColorClass() { Red = 85, Blue = 105, Green = 255 };
stdole.IFontDisp pFont = new stdole.StdFont()
{
Name = "宋体",
//Bold = true
} as stdole.IFontDisp;
ITextSymbol pTextSymbol = new TextSymbolClass()
{
Color = pColor,
Font = pFont,
Size = 8
};
IBasicOverposterLayerProperties pBasicOverLayerPro = new BasicOverposterLayerPropertiesClass();
pBasicOverLayerPro.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;
pBasicOverLayerPro.GenerateUnplacedLabels = true;
pBasicOverLayerPro.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape;
ILabelEngineLayerProperties pLableEngine = new LabelEngineLayerPropertiesClass()
{
Symbol = pTextSymbol,
IsExpressionSimple = true
};
IOverposterLayerProperties2 pOverLayerProper = pBasicOverLayerPro as IOverposterLayerProperties2;
pOverLayerProper.TagUnplaced = true;//设置该属性,目的是不被其他element遮挡
pLableEngine.BasicOverposterLayerProperties = pBasicOverLayerPro;
IAnnotateLayerProperties pAnnoPros = pLableEngine as IAnnotateLayerProperties;
pGeoLayer.AnnotationProperties.Add(pAnnoPros);
pGeoLayer.DisplayAnnotation = true;
axMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, axMapControl.Extent);
}
catch (Exception ex)
{
LogAPI.Debug("设置标注时发生异常,异常信息如下:" + ex);
return;
}
}
private void btMulitMapCatalog_Click(object sender, EventArgs e)
{
System.Drawing.Point p = this.axMapControl.Location;
System.Drawing.Point p2 = this.axMapControl.PointToScreen(p);
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProjectForNoEditor" });
//记录多个多窗口图层勾选情况
if (axMapControl.DocumentMap == null)
{
ProjectInfo ProInfo = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo;
if (ProInfo != null) axMapControl.DocumentMap = ProInfo.TempData;
}
List<ILayer> tempLayers = new List<ILayer>();
int layerCount = axMapControl.LayerCount;
for (int i = 0; i < layerCount; i++)
{
ILayer templayer = axMapControl.get_Layer(i);
tempLayers.Add(templayer);
}
MulitMapCatalog.Getlnstance(p2, axMapControl, tempLayers).ShowWin();
}
public void ClearPanelData()
{
try
{
ProjectInfo ProInfo = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo;
if (ProInfo != null)
ProInfo.MulitMapData = null;
if (axMapControl != null)
{
axMapControl.Map.ClearLayers();
axMapControl.ClearLayers();
axMapControl.CurrentTool = null;
axMapControl.ActiveView.GraphicsContainer.DeleteAllElements();
axMapControl.Refresh();
}
}
catch (Exception ex)
{
LogAPI.Debug("清除多窗口图层数据时发生异常,异常信息如下:" + ex);
return;
}
}
}
}