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 :

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.

Exemples

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