众所周知,数据处理是GIS中一项重要且繁琐的工作,处理数据的工具和方法也太多了,在做数据处理的时候,经常会遇到这样的问题:对存储在不同gdb中、并且数据集名称相同的数据进行合并处理:
如图:数据组织如下,每个gdb中都存储了一些列FeatureClass,(但gdb中的FeatureClass数量并不相同)
思路是:
1.先对每个gdb中的数据进行处理,使得每个gdb中的featureclass数量和名称相同。由于对Engine比较熟悉,这里我是用Engine进行处理的,具体代码如下:
private function Execute(){ //初始执行函数:
string templatePath = @"F:\testout";
DirectoryInfo directoryInfo = newDirectoryInfo(templatePath);
DirectoryInfo[] dirInfo =directoryInfo.GetDirectories();
string yy = dirInfo[0].Name;
string FeatureClassName = "ROALK_arc"; //FeatureClass名称,这里可以设置一个数组,存储所有的FeatureClass
for (int i = 0; i < dirInfo.Length; i++)
{
string gdbName =dirInfo[i].Name;
//打开filegdb
bool value = oper(@"F:\testout\" + gdbName, FeatureClassName);//判断FeatureClass是否存在
string path = @"F:\testout\" +gdbName;
if (value == false)
{
copyFeatureClass(path, FeatureClassName);
}
}
}