Name

ValidateTopology — Renvoie un ensemble d'objets validatetopology_returntype détaillant les problèmes liés à la topologie.

Synopsis

setof validatetopology_returntype ValidateTopology(varchar toponame, geometry bbox);

Description

Renvoie un ensemble d'objets validatetopology_returntype détaillant les problèmes de topologie, en limitant éventuellement la vérification à la zone spécifiée par le paramètre bbox.

La liste des erreurs possibles, ce qu'elles signifient et ce que représentent les identifiants renvoyés est affichée ci-dessous :

Erreurid1id2Signification
nœuds coïncidentsIdentifiant du premier nœud.Identifiant du second nœud.Deux nœuds ont la même géométrie.
l'arête croise le nœudIdentifiant de l'arête.Identifiant du nœud.Une arête a un nœud à l'intérieur. Voir ST_Relate.
arête invalideIdentifiant de l'arête. La géométrie d'une arête n'est pas valide. Voir ST_IsValid.
l'arête n'est pas simpleIdentifiant de l'arête. Une géométrie d'arête possède des auto-intersections. Voir ST_IsSimple.
une arête croise une arêteIdentifiant de la première arête.Identifiant de la deuxième arête.Deux arêtes ont une intersection intérieure. Voir ST_Relate.
arête début nœud géométrie inadéquateIdentifiant de l'arête.Identifiant du nœud de départ indiqué. La géométrie du nœud indiqué comme nœud de départ d'une arête ne correspond pas au premier point de la géométrie de l'arête. Voir ST_StartPoint.
arête extrémité nœud géométrie non conformeIdentifiant de l'arête.Identifiant du nœud final indiqué. La géométrie du nœud indiqué comme nœud final d'une arête ne correspond pas au dernier point de la géométrie de l'arête. Voir ST_EndPoint.
face sans arêtesIdentifiant de la face orpheline.  Aucune arête ne signale une face existante sur l'un ou l'autre de ses côtés (face_gauche, face_droite).
la face n'a pas d'anneauxIdentifiant de la face partiellement définie.  Les arêtes rapportant une face sur leurs côtés ne forment pas un anneau.
la face n'a pas le bon mbr (minimum bounding rectangle)Identifiant de la face avec un cache mbr (minimum bounding rectangle) erroné.  Le rectangle minimal de délimitation d'une face ne correspond pas au rectangle minimal de délimitation de la collection d'arêtes rapportant la face sur leurs côtés.
le trou n'est pas dans la face annoncéeIdentifiant signé d'une arête, identifiant l'anneau. Voir GetRingEdges.  Un anneau d'arêtes rapportant une face sur son extérieur est contenu dans une face différente.
le nœud non isolé a une face non-contenanteIdentifiant du nœud mal défini.  Un nœud signalé comme étant à la limite d'une ou plusieurs arêtes indique une face contenante.
le nœud isolé a une face contenanteIdentifiant du nœud mal défini.  Un nœud qui n'est pas signalé comme étant à la limite d'une arête n'a pas l'indication d'une face contenante.
Le nœud isolé n'a pas la bonne face contenanteIdentifiant du nœud mal représenté.  Un nœud qui n'est pas signalé comme étant à la limite d'une arête indique une face contenante qui n'est pas la face réelle qui le contient. Voir GetFaceContainingPoint.
next_right_edge invalideIdentifiant de l'arête mal représentée. Identifiant signé de l'arête qui doit être indiqué comme la prochaine arête droite. L'arête indiquée comme le prochaine arête rencontrée en évoluant sur le côté droit d'une arête est faux.
next_left_edge invalideIdentifiant de l'arête mal représentée. Identifiant signé de l'arête qui doit être indiquée comme l'arête gauche suivante. L'arête indiquée comme la prochaine arête rencontrée en évoluant sur le côté gauche d'une arête est faux.
étiquetage mixte des faces dans l'anneauIdentifiant signé d'une arête, identifiant l'anneau. Voir GetRingEdges.  Les arêtes d'un anneau indiquent des faces conflictuelles dans le sens de la progression. C'est ce que l'on appelle un "Side Location Conflict" (Conflit d'emplacement latéral).
anneau non ferméIdentifiant signé d'une arête, identifiant l'anneau. Voir GetRingEdges.  Un anneau d'arêtes formé par les attributs next_left_edge/next_right_edge commence et se termine sur différents nœuds.
la face a plusieurs enveloppesIdentifiant de la face contestée. Identifiant signé d'une arête, identifiant l'anneau. Voir GetRingEdges. Plus d'un anneau d'arêtes indique la même face à l'intérieur.

Disponibilité : 1.0.0

Amélioration : 2.0.0 détection plus efficace des croisements d'arêtes et correction des faux positifs qui existaient dans les versions précédentes.

Modifié : 2.2.0 les valeurs pour id1 et id2 ont été échangées pour "edge crosses node" pour être cohérent avec la description de l'erreur.

Modifié : 3.2.0 a ajouté le paramètre optionnel bbox, effectuant des vérifications de l'étiquetage des faces et de la liaison des arêtes.

Exemples

SELECT * FROM  topology.ValidateTopology('ma_topo');
      error        | id1 | id2
-------------------+-----+-----
face without edges |   1 |
                                

Voir aussi

validatetopology_returntype, Topology_Load_Tiger