Español

Error: El tamaño de la cuadrícula del índice espacial no es válido

Mensaje de error

La creación de una nueva entidad mediante el método Crear entidad y Almacenar o mediante el uso de un cursor de inserción falla con el siguiente error:

"FDO_E_INVALID_GRID_SIZE
-2147216894
El tamaño de la cuadrícula del índice espacial no es válido".

Causa

El error FDO_E_INVALID_GRID_SIZE aparece porque el tamaño de cuadrícula de la clase de entidad donde se va a crear la entidad es demasiado pequeño como para gestionar la entidad. El error solo se produce con geodatabases de ArcSDE o de archivos.

Solución o solución alternativa

En función de cómo surja el error, existen dos formas de abordarlo.

  1. Si encuentra este error mientras edita en ArcMap, recalcule o modifique el tamaño de la cuadrícula de la clase de entidad para acomodar la nueva entidad. Debe realizar el nuevo cálculo del tamaño de cuadrícula desde el cuadro de diálogo Propiedades de clase de entidad en ArcCatalog. Requiere que utilice la función Detener edición, guarde las ediciones y cierre el Documento de mapa que contiene la clase de entidad. Para ver los pasos sobre cómo recalcular o modificar el tamaño de cuadrícula de una clase de entidad, consulte la siguiente documentación de la Ayuda web: Configurar índices espaciales.
  2. Si aparece este error al programar a través de la API de ArcObjects, avisar al usuario para que modifique manualmente el índice espacial no es una solución idónea. En su lugar, puede prevenir el error colocando la clase de entidad en modo LoadOnly antes de insertar la entidad. Al sacar la clase de entidad del modo LoadOnly, la geodatabase recalcula automáticamente un tamaño de cuadrícula adecuado. La siguiente muestra de código presenta cómo utilizar el modo LoadOnly con una clase de entidad:

Código:
'Ponga la clase de entidad en modo loadonly. Estos pasos han de realizarse antes de invocar IFeature.Store o IFeatureCuror.InsertCursor
Dim pFCLoad As IFeatureClassLoad
Set pFCLoad = pFeatureClass
pFCLoad.LoadOnlyMode = True

'Cree la zona de influencia de la entidad
Dim pFeatBuffer As IFeatureBuffer
Set pFeatBuffer = pFeatureClass.CreateFeatureBuffer
Set pFeatBuffer.Shape = pGeometry

'Cree el cursor de inserción y la zona de influencia de inserción
Dim pCursor As IFeatureCursor
Set pCursor = pFeatureClass.Insert(True)

'Inserte la entidad e invoque flush
pCursor.InsertFeature pFeatBuffer
pCursor.Flush

'Saque la clase de entidad del modo loadonly; la geodatabase calculará un tamaño de cuadrícula adecuado basado en las entidades dentro de la clase de entidad
pFCLoad.LoadOnlyMode = False

Última modificación: 4/15/2020

Id. de artículo: 000010090

Software: ArcGIS-ArcEditor 9.3.1, 9.3, 10 ArcGIS-ArcInfo 9.3.1, 9.3, 9.2, 10 ArcGIS-ArcView 9.3.1, 9.3, 9.2, 10 ArcMap 10.8, 10.7.1, 10.7, 10.6.1, 10.6, 10.5.1, 10.5, 10.4.1, 10.4, 10.3.1, 10.3, 10.2.2, 10.2.1, 10.2, 10.1, 10