Suite

Comment utiliser IRelationalOperator2 et GeometryBag


Je souhaite utiliser la méthode IsNear de IRelationalOperator2. La documentation indique que GeometryBag prend en charge l'interface IRelationalOperator2. Mais cela ne fonctionne tout simplement pas et entraîne une exception "… incapable de lancer un objet COM… Aucune interface de ce type n'est prise en charge… "

IRelationalOperator2 relationalOperator = (IRelationalOperator2) géométrie ;

Le même code fonctionne bien avec IRelationalOperator mais il n'y a pas de méthode IsNear :

IRelationalOperator relationalOperator = (IRelationalOperator) géométrie ;

Qu'est-ce qui ne va pas - le code, la documentation ou est-ce un bogue ? « géométrie » est une géométrie de type géométrie esriGeometryBag et contient des polylignes. J'ai utilisé la distribution directe pour obtenir l'exception .NET.


Il se passe définitivement quelque chose de louche ici avec 10.0 sp2.

Je peux lancer un sac de géométrie sur IRelationalOperator2, sinon ce test dirait "Impossible de lancer", et j'obtiendrais une exception de référence nulle.

Cependant, lors du premier appel à IsNear, j'obtiens l'exception.

System.InvalidCastException s'est produit Message=Impossible de convertir l'objet COM de type 'ESRI.ArcGIS.Geometry.GeometryBagClass' en type d'interface 'ESRI.ArcGIS.Geometry.IRelationalOperator2'. Cette opération a échoué car l'appel QueryInterface sur le composant COM pour l'interface avec IID '{839F5C7E-ED5F-4B3F-8F97-C0A9CC4817EE}' a échoué en raison de l'erreur suivante : Aucune telle interface prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)) . Source=ESRI.ArcGIS.Geometry

Voici l'essai :

private void GBTest(IPoint pnt) { // cette ligne n'échoue pas var relop = new GeometryBagClass() as IRelationalOperator2; if (relop == null) Debug.Print("unable to cast"); // cela n'affiche pas var coll = relop as IGeometryCollection; coll.AjouterGéométrie(pnt); //((ISpatialIndex)coll).AllowIndexing = true; //((ISpatialIndex)coll).Invalidate(); var pnt2 = ((IClone)pnt).Clone() comme IPoint ; ((ITransform2D)pnt2).Move(100.0, 100.0); if (relop.IsNear(pnt2, 1000.0)) // exception ici Debug.Print("test 1 fail"); if (!relop.IsNear(pnt2, 10.0)) Debug.Print("échec du test 2"); }

Voici un autre test. Remarquez comment je peux effectuer un cast sans exception, mais obtenir une exception InvalidCast lors de l'appel à IsNear.

private void GBTest(IPoint pnt) { var coll = new GeometryBagClass(); ((IGeometry)coll).SpatialReference = pnt.SpatialReference; coll.AjouterGéométrie(pnt); coll.GeometriesChanged(); var relop = (IRelationalOperator2)coll; // s'attendrait à l'exception ici var pnt2 = ((IClone)pnt).Clone() as IPoint; ((ITransform2D)pnt2).Move(100.0, 100.0); if (relop.IsNear(pnt2, 1000.0)) // exception ici Debug.Print("test 1 fail"); if (!relop.IsNear(pnt2, 10.0)) Debug.Print("échec du test 2"); }

Je suppose que c'est un bogue avec la documentation car un GeometryBag est une collection de points/lignes/polygones. Il peut être impossible d'effectuer certaines opérations ITopologicalOperator sur une collection mixte et correspondante de types de géométrie. Si vous utilisiez une IGeometryCollection de polylignes, je pense que votre solution fonctionnerait.


Classe PolygonClass

Une collection d'anneaux classés par leur relation de confinement a éventuellement des attributs de mesure, de hauteur et d'ID.

La disponibilité des produits

Plateformes prises en charge

Informations d'erreur étendues

Utilisez la méthode ISupportErrorInfo InterfaceSupportsErrorInfo pour déterminer si l'objet prend en charge les informations d'erreur étendues. Si l'objet prend en charge les informations d'erreur étendues, les développeurs VC++ doivent utiliser l'interface OLE/COM IErrorInfo pour accéder à l'objet ErrorInfo. Les développeurs Visual Basic doivent utiliser l'objet d'erreur globale Se tromper pour récupérer ces informations d'erreur étendues.

Interfaces

Interfaces La description
IAzone Fournit un accès aux membres qui renvoient des propriétés communes aux anneaux et aux polygones.
IArea3D Fournit un accès aux membres qui renvoient des propriétés communes aux MultiPatches.
IAreaGeodetic Permet d'accéder aux membres qui calculent la surface ellipsoïdale des polygones à l'aide de diverses méthodes de densification du périmètre.
IClone (esriSystem) Fournit l'accès aux membres qui contrôlent le clonage des objets.
IConstructCurve Permet d'accéder aux membres qui construisent une courbe à l'aide d'autres géométries et mesures.
IConstructCurve2 Permet d'accéder aux membres qui construisent une courbe à l'aide d'autres géométries et mesures.
ICurve Donne accès aux propriétés et méthodes de toutes les courbes à 1 dimension (polylignes, segments, limites de polygones, etc.).
ICurve3D Fournit un accès aux membres qui définissent les opérations communes aux courbes avec des Z.
Igéométrie Permet d'accéder aux membres qui décrivent les propriétés et le comportement de tous les objets géométriques.
IGéométrie2 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGéométrie3 Fournit un accès rapide à l'étendue d'une géométrie dans le plan x-y.
IGéométrie4 Donne accès aux méthodes qui indiquent si une géométrie a été modifiée (éditée, projetée, etc.).
IGéométrie5 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGeometryCollection Fournit un accès aux membres qui peuvent être utilisés pour accéder, ajouter et supprimer des géométries individuelles d'une géométrie en plusieurs parties (Multipoint, Polyline, Polygon, MultiPatch et GeometryBag).
IHitTest Permet d'accéder aux membres qui localisent une partie d'une géométrie la plus proche d'un point.
IHitTest3D Permet d'accéder aux membres qui localisent une partie d'une géométrie la plus proche d'un point.
Je suis au courant Interface d'indicateur qui identifie les objets géométriques pouvant avoir des valeurs M persistantes attachées à leurs sommets.
IMCollection Fournit un accès aux membres qui contrôlent les opérations sur les multipoints, polylignes, polygones et multipatchs M-aware.
Segmentation IMS Permet d'accéder aux membres pour définir un système de coordonnées linéaires basé sur M sur une polyligne ou un polygone.
IMSnap Fournit l'accès à une méthode qui aligne les ms de la géométrie sur la précision de la référence spatiale associée à la géométrie.
IPersist (esriSystem)
IPersistStream (esriSystem)
IPointCollection Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointCollection4 Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointIDAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs d'ID de point persistantes attachées aux coordonnées.
IPolycurve Permet d'accéder aux membres qui définissent les opérations communes aux polylignes et aux limites des polygones.
IPolycurve2 Fournit un accès aux membres qui étendent IPolycurve avec des méthodes de fractionnement et de densification supplémentaires.
IPolycurve3D Fournit un accès aux membres qui définissent les opérations communes aux polycourbes avec des Z.
IPolycurveGéodésique Fournit diverses opérations géodésiques sur les courbes.
Ipolygone Fournit un accès aux membres qui identifient un polygone et permettent un accès contrôlé à ses anneaux interne et externe.
IPolygon2 Fournit un accès aux membres qui étendent l'interface IPolygon.
IPolygon3 Fournit un accès aux membres qui étendent l'interface IPolygon2.
IPolygon4 Fournit un accès aux membres qui étendent l'interface IPolygon3.
IPolygon5 Fournit des opérations supplémentaires sur les polygones. Notez qu'IPolygon5 n'hérite pas d'IPolygon4.
IProximityOperator Fournit un accès aux membres qui trouvent la distance 2D entre deux géométries.
IProximityOperator3D Fournit un accès aux membres qui trouvent la distance 3D entre deux géométries avec des Z.
IOpérateurRelationnel Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries.
IOpérateurRelationnel2 Fonctions relationnelles supplémentaires.
IRelationalOperator3D Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
IOpérateurRelationnel3D2 Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
ISegmentCollection Permet d'accéder aux membres qui manipulent les segments d'un tracé, d'un anneau, d'une polyligne ou d'un polygone.
ISpatialIndex2 Fournit un accès aux membres qui créent un index spatial temporaire pour améliorer les performances de "Disjoint" et de certains autres opérateurs relationnels.
ISupportErrorInfo (esriSystem)
Opérateur ITopologique Fournit un accès aux membres pour la construction de nouvelles géométries en fonction des relations topologiques entre les géométries existantes.
IOpérateuropologique2 Fournit un accès aux membres qui étendent l'interface ITopologicalOperator.
IOpérateuropologique3 Fournit des informations supplémentaires sur les géométries non simples.
IOpérateuropologique4 Fournit des informations supplémentaires sur les géométries non simples.
IOpérateuropologique6 .
ITransform2D Donne accès à des méthodes de transformation de géométries à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires (transformations affines, transformations géographiques, etc.).
ITransform3D Fournit un accès aux méthodes de transformation de géométries 3D à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires.
IXMLSerialize (esriSystem) Fournit un accès aux membres que XML sérialise et désérialise un objet vers/depuis XML.
IZ Fournit un accès aux membres qui identifient les objets géométriques pouvant avoir des coordonnées 3D et définit les opérations sur ces objets.
IZ2 Permet d'accéder à des membres supplémentaires qui identifient les objets géométriques pouvant avoir des coordonnées 3D et définissent les opérations sur ces objets.
IZAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs Z persistantes attachées à leurs sommets.
IZCollection Permet d'accéder aux opérations sur les géométries compatibles Z.

objet statique privé _missing = Type .Missing

IGeometry statique public GetPolygonGeometry()

const double RingVertexCount = 9

const double RingDegrees = 360,0

const double VectorComponentOffset = 0,0000001

const double RingRadius = 5

IPoint [] centerPointArray = nouveau IPoint [5]

centerPointArray[0] = ConstructPoint3D (7.5, 7.5, 7.5)

centerPointArray[1] = ConstructPoint3D (-7,5, -7,5, 7,5)

centerPointArray[2] = ConstructPoint3D (0, 0, 0)

centerPointArray[3] = ConstructPoint3D(7.5, -7.5, -7.5)

centerPointArray[4] = ConstructPoint3D (-7,5, 7,5, -7,5)

IGeometryCollection geometryCollection = new PolygonClass ()

pour ( int i = 0 i < centerPointArray.Length i++)

IPoint centerPoint = centerPointArray[i]

IPointCollection externalPointCollection = new RingClass ()

IPointCollection innerPointCollection = new RingClass ()

IVector3D upperAxisVector3D = ConstructVector3D (0, 0, 10)

IVector3D lowerAxisVector3D = ConstructVector3D (0, 0, -10)

IVector3D normalVector3D =
upperAxisVector3D.CrossProduct(lowerAxisVector3D) en tant que IVector3D

double rotationAngleInRadians =
GetRadians (RingDegrees / RingVertexCount)

pour ( int j = 0 j < RingVertexCount j++)

normalVector3D.Rotation(
-1 * rotationAngleInRadians, upperAxisVector3D

centerPoint.Z
),
ref _manquant, ref _manquant
)

centerPoint.X + 0.5 * normalVector3D.XComponent,

centerPoint.Y + 0.5 * normalVector3D.YComponent,

),
ref _manquant, ref _manquant
)

ref _manquant, ref _manquant
)

ref _manquant, ref _manquant
)

ICurve innerCurve = innerPointCollection comme ICurve

geometryCollection.AddGeometry(
externalPointCollection en tant que IGeometry ,

ref _manquant, ref _manquant
)

geometryCollection.AddGeometry(
innerPointCollection comme IGeometry ,

ref _manquant, ref _manquant
)

MakeZAware(geometryCollection as IGeometry )

IOpologicalOperator topologicalOperator =
geometryCollection en tant qu'opérateur ITopologique

retourner la collection geometryCollection en tant que IGeometry

IPoint statique privé ConstructPoint3D( double x, double y, double z)

Point IPoint = PointConstruct2D(x, y)

IPoint statique privé ConstructPoint2D( double x, double y)

IPoint point = nouvelle PointClass ()

vide statique privé MakeZAware (géométrie IGeometry)

IZAware zAware = géométrie comme IZAware

IVector3D statique privé ConstructVector3D(
double xComposant, double yComposant, double zComposant
)


CoClasse MultiPatch

Utilisez la méthode ISupportErrorInfo InterfaceSupportsErrorInfo pour déterminer si l'objet prend en charge les informations d'erreur étendues. Si l'objet prend en charge les informations d'erreur étendues, les développeurs VC++ doivent utiliser l'interface OLE/COM IErrorInfo pour accéder à l'objet ErrorInfo. Les développeurs Visual Basic doivent utiliser l'objet d'erreur globale Se tromper pour récupérer ces informations d'erreur étendues.

Interfaces

Interfaces La description
IAzone Fournit un accès aux membres qui renvoient des propriétés communes aux anneaux et aux polygones.
IArea3D Fournit un accès aux membres qui renvoient des propriétés communes aux MultiPatches.
IClone (esriSystem) Fournit l'accès aux membres qui contrôlent le clonage des objets.
IConstructMultiPatch Fournit un accès aux membres qui peuvent être utilisés pour construire des MultiPatches.
IGénéralMultiPatchInfo Interface pour obtenir des informations sur un GeneralMultiPatch.
Igéométrie Permet d'accéder aux membres qui décrivent les propriétés et le comportement de tous les objets géométriques.
IGéométrie2 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGéométrie3 Fournit un accès rapide à l'étendue d'une géométrie dans le plan x-y.
IGéométrie4 Donne accès aux méthodes qui indiquent si une géométrie a été modifiée (éditée, projetée, etc.).
IGéométrie5 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGeometryCollection Fournit un accès aux membres qui peuvent être utilisés pour accéder, ajouter et supprimer des géométries individuelles d'une géométrie en plusieurs parties (Multipoint, Polyline, Polygon, MultiPatch et GeometryBag).
IHitTest Permet d'accéder aux membres qui localisent une partie d'une géométrie la plus proche d'un point.
Je suis au courant Interface d'indicateur qui identifie les objets géométriques pouvant avoir des valeurs M persistantes attachées à leurs sommets.
IMCollection Fournit un accès aux membres qui contrôlent les opérations sur les multipoints, polylignes, polygones et multipatchs M-aware.
IMSnap Fournit l'accès à une méthode qui aligne les ms de la géométrie sur la précision de la référence spatiale associée à la géométrie.
IMultiPatch Fournit un accès aux membres qui identifient un MultiPatch et autorisent un accès contrôlé à ses parties.
IPersiste Définit la méthode unique GetClassID, conçue pour fournir le CLSID d'un objet pouvant être stocké de manière persistante dans le système. IPersist est l'interface de base de trois autres interfaces : IPersistStorage, IPersistStream et IPersistFile.
IPersistStream (esriSystem)
IPointCollection Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointCollection3 Fournit un accès aux membres qui manipulent les points d'un multipoint.
IPointCollection4 Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointIDAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs d'ID de point persistantes attachées aux coordonnées.
IProximityOperator Fournit un accès aux membres qui trouvent la distance 2D entre deux géométries.
IProximityOperator3D Fournit un accès aux membres qui trouvent la distance 3D entre deux géométries avec des Z.
IOpérateurRelationnel Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries.
IOpérateurRelationnel2 Fonctions relationnelles supplémentaires.
IRelationalOperator3D Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
IOpérateurRelationnel3D2 Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
ISupportErrorInfo Indique si une interface spécifique peut renvoyer des objets d'erreur Automation.
Opérateur ITopologique Fournit un accès aux membres pour la construction de nouvelles géométries en fonction des relations topologiques entre les géométries existantes.
IOpérateuropologique2 Fournit un accès aux membres qui étendent l'interface ITopologicalOperator.
IOpérateuropologique3 Fournit des informations supplémentaires sur les géométries non simples.
ITransform2D Donne accès à des méthodes de transformation de géométries à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires (transformations affines, transformations géographiques, etc.).
ITransform3D Fournit un accès aux méthodes de transformation de géométries 3D à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires.
IVolume Fournit un accès aux membres qui renvoient des propriétés communes aux MultiPatches.
IXMLSerialize (esriSystem) Fournit un accès aux membres que XML sérialise et désérialise un objet vers/depuis XML.
IZAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs Z persistantes attachées à leurs sommets.
IZCollection Permet d'accéder aux opérations sur les géométries compatibles Z.

objet statique privé _missing = Type .Missing

IGeometry statique public GetMultiPatchGeometry()

//Composite: Maison composée de 7 anneaux, 1 triangleStrip et 1 triangles

IGeometryCollection multiPatchGeometryCollection = new MultiPatchClass ()


CoClasse polyligne

Une collection ordonnée de chemins a éventuellement des attributs de mesure, de hauteur et d'ID.

La disponibilité des produits

Plateformes prises en charge

Informations d'erreur étendues

Utilisez la méthode ISupportErrorInfo InterfaceSupportsErrorInfo pour déterminer si l'objet prend en charge les informations d'erreur étendues. Si l'objet prend en charge les informations d'erreur étendues, les développeurs VC++ doivent utiliser l'interface OLE/COM IErrorInfo pour accéder à l'objet ErrorInfo. Les développeurs Visual Basic doivent utiliser l'objet d'erreur globale Se tromper pour récupérer ces informations d'erreur étendues.

Interfaces

Interfaces La description
IClone (esriSystem) Fournit l'accès aux membres qui contrôlent le clonage des objets.
IConstructCurve Permet d'accéder aux membres qui construisent une courbe à l'aide d'autres géométries et mesures.
IConstructCurve2 Permet d'accéder aux membres qui construisent une courbe à l'aide d'autres géométries et mesures.
IConstructCurve3 Permet d'accéder aux membres qui construisent une courbe à l'aide d'autres géométries et mesures.
IConstructGeodetic Permet d'accéder aux membres qui construisent différents types de courbes géodésiques.
ICurve Donne accès aux propriétés et méthodes de toutes les courbes à 1 dimension (polylignes, segments, limites de polygones, etc.).
ICurve2 Permet d'accéder aux membres qui étendent la fonctionnalité des courbes unidimensionnelles.
ICurve3 Permet d'accéder aux membres qui étendent la fonctionnalité des courbes unidimensionnelles.
ICurve3D Fournit un accès aux membres qui définissent les opérations communes aux courbes avec des Z.
Igéométrie Permet d'accéder aux membres qui décrivent les propriétés et le comportement de tous les objets géométriques.
IGéométrie2 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGéométrie3 Fournit un accès rapide à l'étendue d'une géométrie dans le plan x-y.
IGéométrie4 Donne accès aux méthodes qui indiquent si une géométrie a été modifiée (éditée, projetée, etc.).
IGéométrie5 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGeometryCollection Fournit un accès aux membres qui peuvent être utilisés pour accéder, ajouter et supprimer des géométries individuelles d'une géométrie en plusieurs parties (Multipoint, Polyline, Polygon, MultiPatch et GeometryBag).
IHitTest Permet d'accéder aux membres qui localisent une partie d'une géométrie la plus proche d'un point.
Je suis au courant Interface d'indicateur qui identifie les objets géométriques pouvant avoir des valeurs M persistantes attachées à leurs sommets.
IMCollection Fournit un accès aux membres qui contrôlent les opérations sur les multipoints, polylignes, polygones et multipatchs M-aware.
Segmentation IMS Permet d'accéder aux membres pour définir un système de coordonnées linéaires basé sur M sur une polyligne ou un polygone.
IMSegmentation2 Donne accès à des opérations de référencement linéaire supplémentaires sur les polylignes.
IMSegmentation3 Donne accès à des opérations de référencement linéaire supplémentaires sur les polylignes.
IMSegmentation4 Donne accès à des opérations de référencement linéaire supplémentaires sur les polylignes.
IMSnap Fournit l'accès à une méthode qui aligne les ms de la géométrie sur la précision de la référence spatiale associée à la géométrie.
IPersiste Définit la méthode unique GetClassID, conçue pour fournir le CLSID d'un objet pouvant être stocké de manière persistante dans le système. IPersist est l'interface de base de trois autres interfaces : IPersistStorage, IPersistStream et IPersistFile.
IPersistStream (esriSystem)
IPointCollection Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointCollection3 Fournit un accès aux membres qui manipulent les points d'un multipoint.
IPointCollection4 Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointIDAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs d'ID de point persistantes attachées aux coordonnées.
IPolycurve Permet d'accéder aux membres qui définissent les opérations communes aux polylignes et aux limites des polygones.
IPolycurve2 Fournit un accès aux membres qui étendent IPolycurve avec des méthodes de fractionnement et de densification supplémentaires.
IPolycurve3D Fournit un accès aux membres qui définissent les opérations communes aux polycourbes avec des Z.
IPolycurve4 Fournit des opérations géodésiques sur les courbes.
IPolycurveGéodésique Fournit diverses opérations géodésiques sur les courbes.
IPolyline Fournit un accès aux membres qui identifient et ajoutent un comportement à un objet polyligne.
IPolyline2 Fournit l'accès aux membres qui étendent un objet polyligne.
IPolyline3 Fournit l'accès aux membres qui étendent un objet polyligne.
IPolyline4 Fournit l'accès aux membres qui étendent un objet polyligne.
IPolyline5 Fournit l'accès aux membres qui étendent un objet polyligne.
IProximityOperator Fournit un accès aux membres qui trouvent la distance 2D entre deux géométries.
IProximityOperator3D Fournit un accès aux membres qui trouvent la distance 3D entre deux géométries avec des Z.
IOpérateurRelationnel Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries.
IOpérateurRelationnel2 Fonctions relationnelles supplémentaires.
IRelationalOperator3D Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
IOpérateurRelationnel3D2 Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
ISegmentCollection Permet d'accéder aux membres qui manipulent les segments d'un tracé, d'un anneau, d'une polyligne ou d'un polygone.
ISpatialIndex2 Fournit un accès aux membres qui créent un index spatial temporaire pour améliorer les performances de "Disjoint" et de certains autres opérateurs relationnels.
ISupportErrorInfo Indique si une interface spécifique peut renvoyer des objets d'erreur Automation.
Opérateur ITopologique Fournit un accès aux membres pour la construction de nouvelles géométries en fonction des relations topologiques entre les géométries existantes.
IOpérateuropologique2 Fournit un accès aux membres qui étendent l'interface ITopologicalOperator.
IOpérateuropologique3 Fournit des informations supplémentaires sur les géométries non simples.
IOpérateuropologique4 Fournit des informations supplémentaires sur les géométries non simples.
Opérateur Itopologique5 Fournit des informations supplémentaires sur les géométries non simples.
IOpérateuropologique6 .
ITransform2D Donne accès à des méthodes de transformation de géométries à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires (transformations affines, transformations géographiques, etc.).
ITransform3D Fournit un accès aux méthodes de transformation de géométries 3D à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires.
IXMLSerialize (esriSystem) Fournit un accès aux membres que XML sérialise et désérialise un objet vers/depuis XML.
IZ Fournit un accès aux membres qui identifient les objets géométriques pouvant avoir des coordonnées 3D et définit les opérations sur ces objets.
IZ2 Permet d'accéder à des membres supplémentaires qui identifient les objets géométriques pouvant avoir des coordonnées 3D et définissent les opérations sur ces objets.
IZAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs Z persistantes attachées à leurs sommets.
IZCollection Permet d'accéder aux opérations sur les géométries compatibles Z.

objet statique privé _missing = Type .Missing

IGeometry statique public GetPolylineGeometry()

const double PathCount = 3
const double PathVertexCount = 3

IGeometryCollection geometryCollection = new PolylineClass ()


CoClasse multipoint

Une collection ordonnée de points a éventuellement des attributs de mesure, de hauteur et d'ID.

La disponibilité des produits

Plateformes prises en charge

Informations d'erreur étendues

Utilisez la méthode ISupportErrorInfo InterfaceSupportsErrorInfo pour déterminer si l'objet prend en charge les informations d'erreur étendues. Si l'objet prend en charge les informations d'erreur étendues, les développeurs VC++ doivent utiliser l'interface OLE/COM IErrorInfo pour accéder à l'objet ErrorInfo. Les développeurs Visual Basic doivent utiliser l'objet d'erreur globale Se tromper pour récupérer ces informations d'erreur étendues.

Interfaces

Interfaces La description
IClone (esriSystem) Fournit l'accès aux membres qui contrôlent le clonage des objets.
IConstructMultipoint Fournit un accès aux membres qui construisent plusieurs points à l'aide d'autres géométries et valeurs.
Igéométrie Permet d'accéder aux membres qui décrivent les propriétés et le comportement de tous les objets géométriques.
IGéométrie2 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGéométrie3 Fournit un accès rapide à l'étendue d'une géométrie dans le plan x-y.
IGéométrie4 Donne accès aux méthodes qui indiquent si une géométrie a été modifiée (éditée, projetée, etc.).
IGéométrie5 Fournit un accès aux membres qui étendent l'interface IGeometry avec une méthode de projection plus sophistiquée.
IGeometryCollection Fournit un accès aux membres qui peuvent être utilisés pour accéder, ajouter et supprimer des géométries individuelles d'une géométrie en plusieurs parties (Multipoint, Polyline, Polygon, MultiPatch et GeometryBag).
IHitTest Permet d'accéder aux membres qui localisent une partie d'une géométrie la plus proche d'un point.
Je suis au courant Interface d'indicateur qui identifie les objets géométriques pouvant avoir des valeurs M persistantes attachées à leurs sommets.
IMCollection Fournit un accès aux membres qui contrôlent les opérations sur les multipoints, polylignes, polygones et multipatchs M-aware.
IMSnap Fournit l'accès à une méthode qui aligne les ms de la géométrie sur la précision de la référence spatiale associée à la géométrie.
IMultipoint Interface d'indicateur qui identifie un objet multipoint.
IPersiste Définit la méthode unique GetClassID, conçue pour fournir le CLSID d'un objet pouvant être stocké de manière persistante dans le système. IPersist est l'interface de base de trois autres interfaces : IPersistStorage, IPersistStream et IPersistFile.
IPersistStream (esriSystem)
IPointCollection Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointCollection2 Fournit un accès aux membres qui manipulent les points d'un multipoint.
IPointCollection3 Fournit un accès aux membres qui manipulent les points d'un multipoint.
IPointCollection4 Fournit l'accès aux membres qui manipulent les points d'un Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip ou MultiPatch.
IPointCollection5 Fournit un accès aux membres qui manipulent les sommets en tant que structures point + attribut légères (VA - attribut de sommet)
IPointIDAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs d'ID de point persistantes attachées aux coordonnées.
IProximityOperator Fournit un accès aux membres qui trouvent la distance 2D entre deux géométries.
IProximityOperator3D Fournit un accès aux membres qui trouvent la distance 3D entre deux géométries avec des Z.
IOpérateurRelationnel Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries.
IOpérateurRelationnel2 Fonctions relationnelles supplémentaires.
IRelationalOperator3D Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
IOpérateurRelationnel3D2 Fournit un accès aux membres qui déterminent si une certaine relation spatiale existe entre deux géométries avec des Z.
ISpatialIndex Fournit un accès aux membres qui créent un index spatial temporaire pour améliorer les performances de "Disjoint" et de certains autres opérateurs relationnels.
ISupportErrorInfo Indique si une interface spécifique peut renvoyer des objets d'erreur Automation.
Opérateur ITopologique Fournit un accès aux membres pour la construction de nouvelles géométries en fonction des relations topologiques entre les géométries existantes.
IOpérateuropologique2 Fournit un accès aux membres qui étendent l'interface ITopologicalOperator.
IOpérateuropologique6 .
ITransform2D Donne accès à des méthodes de transformation de géométries à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires (transformations affines, transformations géographiques, etc.).
ITransform3D Fournit un accès aux méthodes de transformation de géométries 3D à l'aide de paramètres spécifiques ou d'objets de transformation arbitraires.
IXMLSerialize (esriSystem) Fournit un accès aux membres que XML sérialise et désérialise un objet vers/depuis XML.
IZAware Interface d'indicateur qui identifie les géométries pouvant avoir des valeurs Z persistantes attachées à leurs sommets.
IZCollection Permet d'accéder aux opérations sur les géométries compatibles Z.

Remarques

Remarque : L'ordre des points et leur nombre peuvent être modifiés par ITopologicalOperator::Simplify. Simplifier trie les points par X et Y et supprime les doublons.

objet statique privé _missing = Type .Missing

IGeometry statique public GetMultipointGeometry()

const double MultipointPointCount = 25

IPointCollection pointCollection = new MultipointClass ()


Voir la vidéo: Point density in Arcgis (Octobre 2021).