...Cette sensation de vide...<\/A> La conversation sur les géométries nulles et vides dans ArcGIS n'est pas nouvelle, mais cela demande un certain temps d'adaptation.<\/EM><\/P><\/P>
Lorsqu'il s'agit de créer de nouvelles classes d'entités, je suis sûr que la plupart des gens connaissent bien l'écran suivant de l'assistant Nouvelle classe d'entités :<\/P>
<\/P>
<\/P>
Lors de la création d'une nouvelle classe d'entités avec ArcGIS Desktop, soit via l'interface graphique, soit via ArcPy, les paramètres par défaut autorisent les valeurs NULL dans le champ SHAPE (voir surlignage jaune ci-dessus). Que les NULLs dans le champ SHAPE soient une bonne ou une mauvaise idée, ils sont pris en charge et autorisés par défaut, il est donc important de comprendre ce qui se passe ou peut se passer lorsque les géométries ne sont pas renseignées avec le reste d'un enregistrement dans les classes d'entités.<\/P>
<\/P>
Après avoir résolu plusieurs cas où NULL n'était pas NULL, j'ai décidé d'examiner plus en profondeur ce qui se passe réellement lorsque les géométries ne sont pas renseignées dans les classes d'entités. Il s'avère que la réponse dépend à la fois de l'outil et du type de géodatabase utilisé pour insérer, stocker et récupérer les enregistrements. Voici les résultats pour certains des outils et types de géodatabases les plus courants.<\/P>
<\/P>
Le tableau 1 montre ce qui est effectivement renseigné dans le champ SHAPE lorsqu'aucune valeur, None<\/SPAN>, une géométrie vide et une géométrie non vide sont insérées dans une classe d'entités polygone en utilisant trois méthodes différentes.<\/P><\/P>TABLEAU 1 : Valeurs du champ SHAPE dans la classe d'entités<\/TD><\/TR>Type de stockage<\/P><\/P><\/TH>Méthode d'insertion<\/P><\/P><\/TH>RIEN<\/STRONG><\/TH>NONE<\/STRONG><\/TH>VIDE<\/STRONG><\/TH>POLYGONE<\/STRONG><\/TH><\/TR>PGDB<\/P><\/TD>Éditeur ArcMap<\/P><\/TD>Null<\/TD>N/A<\/TD >N/A< \/TD >Polygone< \/TD >< \/TR >< \/TBODY >< \/TABLE >< P > Le tableau 2 montre ce qui est renvoyé par les curseurs de recherche une fois que les enregistrements du tableau 1 ont été insérés dans une classe d'entités.< \/ P >< P >< \/ P >< TABLE border = "1" class = "jiveBorder" height = "780" jive-data-cell = "{& quot;color & quot ; : & quot ; #3D3D3D & quot ; , & quot ; textAlign & quot ; : & quot ; left & quot ; , & quot ; padding & quot ; : & quot ; 6 & quot ; , & quot ; backgroundColor & quot ; : & quot ; transparent & quot ; , & quot ; fontFamily & quot ; : & quot ; Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif & quot ; , & quot ; verticalAlign & quot ; : & quot ; baseline & quot ; } " jive-data-header = "{& quot;color & quot ; : & quot ; #505050 & quot ; , & quot ; backgroundColor & quot ; : & quot ; #F2F2F2 & quot ; , & quot ; textAlign & quot ; : & quot ; left & quot ; , & quot ; padding & quot ; : & quot ; 6 & quot ; , & quot ; fontFamily & quot ; : & quot ; Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif & quot ; , & quot ; verticalAlign & quot ; : & quot ; baseline & quot ; } " style = "border : 1px solid #c6c6c6 ; width : 542px ; height : 782px ; margin-left : 60px;">Tableau 2 : Géométrie / Objet récupéré depuis le champ SHAPE < \/SPAN >< \/TD >< \/TR > style="padding: 6px; text-align: center; color: #505050; vertical-align: bottom; background-color: #f2f2f2;" valign="middle">Stockage
Type
Méthode
de récupération
NULLEMPTYPOLYGONPGDBarcpy.SearchCursorAucunVidePolygonePGDBarcpy.da.SearchCursorAucunAucunPolygoneFGDBarcpy.SearchCursorAucunVidePolygoneFGDBarcpy.da.SearchCursorAucunAucunPolygoneSDE(SQL)arcpy.SearchCursorAucunVidePolygoneSDE(SQL)arcpy.da.SearchCursorAucunAucunPolygoneSDE(ORA)arcpy.SearchCursorAucunVidePolygoneSDE(ORA)arcpy.da.SearchCursorAucunAucunPolygoneREMARQUE :
- Type de stockage :
- PGDB := géodatabase personnelle
- FGDB := géodatabase fichier
- SDE(SQL) := géodatabase d'entreprise SQL Server
- SDE(ORA) := géodatabase d'entreprise Oracle
- Méthode de récupération :