...Dieses leere Gefühl...<\/A> Das Gespräch über null und leere Geometrien in ArcGIS ist nicht neu, aber es braucht etwas Zeit, um es zu verstehen.<\/EM><\/P><\/P>
Wenn es darum geht, neue Feature-Classes zu erstellen, sind die meisten Leute sicherlich mit dem folgenden Bildschirm aus dem Assistenten für neue Feature-Classes vertraut:<\/P>
<\/P>
<\/P>
Beim Erstellen einer neuen Feature-Class mit ArcGIS Desktop, entweder über die GUI oder ArcPy, erlauben die Standardeinstellungen NULL-Werte im SHAPE-Feld (siehe gelbe Markierung oben). Unabhängig davon, ob NULLs im SHAPE-Feld eine gute oder schlechte Idee sind, werden sie standardmäßig unterstützt und erlaubt, daher ist es gut zu verstehen, was passiert bzw. passieren kann, wenn Geometrien in Feature-Classes nicht mit dem Rest eines Datensatzes gefüllt sind.<\/P>
<\/P>
Nach der Fehlerbehebung bei mehreren Fällen, in denen NULL nicht wirklich NULL war, habe ich beschlossen, genauer zu untersuchen, was wirklich passiert, wenn Geometrien in Feature-Classes nicht gefüllt sind. Es stellt sich heraus, dass die Antwort sowohl vom verwendeten Werkzeug als auch vom Typ der Geodatabase abhängt, die zum Einfügen, Speichern und Abrufen von Datensätzen verwendet wird. Hier werden die Ergebnisse für einige der gebräuchlichsten Werkzeuge und Geodatabasetypen präsentiert.<\/P>
<\/P>
Tabelle 1 zeigt, was tatsächlich im SHAPE-Feld eingetragen wird, wenn nichts, None<\/SPAN>, eine leere Geometrie und eine nicht-leere Geometrie in eine Polygon-Feature-Class mit drei verschiedenen Methoden eingefügt werden.<\/P><\/P>TABELLE 1: SHAPE-Feldwerte in Feature-Class<\/TD><\/TR>Speichertyp<\/P><\/P><\/TH>Einfügemethode<\/P><\/P><\/TH>NICHTS<\/STRONG><\/TH>NONE<\/STRONG><\/TH>LEER<\/STRONG><\/TH>POLYGON<\/STRONG><\/TH><\/TR>PGDB<\/P><\/TD>ArcMap Editor<\/P><\/TD>Null<\/SPAN>N/A<\/TD>N/A<\/TD>Polygon<\/SPAN>PGDB<\/SPAN>arcpy.InsertCursor<\/SPAN>Null<\/SPAN>Fehler<\/TD>Leer<\/SPAN>Polygon<\/SPAN>PGDB<\/SPAN>arcpy.da.InsertCursor<\/SPAN>Null<\/SPAN>Null<\/SPAN>Null<\/SPAN>Polygon<\/SPAN>FGDB<\/SPAN>ArcMap Editor<\/SPAN>Leer<\/SPAN>N/A<\/TD>N/A<\/TD>Polygon<\/SPAN>FGDB<\/SPAN>arcpy.InsertCursor<\/SPAN>Null<\/SPAN>Fehler<\/TD>Leer<\/SPAN>} style="padding: 6px; text-align: center; color: #505050; vertical-align: bottom; background-color: #f2f2f2;" valign="middle">Speicherort
Typ
Abfrage
Methode
NULLEMPTYPOLYGONPGDBarcpy.SearchCursorNoneEmptyPolygonPGDBarcpy.da.SearchCursorNoneNonePolygonFGDBarcpy.SearchCursorNoneEmptyPolygonFGDBarcpy.da.SearchCursorNoneNonePolygonSDE(SQL)arcpy.SearchCursorNoneEmptyPolygonSDE(SQL)arcpy.da.SearchCursorNoneNonePolygonSDE(ORA)arcpy.SearchCursorNoneEmptyPolygonSDE(ORA)arcpy.da.SearchCursorNoneNonePolygonHINWEIS:
- Speichertyp:
- PGDB := personal geodatabase
- FGDB := file geodatabase
- SDE(SQL) := SQL Server enterprise geodatabase
- SDE(ORA) := Oracle enterprise geodatabase
- Abfragemethode: