1、加载shp文件数据
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();//创建工作空间工厂
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(@"D:\...\workspace", 0);//打开工作空间
IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass("test.shp");//打开shp数据
2、从GDB加载shp数据
(1)创建或者打开GDB
IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactory();
IWorkspace workspace = null;
string path = @"D:\DIST\geoData\shpFile";
string name = "creatGDBtest.gdb";
string fullPath = Path.Combine(path, name);
if (Directory.Exists(fullPath))//存在直接打开
workspace = workspaceFactory.OpenFromFile(fullPath, 0);
else//否则创建
{
IWorkspaceName workspaceName = workspaceFactory.Create(path, name, null, 0);
IName pName = (IName)workspaceName;
workspace = (IWorkspace)pName.Open();
}
(2)获取要素类
public static IFeatureClass GetFeatureClass(IWorkspace workspace, string fcName)
{
if (workspace == null || string.IsNullOrEmpty(fcName)) return null;
IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace;
if (featureWorkspace == null) return null;
try
{
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(fcName);
return featureClass;
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
}
return null;
}
SDE库同理,先连接SDE库获取工作空间,然后根据要素名称获取要素