Vous êtes ici
intersector
Calcule les intersections entre toutes les entités entrant et coupe les polygones et lignes à chaque intersection rencontrée. De plus, tous les segments superposés sont réduits à un seul segment en sortie.
Ports de sortie
- INTERSECTED : Les entités intersectées ressortent par ce port. Si le paramètre Nom de la liste a été précisé, ces entités ont un attribut contenant le nombre d'entités superposées. Les coordonnées sont prises à partir de valeurs d'attributs de l'entité d'origine.
- NODE (Noeud) : L'emplacement de toutes les intersections sont représentées par des points ressortant par ce port. Les paramètres du Transformer permettent de définir quels attributs seront inclus dans les entités en sortie.
Paramètres
Regrouper par
Si vous sélectionner regrouper par, alors seulement les entités du même groupe seront accrochées ensemble. Sinon, toutes les entités seront traitées.
Dupliquer les noeuds pour chaque Z
Le cas échéant, la création de noeuds peut être calculée en 3D. Construire des noeuds en 3D signifie que les segments partagent un noeud s'ils partagent la même valeur Z au niveau du point d'intersection. Construire des noeuds 2D signifie que tous les segments intersectés partagent un noeud commun indépendamment de leurs valeurs Z.
Considérons, par exemple, une situation où deux lignes (qui se croisent) représentent des routes, dont une passe via un viaduc. Supposons que ces deux lignes ont des élévations différentes. Si vous avez construit des nœuds en 3D, ces deux routes ne seront pas liée par un même nœud. Deux nœuds seront créés au point de croisement, chacun avec des valeurs Z différentes. Si vous avez construits des noeuds en 2D, alors ces lignes seront liées à un noeud commun situé à l'emplacement de leur croisement. Dans les deux cas 2D et 3D, la dimension des entités entrants est préservée dans les entités résultants, les entités 3D ne sont jamais convertit en 2D.Le choix de la 2D ou 3D indique seulement la manière dont les nœuds sont créés et quelles lignes sont connectées à ces derniers, il n'affecte pas la dimension des entités en sortie.
Si le paramètre DUPLIQUER LES NOEUDS POUR CHAQUE Z est mis à "Oui", alors si des lignes 3D s'intersectent à différentes altitudes, deux noeuds 2D sont générés par le port NODE.Chaque noeud aura les mêmes coordonnées x et y mais avec un numéro de noeud différent.
Si ce paramètre est mis à "Non", alors si des lignes 3D s'intersectent à différentes altitudes, un seul noeud est généré par le port NODE à l'emplacement de l'intersection.
Attribut nombre de superpositions
L'Attribut nombre de superposition est ajouté à chaque ligne. Il contient le nombre de lignes qui se superposaient dans les entités en entrée sur la ligne en sortie.
Attribut nombre de segments
Le paramètre ATTRIBUT NOMBRE DE SEGMENTS permet de définir le nom d'un attribut ajouté par le Transformer et qui contient le nombre de lignes découpées provenant de l'entité d'origine.
Le paramètre ATTRIBUT NOMBRE DE SEGMENTS permet de définir le nom d'un attribut ajouté par le Transformer et qui contient le nombre de lignes découpées provenant de l'entité d'origine.
Nom liste
Si le NOM DE LA LISTE est fourni, FME génère une liste des attributs de toutes les lignes qui se superposaient sur l'entité en sortie. Cette liste permet une analyse ultérieure des attributs des lignes superposées.
Distinguer les segments colinéaires
L'option DISTINGUER LES SEGMENTS COLINEAIRES permet de ne pas fusionner les segments superposés en un seul, une copie de chaque entité à l'origine du segment est générée.Chacun de ces segments aura les attributs de l'entité d'origine et les attributs des autres entités colinéaires seront ajoutés comme une liste d'attributs si le nom de la liste aura été fournie.
Chacun de ces segments aura les attributs de l'entité d'origine et les attributs des autres entités colinéaires seront ajoutés comme une liste d'attributs si le nom de la liste aura été fournie.
Découper les auto-intersections
Lorsque le paramètre DECOUPAGE DES AUTO-INTERSECTIONS vaut "oui", les auto-intersections des entités entrantes sont supprimées par découpage des entités.
Aucune comparaison Entités à entités n'est créée. Dans ce cas, la valeur définie dans l'attribut compte de croisement sera le nombre d'entités résultantes de la suppression des autointersections. Si l'entité ne s'autointersecte pas, l'attribut vaudra 1.
Si le segment contient plusieurs superpositions d'entités en entrée, les attributs de chaque entité entrante seront ajoutés à l'entité dans la liste identifiée par le paramètre Nom de la liste. Dans tous les cas, chaque entité sortant du Transformer conservent les attributs de l'entité d'origine.Ce Transformer ajoute également un attribut "direction" pour chaque attribut résultant du paramètre Nom de la liste, l'étiquetant "same" si la géométrie est orientée dans la même direction et "opposite" si la géométrie est orientée dans le sens opposée.
Exemple

Utiliser Intersector et ListConcatenator pour résoudre ces problèmes
Que faire si vous avez des routes centrales et que à chaque point d'intersection vous souhaitez connaître quelles sont les rues qui les rejoignent ? Le résultat sera un ensemble de points, chacun avec un attribut unique de chaîne de noms de rue séparés par des virgules.
Vous pouvez résoudre dans un projet orientant toutes les rues centrales dans Intersector. Définir ensuite les paramètres de Intersector de sorte à fournir un nom de liste, par exemple all_streets.
Supposons que les rues entrantes ont un attribut NAME.Les noeuds en sortie d'Intersector auront une liste non qualifiée nommée all_streets{}.NAME. Cette liste contiendra le nom de toutes les rues qui s'intersectent à chaque point (ou noeud) en sortie.
Pour retourner la liste de nom des rues dans un chaîne, ajouter le Transformer ListConcatenator et diriger l'entité NODE dedans. Ensuite, définir les paramètre de ListConcatenator de sorte à ce qu'il retourne la liste de tous les noms de rues séparés par des virgules dans l'attribut résultat. Puis, connecter ListConcatenor à un fichier en sortie, et s'assurer que l'attribut "result" soit bien connecté à un attribut en sortie. Lancer le traitement et vous obtiendrez le résultat escompté.
Notez que vous pouvez aussi avoir accès aux noms des rues en "exposant" certains éléments de la liste (par un clic droit sur l'attribut nom de la liste (dans notre exemple "all_streets{}.NAME")) et en définissant " exposer les éléments" et en entrant le nombre d'éléments à afficher. Par la suite, vous pourrez alors exploiter ces éléments dans votre traitement. L'inconvénient de cette méthode est que vous devez savoir à l'avance avec combien d'éléments de la liste vous souhaiter travailler -- ainsi si 3 rues s'intersectent au même noeud et que vous avez défini seulement 2 rues, vous devrez continuer par la suite votre projet de sorte à intégrer la troisième rue manquante.
Gestion de la géométrie
Si le paramètre avancé de workbench "Gestion de la géométrie" vaut "Riche", des arcs et des ellipses sont générés lors de l'intersection d'arcs et d'ellipses, sinon le résultat est de type linéaire (fme_line).
Implémentation
Fonction(s) de bas niveau utilisée(s) (Function ou Factory):IntersectionFactory

Ajouter un commentaire