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.
110 lines
4.5 KiB
110 lines
4.5 KiB
using ESRI.ArcGIS.Carto; |
|
using ESRI.ArcGIS.Controls; |
|
using KGIS.Framework.AE.ExtensionMethod; |
|
using KGIS.Framework.Maps; |
|
using KGIS.Framework.Platform; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using KGIS.Framework.Views; |
|
using Kingo.PluginServiceInterface; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Drawing; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Windows; |
|
using System.Windows.Controls; |
|
using System.Windows.Data; |
|
using System.Windows.Documents; |
|
using System.Windows.Input; |
|
using System.Windows.Media; |
|
using System.Windows.Media.Imaging; |
|
using System.Windows.Navigation; |
|
using System.Windows.Shapes; |
|
using UIShell.OSGi; |
|
|
|
namespace Kingo.Plugin.MapView.Views |
|
{ |
|
/// <summary> |
|
/// V_AddLayerGroup.xaml 的交互逻辑 |
|
/// </summary> |
|
public partial class V_AddLayerGroup : BaseWindow |
|
{ |
|
private IHookHelper _Hook { get; set; } |
|
|
|
private IDataCatalogService _DataCatalog = null; |
|
public V_AddLayerGroup(IHookHelper hook) |
|
{ |
|
InitializeComponent(); |
|
this.WindowStartupLocation = WindowStartupLocation.CenterOwner; |
|
this.ShowInTaskbar = false; |
|
this._Hook = hook; |
|
} |
|
|
|
private void BtnSave_Click(object sender, RoutedEventArgs e) |
|
{ |
|
try |
|
{ |
|
if (_DataCatalog == null) |
|
_DataCatalog = BundleRuntime.Instance.GetFirstOrDefaultService<IDataCatalogService>(); |
|
if (_DataCatalog == null) |
|
return; |
|
if (_Hook == null) |
|
{ |
|
return; |
|
} |
|
if (string.IsNullOrWhiteSpace(txtGroupName.Text)) |
|
{ |
|
MessageHelper.Show("请输入分组名称!"); |
|
return; |
|
} |
|
object pTargetObj = _Hook.GetCustomProperty(); |
|
if (pTargetObj is IBasicMap) |
|
{ |
|
ILayer groupLayer = new GroupLayer() { Name = txtGroupName.Text }; |
|
ILayerGeneralProperties layerGeneralProperties = groupLayer as ILayerGeneralProperties; |
|
layerGeneralProperties.LayerDescription = txtGroupName.Text; |
|
LayerCfg GroupLayerInfo = _DataCatalog.AddLayer(groupLayer) as LayerCfg; |
|
//IGroupLayer group = new GroupLayerClass(); |
|
//group.Name = txtGroupName.Text; |
|
//_Hook.FocusMap.AddLayer(group); |
|
} |
|
else if (pTargetObj is IGroupLayer)//暂时没有分组下添加分组 |
|
{ |
|
ILayer layerQS = MapsManager.Instance.MapService.GetGroupLayer((pTargetObj as ILayerGeneralProperties).LayerDescription);//获取参考数据图层组 |
|
LayerCfg GroupLayerInfo = null; |
|
if (_DataCatalog != null) |
|
{ |
|
_DataCatalog.GetNodeByLayer(layerQS); |
|
LayerCfg rootLayer = _DataCatalog.CurrentLayers as LayerCfg; |
|
List<LayerCfg> AllLayers = rootLayer.GetAllItem(); |
|
GroupLayerInfo = AllLayers.FirstOrDefault(f => f.LayerName == layerQS.Name); |
|
} |
|
ILayer groupLayer = new GroupLayer() { Name = txtGroupName.Text }; |
|
ILayerGeneralProperties layerGeneralProperties = groupLayer as ILayerGeneralProperties; |
|
layerGeneralProperties.LayerDescription = txtGroupName.Text; |
|
_DataCatalog.AddLayer(groupLayer, GroupLayerInfo); |
|
//IGroupLayer group = new GroupLayerClass(); |
|
//group.Name = txtGroupName.Text; |
|
//(pTargetObj as IGroupLayer).Add(group); |
|
} |
|
_DataCatalog.UpdateTree(); |
|
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProject" }); |
|
this.Close(); |
|
//MapsManager.Instance.MapService.CtlsSynchronizer.ActivateMap(); |
|
//_Hook.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); |
|
} |
|
catch (Exception ex) |
|
{ |
|
MessageHelper.ShowError("添加图层组失败!"); |
|
LogAPI.Debug("添加图层组异常:" + ex); |
|
} |
|
} |
|
|
|
private void BtnCancel_Click(object sender, RoutedEventArgs e) |
|
{ |
|
this.Close(); |
|
} |
|
} |
|
}
|
|
|