1.产生情景:创建工作空间打开GDB文件时。(创建Shp文件或其他数据库文件时也可能出现。)
报错提醒:
报错含义:已经存在同名的工作空间;
解决方案:1、找到电脑上已存在的名为gdbName的gdb文件,并删除或更名。
2、通过if判断是否存在对应的gdb文件,存在则打开,否则就创建一个新的,这样可以避免出现此错误,创建一个新的要素类也可以这样判断
2.ArcGIS开发中的空间关系(ISpatial. esriSpatialRelEnum)
GIS空间查询(SpatialFilter)时各种空间关系总结
DE-9IM 空间关系模型
3. 问题:
解决方案:
ArcEngine中COM对象与其基础RCW分开后就不能再使用-CSDN博客
4. 获取当前执行程序的debug路径
AppDomain currentDomainn = AppDomain.CurrentDomain;
Assembly assembly = Assembly.GetExecutingAssembly();
string assemblyPath = assembly.Location;
MessageBox.Show(assemblyPath);
string assemblyDirectory = System.IO.Path.GetDirectoryName(assemblyPath);
MessageBox.Show(assemblyDirectory);
5.IFeature.Store()报错:无法再编辑调用回收行上的存储。
解决方案:将IFeatureClass.Search()方法的第二个参数设为false.
解决原因:如果第二个参数为true,featureCursor会在while循环结束后(对图层中符合要求的要素搜索结束后)自动释放掉,要求对要素的所有操作都在while循环里进行,否则就会产生该报错。
相反,如果为false,那么在while循环结束后不会自动释放游标,所以在结束while循环后再对feature操作不会产生该报错
6. IFeature.Store()报错:已试图对空几何进行操作。![](https://img-blog.csdnimg.cn/direct/bb9ee7b1782f447281dfd3824d5dfd1e.png)
7. 错误 18 无法将文件“obj\Debug\GlobalObjectToos.dll”复制到“bin\Debug\GlobalObjectToos.dll”。文件“bin\Debug\GlobalObjectToos.dll”正由另一进程使用,因此该进程无法访问此文件。
解决方案:将正在运行的ArcMap程序关闭。
8.错误:空间索引格网大小无效。
解决方案:
1.将产生报错的要素删除,并重建。
2. 停止编辑的情况下,打开ArcCatalog,在要素层上右键-属性-索引-删除空间索引;再对数据进行编辑;编辑完成后来来创建空间索引
9. 错误:使用完自行开发的Add-in工具后,无法使用原有的编辑工具(只能选中,无法拖动,修改,删除等),只能停止编辑再开始编辑才能恢复。
引起原因:(个人推测)同时调用了IEditor.StartOperation(),IEditor.StopOperation()和 IWorkspaceEdit.StartEditing(true);
IWorkspaceEdit.StartEditOperation();
IWorkspaceEdit.StopEditOperation();
IWorkspaceEdit.StopEditing(true);
解决方案:保留IEditor,删除IWorkspaceEdit
10. Form窗体程序,将事件处理程序与事件相关联的方法(以CheckListBox的ItemCheck事件为例):
设置CheckListBox的(Name)为CheckList,
事件处理程序命名为:CheckList_ItemCheck(组件的名字_事件的名字),
在designer.cs文件中绑定事件处理程序:
this.CheckList.ItemCheck +=
new System.Windows.Forms.ItemCheckEventHandler(CheckList_ItemCheck);
11. 异常:无法加载DLL"xxx.dll"找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
背景及产生原因:C#中调用ArcMapLicense组件产生错误
解决方案:dll生成的平台(x64/x86/AnyCpu),与我们的工程的平台不符合;
在解决方案——>属性——>生成——>目标平台——>改为x86即可。
这是由于我在进行这次创建的时候采用的是将其它的FeatureClass复制到该Featuclass上,那么就存在新建的和原来的Shape坐标参考不一样,所以为了解决此错误,在创建shape的时候修改如下:复制旧的shape到此FeatureClass,错误解决
13.
检测工具输入的信息是否有误,是否为空
14.
在Licensecontrol插件更改其属性的权限
15.
调用IWorkspaceFactory时结束要用Marshal.ReleaseComObject(workspaceFactory);释放
不然会出现无法将类型强制转换为什么什么的错误提示
16. “LC.exe”已退出,代码为 -1。
找到文件下的licnses.licx文件删除并重新创建一个
https://www.cnblogs.com/XiaoRuLiang/p/10076549.html
17,无法再次编译已经回收行上的内容
过滤条件改成false,因为如果为true的时候,则代表着在下面的while结束的时候自动释放空间,
18. 删除GDB文件时报错:文件“timestamps”正在被进程使用,该进程无法访问。
产生原因:使用Directory.Delete(path,true);删除gdb文件夹
解决方案:改为使用Dataset删除:
//将IWorkspace转为 Dataset
Dataset dataset = workspace as Dataset;
dataset.Delete();
完美解决