|
|
|
|
using ESRI.ArcGIS.Carto;
|
|
|
|
|
using ESRI.ArcGIS.Controls;
|
|
|
|
|
using ESRI.ArcGIS.esriSystem;
|
|
|
|
|
using ESRI.ArcGIS.Geodatabase;
|
|
|
|
|
using ESRI.ArcGIS.ADF;
|
|
|
|
|
using ESRI.ArcGIS.Geometry;
|
|
|
|
|
using ESRI.ArcGIS.Display;
|
|
|
|
|
using KGIS.Framework.AE;
|
|
|
|
|
using KGIS.Framework.AE.ExtensionMethod;
|
|
|
|
|
using KGIS.Framework.Maps;
|
|
|
|
|
using KGIS.Framework.OpenData.Control;
|
|
|
|
|
using KGIS.Framework.OpenData.Filter;
|
|
|
|
|
using KGIS.Framework.OpenData.InterFace;
|
|
|
|
|
using KGIS.Framework.Platform;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using KGIS.Framework.Utils.Helper;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Xml.Linq;
|
|
|
|
|
using System.Xml;
|
|
|
|
|
using Kingo.PluginServiceInterface;
|
|
|
|
|
using UIShell.OSGi;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.Plugin.MapView.Commands
|
|
|
|
|
{
|
|
|
|
|
//[PathAttribute("Kingo.Plugin.MapView.Commands.CmdAddLayer")]
|
|
|
|
|
public class CmdAddLayer : BaseMapMenuCommand
|
|
|
|
|
{
|
|
|
|
|
private ILayerFactoryHelper m_LayerFactoryHelper;
|
|
|
|
|
private List<ILayer> m_Layers;
|
|
|
|
|
public override void OnClick()
|
|
|
|
|
{
|
|
|
|
|
if (m_hookHelper == null)
|
|
|
|
|
return;
|
|
|
|
|
IDataCatalogService _DataCatalog = BundleRuntime.Instance.GetFirstOrDefaultService<IDataCatalogService>();
|
|
|
|
|
if (_DataCatalog == null) return;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
object layer = m_hookHelper.GetCustomProperty();
|
|
|
|
|
if ((!(layer is IGroupLayer) && !(layer is IMap)) || layer == null)
|
|
|
|
|
{
|
|
|
|
|
layer = m_hookHelper.FocusMap;
|
|
|
|
|
}
|
|
|
|
|
OpenDataDialog pDialog = new OpenDataDialog();
|
|
|
|
|
ISpatialDataObjectFilter pOFilter;
|
|
|
|
|
pOFilter = new FilterDatasetsAndLayers();
|
|
|
|
|
pDialog.AddFilter(pOFilter, true);
|
|
|
|
|
pDialog.Title = "选择添加的数据";
|
|
|
|
|
pDialog.AllowMultiSelect = true;
|
|
|
|
|
pDialog.RestoreLocation = true;
|
|
|
|
|
pDialog.StartLocation = pDialog.FinalLocation;
|
|
|
|
|
DialogResult dialogResult = pDialog.ShowDialog();
|
|
|
|
|
if (dialogResult == DialogResult.OK && pDialog.Selection.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
if (m_Layers == null)
|
|
|
|
|
{
|
|
|
|
|
m_Layers = new List<ILayer>();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_Layers.Clear();
|
|
|
|
|
}
|
|
|
|
|
ILayer layerQS = MapsManager.Instance.MapService.GetGroupLayer((layer as ILayerGeneralProperties).LayerDescription);//获取参考数据图层组
|
|
|
|
|
LayerCfg GroupLayerInfo = null;
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
_DataCatalog.GetNodeByLayer(layerQS);
|
|
|
|
|
LayerCfg rootLayer = _DataCatalog.CurrentLayers as LayerCfg;
|
|
|
|
|
List<LayerCfg> AllLayers = rootLayer.GetAllItem();
|
|
|
|
|
if (layerQS != null)
|
|
|
|
|
GroupLayerInfo = AllLayers.FirstOrDefault(f => f.LayerName == layerQS.Name);
|
|
|
|
|
}
|
|
|
|
|
List<ILayer> ListLayers = new List<ILayer>();
|
|
|
|
|
foreach (ISpatialDataObject distObj in pDialog.Selection)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(distObj.Name) && distObj.Name.ToLower().EndsWith(".kotiles"))
|
|
|
|
|
{
|
|
|
|
|
KOTilesLayer ko = KOTilesLayer.CreateInstance(distObj.FullName);
|
|
|
|
|
ko.Name = distObj.Name.ToLower().Replace(".kotiles", "");
|
|
|
|
|
if (layer is IGroupLayer)
|
|
|
|
|
{
|
|
|
|
|
//(layer as IGroupLayer).Add(ko);
|
|
|
|
|
_DataCatalog.AddLayer(ko, GroupLayerInfo);
|
|
|
|
|
}
|
|
|
|
|
else if (layer is IMap)
|
|
|
|
|
{
|
|
|
|
|
_DataCatalog.AddLayer(ko, null);
|
|
|
|
|
//(layer as IMap).AddLayer(ko);
|
|
|
|
|
}
|
|
|
|
|
ListLayers.Add(ko);
|
|
|
|
|
}
|
|
|
|
|
else if (distObj.DatasetType == esriDatasetType.esriDTTable)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if (distObj.DatasetName == null && distObj.FullName.ToLower().EndsWith(".lyr"))
|
|
|
|
|
{
|
|
|
|
|
IMapControl2 myAddLayerMap = new MapControlClass();
|
|
|
|
|
myAddLayerMap.AddLayerFromFile(distObj.FullName, 0);
|
|
|
|
|
ILayer pLayer = myAddLayerMap.get_Layer(0);
|
|
|
|
|
if (layer is IGroupLayer)
|
|
|
|
|
{
|
|
|
|
|
(layer as IGroupLayer).Add(pLayer);
|
|
|
|
|
}
|
|
|
|
|
else if (layer is IMap)
|
|
|
|
|
{
|
|
|
|
|
(layer as IMap).AddLayer(pLayer);
|
|
|
|
|
}
|
|
|
|
|
SaveLayerStyleToConfig(pLayer);
|
|
|
|
|
ListLayers.Add(pLayer);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (m_LayerFactoryHelper == null)
|
|
|
|
|
m_LayerFactoryHelper = new LayerFactoryHelperClass();
|
|
|
|
|
//层厂帮手创建从名字对象层的正确类型返回枚举的层
|
|
|
|
|
IEnumLayer pEnumLayer = m_LayerFactoryHelper.CreateLayersFromName((distObj.DatasetName as IName));
|
|
|
|
|
ILayer pLayer;
|
|
|
|
|
pEnumLayer.Reset();
|
|
|
|
|
//通过循环的枚举和添加的每个层
|
|
|
|
|
while ((pLayer = pEnumLayer.Next()) != null)
|
|
|
|
|
{
|
|
|
|
|
//判断坐标参考是否与当前工程坐标参考一致
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
IGeoDataset geoDataset = null;
|
|
|
|
|
if ((pLayer as IFeatureLayer) != null && (pLayer as IFeatureLayer).FeatureClass != null)
|
|
|
|
|
{
|
|
|
|
|
geoDataset = (pLayer as IFeatureLayer).FeatureClass as IGeoDataset;
|
|
|
|
|
}
|
|
|
|
|
else if ((pLayer as IRasterLayer) != null && (pLayer as IRasterLayer).Raster != null)
|
|
|
|
|
{
|
|
|
|
|
geoDataset = (pLayer as IRasterLayer).Raster as IGeoDataset;
|
|
|
|
|
}
|
|
|
|
|
if (geoDataset != null && geoDataset.SpatialReference != null && m_hookHelper.FocusMap.SpatialReference != null)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(m_hookHelper.FocusMap.SpatialReference.Name) || m_hookHelper.FocusMap.SpatialReference.Name.ToUpper().Equals("UNKNOWN") || m_hookHelper.FocusMap.SpatialReference.FactoryCode == 0)
|
|
|
|
|
{
|
|
|
|
|
m_hookHelper.FocusMap.SpatialReference = geoDataset.SpatialReference;
|
|
|
|
|
}
|
|
|
|
|
if (geoDataset != null && !GeoDBAPI.SpatialReferenceCompare(geoDataset.SpatialReference, m_hookHelper.FocusMap.SpatialReference))
|
|
|
|
|
{
|
|
|
|
|
m_Layers.Add(pLayer);
|
|
|
|
|
ListLayers.Add(pLayer);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex1)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("在添加图层期间 通过循环的枚举和添加的每个层 时发生异常,异常信息如下:");
|
|
|
|
|
LogAPI.Debug(ex1);
|
|
|
|
|
LogAPI.Debug("异常信息结束。");
|
|
|
|
|
}
|
|
|
|
|
if (layer is IGroupLayer)
|
|
|
|
|
{
|
|
|
|
|
//IGroupLayer groupLayer = (layer as IGroupLayer);
|
|
|
|
|
LayerCfg layerInfo3 = new LayerCfg();
|
|
|
|
|
if (GroupLayerInfo != null)
|
|
|
|
|
{
|
|
|
|
|
if (distObj.FullName.ToLower().EndsWith(".img") && pLayer is IRasterLayer)
|
|
|
|
|
{
|
|
|
|
|
IRasterLayer rasterlayer = pLayer as IRasterLayer;
|
|
|
|
|
IRasterStretch rst = rasterlayer.Renderer as IRasterStretch;
|
|
|
|
|
if (rst != null)
|
|
|
|
|
{
|
|
|
|
|
RgbColorClass rgb = new RgbColorClass();
|
|
|
|
|
rgb.NullColor = true;
|
|
|
|
|
rst.Background = true;
|
|
|
|
|
rst.BackgroundColor = rgb;
|
|
|
|
|
rst.StretchType = esriRasterStretchTypesEnum.esriRasterStretch_NONE;
|
|
|
|
|
}
|
|
|
|
|
//(layer as IGroupLayer).Add(rasterlayer);
|
|
|
|
|
_DataCatalog.AddLayer(rasterlayer, GroupLayerInfo);
|
|
|
|
|
layerInfo3 = GroupLayerInfo.Layers.FirstOrDefault(x => x.FcName == rasterlayer.Name);
|
|
|
|
|
ListLayers.Add(rasterlayer);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_DataCatalog.AddLayer(pLayer, GroupLayerInfo);
|
|
|
|
|
layerInfo3 = GroupLayerInfo.Layers.FirstOrDefault(x => x.FcName == pLayer.Name);
|
|
|
|
|
ListLayers.Add(pLayer);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (layerInfo3 != null)
|
|
|
|
|
{
|
|
|
|
|
layerInfo3.AbsolutePathType = "AddLayerWay";//标记为外部路径数据
|
|
|
|
|
layerInfo3.AbsolutePath = layerInfo3.FcPath;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (layer is IMap)
|
|
|
|
|
{
|
|
|
|
|
//(layer as IMap).AddLayer(pLayer);
|
|
|
|
|
_DataCatalog.AddLayer(pLayer, null);
|
|
|
|
|
ListLayers.Add(pLayer);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (m_Layers != null && m_Layers.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
DialogResult dialogResult2 = MessageHelper.ShowYesNoAndTips("图层坐标系与工程坐标系不一致,是否继续添加?");
|
|
|
|
|
if (dialogResult2 == DialogResult.Yes)
|
|
|
|
|
{
|
|
|
|
|
foreach (ILayer item in m_Layers)
|
|
|
|
|
{
|
|
|
|
|
if (layer is IGroupLayer)
|
|
|
|
|
{
|
|
|
|
|
if (distObj.FullName.ToLower().EndsWith(".img") && pLayer is IRasterLayer)
|
|
|
|
|
{
|
|
|
|
|
IRasterLayer rasterlayer = pLayer as IRasterLayer;
|
|
|
|
|
IRasterStretch rst = rasterlayer.Renderer as IRasterStretch;
|
|
|
|
|
if (rst != null)
|
|
|
|
|
{
|
|
|
|
|
RgbColorClass rgb = new RgbColorClass();
|
|
|
|
|
rgb.NullColor = true;
|
|
|
|
|
rst.Background = true;
|
|
|
|
|
rst.BackgroundColor = rgb;
|
|
|
|
|
rst.StretchType = esriRasterStretchTypesEnum.esriRasterStretch_NONE;
|
|
|
|
|
}
|
|
|
|
|
(layer as IGroupLayer).Add(rasterlayer);
|
|
|
|
|
|
|
|
|
|
ListLayers.Add(rasterlayer);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//(layer as IGroupLayer).Add(item);
|
|
|
|
|
_DataCatalog.AddLayer(item, GroupLayerInfo);
|
|
|
|
|
ListLayers.Add(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (layer is IMap)
|
|
|
|
|
{
|
|
|
|
|
//(layer as IMap).AddLayer(item);
|
|
|
|
|
_DataCatalog.AddLayer(item, null);
|
|
|
|
|
ListLayers.Add(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
if (GroupLayerInfo != null && GroupLayerInfo.Layers.Count > 0)
|
|
|
|
|
GroupLayerInfo.Expanded = true;
|
|
|
|
|
_DataCatalog.UpdateTree();
|
|
|
|
|
}
|
|
|
|
|
//Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "RefreshLayer" });
|
|
|
|
|
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProjectForNoEditor" });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowError(string.Format("添加图层失败!{0}", ex.Message));
|
|
|
|
|
LogAPI.Debug("添加图层时发生异常,异常信息如下:");
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
LogAPI.Debug("异常信息结束。");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存图层样式至配置文件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="pLayer"></param>
|
|
|
|
|
private void SaveLayerStyleToConfig(ILayer pLayer)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
IStyleGalleryClass symbologyStyleClass = null;
|
|
|
|
|
ISymbol symbol = null;
|
|
|
|
|
IFillSymbol fillSymbol = null;
|
|
|
|
|
IFeatureLayer2 featureLayer = pLayer as IFeatureLayer2;
|
|
|
|
|
if (featureLayer != null)
|
|
|
|
|
{
|
|
|
|
|
esriGeometryType geometryType = featureLayer.ShapeType;
|
|
|
|
|
|
|
|
|
|
switch (geometryType)
|
|
|
|
|
{
|
|
|
|
|
case esriGeometryType.esriGeometryPoint:
|
|
|
|
|
symbologyStyleClass = new MarkerSymbolStyleGalleryClassClass();
|
|
|
|
|
break;
|
|
|
|
|
case esriGeometryType.esriGeometryPolyline:
|
|
|
|
|
symbologyStyleClass = new LineSymbolStyleGalleryClassClass();
|
|
|
|
|
break;
|
|
|
|
|
case esriGeometryType.esriGeometryPolygon:
|
|
|
|
|
symbologyStyleClass = new FillSymbolStyleGalleryClassClass();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
ISimpleRenderer simpleRenderer = (featureLayer as IGeoFeatureLayer).Renderer as ISimpleRenderer;
|
|
|
|
|
if (simpleRenderer != null)
|
|
|
|
|
{
|
|
|
|
|
symbol = simpleRenderer.Symbol;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
symbol = GetDefaultSymbol(geometryType);
|
|
|
|
|
}
|
|
|
|
|
fillSymbol = (symbol as IFillSymbol);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string appLayerConfigspath = System.IO.Path.Combine((MapsManager.Instance.CurrProjectInfo as ProjectInfo).ProjDir, "AppLayerConfigs.xml");
|
|
|
|
|
|
|
|
|
|
if (!System.IO.File.Exists(appLayerConfigspath))
|
|
|
|
|
{
|
|
|
|
|
XmlDataDocument xml = new XmlDataDocument();
|
|
|
|
|
XmlElement layersElement = xml.CreateElement("Layers");
|
|
|
|
|
xml.AppendChild(layersElement);
|
|
|
|
|
xml.Save(appLayerConfigspath);
|
|
|
|
|
}
|
|
|
|
|
XDocument xDoc = XDocument.Load(appLayerConfigspath);
|
|
|
|
|
XElement element = xDoc.Element("Layers");
|
|
|
|
|
bool isHave = false;
|
|
|
|
|
|
|
|
|
|
IFeatureLayer feature = pLayer as IFeatureLayer;
|
|
|
|
|
string layerNameStr = (feature as IDataset).BrowseName;
|
|
|
|
|
string layerCaptionStr = feature.Name;
|
|
|
|
|
System.Drawing.Color fillColor = Converter.FromRGBColor(fillSymbol.Color as IRgbColor);
|
|
|
|
|
System.Drawing.Color borderColor = Converter.FromRGBColor(fillSymbol.Outline.Color as IRgbColor);
|
|
|
|
|
System.Drawing.Color lableColor = ColorTranslator.FromHtml("#FF000000");
|
|
|
|
|
if (element != null)
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in element.Elements("Layer"))
|
|
|
|
|
{
|
|
|
|
|
if (item.Attribute("LayerName").Value == layerNameStr)
|
|
|
|
|
{
|
|
|
|
|
isHave = true;
|
|
|
|
|
item.SetAttributeValue("LayerName", layerNameStr);
|
|
|
|
|
item.SetAttributeValue("LayerCaption", layerCaptionStr);
|
|
|
|
|
item.SetAttributeValue("LayerBorderStyle", "0");
|
|
|
|
|
item.SetAttributeValue("LayerBorderWidth", "1");
|
|
|
|
|
item.SetAttributeValue("LayerFillColor", System.Windows.Media.Color.FromArgb(fillColor.A, fillColor.R, fillColor.G, fillColor.B));
|
|
|
|
|
item.SetAttributeValue("LayerBorderColor", System.Windows.Media.Color.FromArgb(borderColor.A, borderColor.R, borderColor.G, borderColor.B));
|
|
|
|
|
item.SetAttributeValue("LayerLableColor", System.Windows.Media.Color.FromArgb(lableColor.A, lableColor.R, lableColor.G, lableColor.B));
|
|
|
|
|
item.SetAttributeValue("LayerLableName", "");
|
|
|
|
|
item.SetAttributeValue("LayyerGroup", "");
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isHave == false)
|
|
|
|
|
{
|
|
|
|
|
XElement xLayer = new XElement("Layer");
|
|
|
|
|
|
|
|
|
|
//图层名
|
|
|
|
|
XAttribute layerName = new XAttribute("LayerName", layerNameStr);
|
|
|
|
|
//图层别名
|
|
|
|
|
XAttribute layerCaption = new XAttribute("LayerCaption", layerCaptionStr);
|
|
|
|
|
//边框样式
|
|
|
|
|
XAttribute layerBorderStyle = new XAttribute("LayerBorderStyle", "0");
|
|
|
|
|
//边框宽度
|
|
|
|
|
XAttribute layerBorderWidth = new XAttribute("LayerBorderWidth", "1");
|
|
|
|
|
|
|
|
|
|
//填充颜色
|
|
|
|
|
XAttribute layerFillColor = new XAttribute("LayerFillColor", System.Windows.Media.Color.FromArgb(fillColor.A, fillColor.R, fillColor.G, fillColor.B));
|
|
|
|
|
//边框颜色
|
|
|
|
|
XAttribute layerBorderColor = new XAttribute("LayerBorderColor", System.Windows.Media.Color.FromArgb(borderColor.A, borderColor.R, borderColor.G, borderColor.B));
|
|
|
|
|
//标签颜色
|
|
|
|
|
XAttribute layerLableColor = new XAttribute("LayerLableColor", System.Windows.Media.Color.FromArgb(lableColor.A, lableColor.R, lableColor.G, lableColor.B));
|
|
|
|
|
|
|
|
|
|
XAttribute layerLableName = new XAttribute("LayerLableName", "");
|
|
|
|
|
xLayer.Add(layerName, layerCaption, layerBorderStyle, layerBorderWidth, layerFillColor, layerBorderColor, layerLableColor, layerLableName);
|
|
|
|
|
|
|
|
|
|
element.Add(xLayer);
|
|
|
|
|
}
|
|
|
|
|
xDoc.Save(appLayerConfigspath);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("保存图层样式配置失败:" + ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ISymbol GetDefaultSymbol(esriGeometryType geometryType)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
ISymbol result = null;
|
|
|
|
|
IRgbColor rgbColor = new RgbColorClass();
|
|
|
|
|
rgbColor.Red = 184;
|
|
|
|
|
rgbColor.Green = 242;
|
|
|
|
|
rgbColor.Blue = 200;
|
|
|
|
|
switch (geometryType)
|
|
|
|
|
{
|
|
|
|
|
case esriGeometryType.esriGeometryPoint:
|
|
|
|
|
result = (new SimpleMarkerSymbolClass
|
|
|
|
|
{
|
|
|
|
|
Color = rgbColor,
|
|
|
|
|
Style = esriSimpleMarkerStyle.esriSMSCircle
|
|
|
|
|
} as ISymbol);
|
|
|
|
|
goto IL_B3;
|
|
|
|
|
case esriGeometryType.esriGeometryMultipoint:
|
|
|
|
|
goto IL_B3;
|
|
|
|
|
case esriGeometryType.esriGeometryPolyline:
|
|
|
|
|
break;
|
|
|
|
|
case esriGeometryType.esriGeometryPolygon:
|
|
|
|
|
result = (new SimpleFillSymbolClass
|
|
|
|
|
{
|
|
|
|
|
Color = rgbColor,
|
|
|
|
|
Style = esriSimpleFillStyle.esriSFSSolid
|
|
|
|
|
} as ISymbol);
|
|
|
|
|
goto IL_B3;
|
|
|
|
|
default:
|
|
|
|
|
if (geometryType != esriGeometryType.esriGeometryLine)
|
|
|
|
|
{
|
|
|
|
|
goto IL_B3;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
result = (new SimpleLineSymbolClass
|
|
|
|
|
{
|
|
|
|
|
Color = rgbColor,
|
|
|
|
|
Width = 1.0,
|
|
|
|
|
Style = esriSimpleLineStyle.esriSLSSolid
|
|
|
|
|
} as ISymbol);
|
|
|
|
|
IL_B3:
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex.Message);
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void OnCreate(object Hook)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (m_hookHelper == null)
|
|
|
|
|
{
|
|
|
|
|
m_hookHelper = new HookHelper();
|
|
|
|
|
m_hookHelper.Hook = Hook;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("加载 添加图层 命令时发生异常,异常信息如下:");
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
LogAPI.Debug("异常信息结束");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|