ValidateTopology — Renvoie un ensemble d'objets validatetopology_returntype détaillant les problèmes liés à la topologie.
setof validatetopology_returntype ValidateTopology(varchar toponame, geometry bbox);
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 :
| Erreur | id1 | id2 | Signification |
|---|---|---|---|
| nœuds coïncidents | Identifiant 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œud | Identifiant de l'arête. | Identifiant du nœud. | Une arête a un nœud à l'intérieur. Voir ST_Relate. |
| arête invalide | Identifiant 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 simple | Identifiant 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ête | Identifiant 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équate | Identifiant 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 conforme | Identifiant 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êtes | Identifiant 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'anneaux | Identifiant 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ée | Identifiant 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-contenante | Identifiant 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 contenante | Identifiant 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 contenante | Identifiant 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 invalide | Identifiant 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 invalide | Identifiant 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'anneau | Identifiant 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 enveloppes | Identifiant 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.
SELECT * FROM topology.ValidateTopology('ma_topo');
error | id1 | id2
-------------------+-----+-----
face without edges | 1 |