|
|
|
|
using ESRI.ArcGIS.Carto;
|
|
|
|
|
using KGIS.Framework.AE;
|
|
|
|
|
using KGIS.Framework.AE.Enum;
|
|
|
|
|
using Kingo.PluginServiceInterface;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace KDataCheck
|
|
|
|
|
{
|
|
|
|
|
public class DBLayerSourceHelper
|
|
|
|
|
{
|
|
|
|
|
public Dictionary<string, IWorkspaceAPI> DicWsAPI { get; set; }
|
|
|
|
|
public IWorkspaceAPI BgWsAPI { get; set; }
|
|
|
|
|
public IWorkspaceAPI ZlWsAPI { get; set; }
|
|
|
|
|
public IWorkspaceAPI NmWsAPI { get; set; }
|
|
|
|
|
//public IFeatureLayer JCLayer { get => jCLayer; set => jCLayer = value; }
|
|
|
|
|
//public IFeatureLayer GXLayer { get => gXLayer; set => gXLayer = value; }
|
|
|
|
|
public IFeatureLayer NmTbLayer { get; set; }
|
|
|
|
|
#region 地类图斑
|
|
|
|
|
public IFeatureLayer JcTbLayer { get; set; }
|
|
|
|
|
public IFeatureLayer JcPdtLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxgcTBLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxTbLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxPdtLayer { get; set; }
|
|
|
|
|
public IFeatureLayer BgTbLayer { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 村级调查区
|
|
|
|
|
public IFeatureLayer JcCjdcqLayer { get; set; }
|
|
|
|
|
public IFeatureLayer JcCjdcqJxLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxCjdcqLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxgcCjdcqLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxCjdcqJxLayer { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 行政区
|
|
|
|
|
public IFeatureLayer JcXzqLayer { get; set; }
|
|
|
|
|
public IFeatureLayer JcXzqJxLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxXzqLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxgcXzqLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxXzqJxLayer { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 城镇村
|
|
|
|
|
public IFeatureLayer JcCzcLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxCzcLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxgcCzcLayer { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 耕地等别
|
|
|
|
|
public IFeatureLayer JcGddbLayer { get; set; }
|
|
|
|
|
public IFeatureLayer GxGddbLayer { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public IFeatureLayer OpenLayer(LayerCfg pLayerInfo)
|
|
|
|
|
{
|
|
|
|
|
if (pLayerInfo == null)
|
|
|
|
|
return null;
|
|
|
|
|
if (string.IsNullOrWhiteSpace(pLayerInfo.FcPath) || string.IsNullOrWhiteSpace(pLayerInfo.FcName))
|
|
|
|
|
return null;
|
|
|
|
|
if (!File.Exists(pLayerInfo.FcPath) && !Directory.Exists(pLayerInfo.FcPath))
|
|
|
|
|
return null;
|
|
|
|
|
FileInfo fInfo = new FileInfo(pLayerInfo.FcPath);
|
|
|
|
|
WorkspaceTypeEnum wsType = WorkspaceTypeEnum.GDBFile;
|
|
|
|
|
if (fInfo.FullName.EndsWith(".gdb"))
|
|
|
|
|
wsType = WorkspaceTypeEnum.GDBFile;
|
|
|
|
|
else if (fInfo.FullName.EndsWith(".mdb"))
|
|
|
|
|
wsType = WorkspaceTypeEnum.MDBFile;
|
|
|
|
|
else
|
|
|
|
|
wsType = WorkspaceTypeEnum.ShapeFile;
|
|
|
|
|
if (DicWsAPI == null)
|
|
|
|
|
DicWsAPI = new Dictionary<string, IWorkspaceAPI>();
|
|
|
|
|
if (!DicWsAPI.ContainsKey(fInfo.FullName))
|
|
|
|
|
{
|
|
|
|
|
IWorkspaceAPI wsAPI = new WorkspaceAPI(fInfo.FullName, wsType);
|
|
|
|
|
DicWsAPI.Add(fInfo.FullName, wsAPI);
|
|
|
|
|
}
|
|
|
|
|
IFeatureClassAPI fcAPI = DicWsAPI[fInfo.FullName].OpenFeatureClass(pLayerInfo.FcName);
|
|
|
|
|
return new FeatureLayerClass() { FeatureClass = fcAPI.FeatureClass, Name = fcAPI.FeatureClass.AliasName };
|
|
|
|
|
}
|
|
|
|
|
public IFeatureLayer OpenLayer(IWorkspaceAPI pWsAPI, string pLayerName)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(pLayerName))
|
|
|
|
|
return null;
|
|
|
|
|
if (pWsAPI != null && pWsAPI.CurrentWorkspace != null)
|
|
|
|
|
{
|
|
|
|
|
IFeatureClassAPI fcAPI = pWsAPI.OpenFeatureClass(pLayerName);
|
|
|
|
|
return new FeatureLayerClass() { FeatureClass = fcAPI.FeatureClass, Name = fcAPI.FeatureClass.AliasName };
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(string.Format("Err:{0}图层获取失败", pLayerName));
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|