Deutsch

Error: Die Gittergröße des räumlichen Indexes ist ungültig.

Fehlermeldung

Wenn ein neues Feature mit der Methode "Feature erstellen und speichern" oder einem InsertCursor erstellt wird, schlägt die Erstellung mit dem folgenden Fehler fehl:

"FDO_E_INVALID_GRID_SIZE
-2147216894
Die Gittergröße des räumlichen Indexes ist ungültig."

Ursache

Der Fehler FDO_E_INVALID_GRID_SIZE wird ausgelöst, da die Raster-Größe der Feature-Class, in der das Feature erstellt werden soll, zu klein für das Feature ist. Dieser Fehler tritt nur bei File- oder ArcSDE-Geodatabases auf.

Lösung oder Problemumgehung

Je nachdem, wie die Fehlermeldung ausgelöst wurde, gibt es zwei Möglichkeiten der Fehlerbehandlung.

  1. Wenn dieser Fehler während der Bearbeitung in ArcMap festgestellt wurde, sollten Sie die Raster-Größe der Feature-Class neu berechnen bzw. so ändern, dass das neue Feature aufgenommen werden kann. Die Neuberechnung der Raster-Größe muss im Dialogfeld "Eigenschaften: Feature-Class" in ArcCatalog erfolgen. Dabei ist es erforderlich, die Funktion "Bearbeitung beenden" zu verwenden, alle Änderungen zu speichern und das Kartendokument, in dem die Feature-Class enthalten ist, zu schließen. Die Schritte zum Neuberechnen oder Ändern der Raster-Größe einer Feature-Class finden Sie im folgenden Webhilfe-Dokument: Setting spatial indexes.
  2. Wenn dieser Fehler programmgesteuert in der ArcObjects-API festgestellt wurde, dann ist die Aufforderung an den Benutzer, den räumlichen Index manuell zu ändern, nicht die ideale Lösung. Stattdessen kann dieser Fehler verhindert werden, indem dafür gesorgt wird, dass sich die Feature-Class im LoadOnly-Modus (Nur laden) befindet, bevor das Feature eingefügt wird. Wenn der LoadOnly-Modus der Feature-Class wieder deaktiviert wird, führt die Geodatabase automatisch die Neuberechnung einer geeigneten Raster-Größe durch. Das folgende Codebeispiel veranschaulicht, wie der LoadOnly-Modus bei einer Feature-Class verwendet wird:

Code:
'Place the feature class in loadonly mode. This steps needs to happen prior to calling IFeature.Store or 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, the Geodatabase will calculcate an appropriate grid size based on the features within the feature class
pFCLoad.LoadOnlyMode = False