错误

错误:空间索引格网大小无效

Last Published: April 25, 2020

错误消息

: 本文适用于 ArcGIS 9.x 版本。 更高版本的 ArcGIS 可能包含不同的功能,对于菜单、命令和地理处理工具,可能具有不同的名称和位置。

当通过 CreateFeature 和 Store 方法或使用 InsertCursor 创建新要素时,可能发生以下错误而导致创建失败:

FDO_E_INVALID_GRID_SIZE -2147216894 空间索引格网大小无效

原因

因为创建要素的要素类的格网过小而无法管理要素,所以将出现 FDO_E_INVALID_GRID_SIZE 错误。 仅在使用文件地理数据库或 ArcSDE 地理数据库时会发生此错误。

解决方案或解决方法

根据错误消息出现时间的不同,可采用两种方式来处理此错误。

  • 如果在 ArcMap 中进行编辑时出现此错误,可重新计算或修改要素类的格网大小以容纳新要素。 必须在 ArcCatalog 的“要素类”属性对话框中重新计算格网大小。 此操作需要使用“停止编辑”功能。 保存一切更改并关闭包含要素类的地图文档。 有关重新计算或修改要素类格网大小的步骤,请参阅 ArcMap:重新构建空间索引
  • 如果在 ArcObjects API 中以编程方式遇到此错误,则通知用户手动修改空间索引不是理想的解决方案。 相反,可以在插入要素之前将要素类置于 LoadOnly 模式,以避免发生此错误。 当要素类退出 LoadOnly 模式时,地理数据库将自动重新计算适合的格网大小。 以下代码示例演示了将 LoadOnly 模式与要素类配合使用:
'Place the feature class in loadonly mode. 必须在调用 IFeature.Store 或 IFeatureCuror.InsertCursor 之前执行此操作 Dim pFCLoad As IFeatureClassLoad Set pFCLoad = pFeatureClass pFCLoad.LoadOnlyMode = True 'Create feature buffer Dim pFeatBuffer As IFeatureBuffer Set pFeatBuffer = pFeatureClass.CreateFeatureBuffer Set pFeatBuffer.Shape = pGeometry 'Create insert cursor and insert buffer Dim pCursor As IFeatureCursor Set pCursor = pFeatureClass.Insert(True) 'Insert the feature and call flush pCursor.InsertFeature pFeatBuffer pCursor.Flush 'Take the feature class out of loadonly mode, and the Geodatabase calculates an appropriate grid size based on the features in the feature class pFCLoad.LoadOnlyMode = False

文章 ID:000010090

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容