laptop and a wrench

Bogue

IRelationResult.RelationElement property does not work in VBA - returns "Invalid use of property" compile error.

Dernière publication: August 19, 2020 ArcGIS for Desktop
Numéro d’ID de bogue NIM056080
EnvoiApril 6, 2010
Dernière modificationJune 5, 2024
S’applique àArcGIS for Desktop
Version trouvée9.3.1
Langue du programmeVBA
Système d’exploitationWindows OS
Version du système d’exploitationXP
StatutWill Not Be Addressed

Informations supplémentaires

We apologize that we were unable to address this issue within the current product support cycle.  If the issue continues to affect your work in a supported release, please contact Technical Support.

Solution de contournement

Use C# code: public void OnClick() { try { IWorkspaceFactory wsFact = new FileGDBWorkspaceFactoryClass(); IFeatureWorkspace featWS = (IFeatureWorkspace)wsFact.OpenFromFile(@"<a href="file:C:/incidents/792309/Test.gdb" target="_blank">C:\incidents\792309\Test.gdb</a>", 0); IFeatureClass featClsPoly = featWS.OpenFeatureClass("Polygon"); IFeatureClass featClsLine = featWS.OpenFeatureClass("Polyline"); object obj = Type.Missing; IGeometryCollection geomCollGon = new GeometryBagClass() as IGeometryCollection; IFeatureCursor featCur = featClsPoly.Search(null, false); IFeature feat = featCur.NextFeature(); while (feat != null) { geomCollGon.AddGeometry(feat.ShapeCopy, ref obj, ref obj); feat = featCur.NextFeature(); } IGeometryCollection geomCollLine = new GeometryBagClass() as IGeometryCollection; featCur = featClsLine.Search(null, false); feat = featCur.NextFeature(); while (feat != null) { geomCollLine.AddGeometry(feat.ShapeCopy, ref obj, ref obj); feat = featCur.NextFeature(); } IRelationalOperatorNxM relOpNxM = geomCollGon as IRelationalOperatorNxM; IRelationResult relRes = relOpNxM.Crosses(geomCollLine as IGeometryBag); int count = relRes.RelationElementCount; int left, right; for (int i = 0; i < count; i++) { relRes.RelationElement(i, out left, out right); IGeometry geomGon = geomCollGon.get_Geometry(left); IGeometry geomLine = geomCollLine.get_Geometry(right); } } catch (Exception e) { MessageBox.Show(e.Message); } }

Étapes pour reproduire

ID de bogue: NIM056080

Logiciel:

  • ArcGIS for Desktop

Recevoir une notification lorsque le statut d’un bogue change

Télécharger l’application Esri Support

En savoir plus sur ce sujet

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement