...Ten prázdný pocit...<\/A> Diskuse o null a prázdných geometriích v ArcGIS není nová, ale vyžaduje trochu času, než se s ní člověk sžije.<\/EM><\/P><\/P>
Pokud jde o vytváření nových tříd prvků, jsem si jistý, že většina lidí je dobře obeznámena s následující obrazovkou z průvodce Nová třída prvků:<\/P>
<\/P>
<\/P>
Při vytváření nové třídy prvků pomocí ArcGIS Desktop, ať už přes GUI nebo ArcPy, výchozí nastavení umožňuje hodnoty NULL ve sloupci SHAPE (viz žluté zvýraznění výše). Ať už jsou NULL hodnoty ve sloupci SHAPE dobrý nebo špatný nápad, jsou podporovány a povoleny ve výchozím nastavení, takže je dobré pochopit, co se stane nebo může stát, když geometrie nejsou vyplněny spolu se záznamem v třídách prvků.<\/P>
<\/P>
Po řešení několika případů, kdy NULL nebylo NULL, jsem se rozhodl podívat se hlouběji na to, co se skutečně děje, když geometrie nejsou vyplněny v třídách prvků. Ukazuje se, že odpověď závisí jak na nástroji, tak na typu geodatabáze používané k vkládání, ukládání a načítání záznamů. Zde jsou prezentovány výsledky pro některé z běžnějších nástrojů a typů geodatabází.<\/P>
<\/P>
Tabulka 1 ukazuje, co se skutečně vyplní do pole SHAPE, když je do polygonové třídy prvků vloženo nic, None<\/SPAN>, prázdná geometrie a neprázdná geometrie třemi různými metodami.<\/P><\/P>TABULKA 1: Hodnoty pole SHAPE ve třídě prvků<\/TD><\/TR>Typ úložiště<\/P>(Storage)<\/P><\/TH>Způsob vložení<\/P>(Insert Method)<\/P><\/TH>NIC<\/STRONG> (NOTHING)<\/TH>NONE<\/STRONG><\/TH>PRÁZDNÉ<\/STRONG> (EMPTY)<\/TH>POLYGON<\/STRONG><\/TH><\/TR>PGDB<\/P>ArcMap Editor<\/P>Null<\/P>N/A<\/P>N/A<\/P>Polygon<\/P>PGDB<\/P>arcpy.InsertCursor<\/P>Null<\/P>Chyba (Error)<\/P>Prázdné (Empty)<\/P>Polygon<\/P>PGDB<\/P>arcpy.da.InsertCursor<\/P>Null<\/P>Null<\/P>Null<\/P>Polygon<\/P>FGDB<\/P>ArcMap Editor<\/P>Prázdné (Empty)<\/P>N/A<\/P>N/A<\/P>Polygon<\/P>FGDB<\/p>
arcpy.InsertCursor
Null
Chyba (Error)
Prázdné (Empty)
Polygon
FGDB
arcpy.da.InsertCursor
Null
Null
Null
Polygon
SDE(SQL)
ArcMap Editor
Prázdné (Empty)
N/A
N/A
Polygon
SDE(SQL)
arcpy.InsertCursor
Null
Chyba (Error)
Prázdné (Empty)
Polygon
SDE(SQL)
arcpy.da.InsertCursor
Null
Null
Null
Polygon
SDE(ORA)
ArcMap Editor
Prázdné (Empty)
N/A
N/A
Polygon
SDE(ORA)
arcpy.InsertCursor
Null
Chyba (Error)
Prázdné (Empty)
Polygon
Úložiště
Typ
Způsob
Načtení
NULLEMPTYPOLYGONPGDBarcpy.SearchCursorNoneEmptyPolygonPGDBarcpy.da.SearchCursorNoneNonePolygonFGDBarcpy.SearchCursorNoneEmptyPolygonFGDBarcpy.da.SearchCursorNoneNonePolygonSDE(SQL)arcpy.SearchCursorNoneEmptyPolygonSDE(SQL)arcpy.da.SearchCursorNoneNonePolygonSDE(ORA)arcpy.SearchCursorNoneEmptyPolygonSDE(ORA)arcpy.da.SearchCursorNoneNonePolygonPOZNÁMKA:
- Typ úložiště:
- PGDB := osobní geodatabáze
- FGDB := souborová geodatabáze
- SDE(SQL) := SQL Server enterprise geodatabáze
- SDE(ORA) := Oracle enterprise geodatabáze
- Způsob načtení: