1. ArcCatalog创建GDB、MDB、SHP
- 打开arccatalog
- 选择要建库的位置——右键——新建
文件地理数据库就是格式为gdb的数据
个人地理数据库就是格式为mdb的数据
shapefile就是格式为shp的数据
2. 代码创建gdb工作空间
2.1 CreateFileGDB Class创建
Creates a file geodatabase in a folder. [在给定目录下创建一个地理数据库]
//创建GDB文件对象 CreateFileGDB process1 = new CreateFileGDB {out_folder_path = @"D:\新建文件夹", out_name = "temp.gdb"}
注意上述代码中为out_folder_path设定的目录必须是已存在的目录,否则在使用GP工具执行时,会报错:对COM组件的调用返回了错误 HRESULT E_FAIL
GP.Execute(processor1, null);//将创建的GDB文件加入到GP工具中
2.2 Acrivator.CreateInstance创建
2.2.1 实现代码
/// <summary> /// 在指定目录下创建gdb文件 /// </summary> /// <param name="path">创建目录</param> /// <returns>返回工作空间</returns> public static IWorkspace CreateFileGdbWorkspace(string gdbFileName) { Type factoryType = Type.GetTypeFromProgID( "esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance (factoryType); string path = System.IO.Path.GetDirectoryName(gdbFileName); string fileName = System.IO.Path.GetFileName(gdbFileName); IWorkspaceName workspaceName = workspaceFactory.Create(path, fileName, null, 0); IName name = (IName)workspaceName; IWorkspace workspace = (IWorkspace)name.Open(); return workspace; }
2.2.2 空间索引格网大小无效异常及解决方案
错误:空间索引格网大小无效
当通过 CreateFeature 和 Store 方法或使用 InsertCursor 创建新要素时,可能发生以下错误而导致创建失败:“FDO_E_INVALID_GRID_SIZE -2147216894 空间索引格网大小无效。”
原因: 在创建要素的要素类的格网过小而无法处理要素,所以将出现 FDO_E_INVALID_GRID_SIZE 错误。 仅在使用文件地理数据库或 ArcSDE 地理数据库时会发生此错误。
根据错误消息出现方式的不同,可采用两种不同的方式来处理此错误。
如果在 ArcMap 中进行编辑时出现此错误,可重新计算或修改要素类的格网大小以容纳新要素。 必须在 ArcCatalog 的“要素类”属性对话框中重新计算格网大小。 此操作需要使用“停止编辑”功能,保存一切更改并关闭包含要素类的地图文档。 有关如何重新计算或修改要素类格网大小的步骤,请参阅以下 Web 帮助文档:设置空间索引。
如果在 ArcObjects API 中以编程方式遇到此错误,则通知用户手动修改空间索引不是理想的解决方案。 相反,可以在插入要素之前将要素类置于 LoadOnly 模式,以避免发生此错误。 当要素类退出 LoadOnly 模式时,地理数据库将自动重新计算适合的格网大小。 以下代码示例演示了如何将 LoadOnly 模式与要素类配合使用: