Gestion de la visualisation 2D

Dans le document The DART-Europe E-theses Portal (Page 73-77)

La visualisation 2D intègre l’API Qgis et permet l’affichage des données brutes. Nous y trouvons les liens avec les fonctions pour afficher ou non les données. Il y a aussi toute la gestion de l’interface. Elle fonctionne via des signaux et des slots. Ce sont des concepts proposés par la librairie Qt, qui permettent de gérer les événements liés à l’interface graphique. Les signaux sont les messages envoyés par un widget (boutons, liste déroulante, barre de menu, ...) lorsqu’un événement s’est produit, par exemple lorsque l’utilisateur appuie sur un bouton. Les slots sont les fonctions appelées lors de l’événement, en d’autres termes, le signal appelle le slot.

Concrètement, un slot est une méthode d’une classe.

Figure46 – Représentation des slots et des signaux, Source : OpenClassRoom

La figure 46 représente le fonctionnement entre les signaux et les slots. Le widget de l’exemple est un bouton sur une interface. Ce type de widget peut avoir deux signaux différents : le premier est lorsqu’il est ”appuyé”, c’est à dire que le clic de la souris est en cours, un des comportements usuels est alors son changement de couleur ; le second est celui de l’action décrite par le bouton, c’est-à-dire, lorsqu’il est "cliqué". Dans le cas de notre exemple, le bouton cliqué à une fonction, un slot, qui lui est reliée, appelée quit(). On peut imaginer que ce bouton est décrit par une petite croix ou par le mot "Fermer" dessus. L’action sera donc de clore la fenêtre courante.

Chapitre 9

Création du réseau routier et des objets 3D

9.1 Description de la donnée source

Comme vu dans le chapitre 2, la donnée source qui est utilisée pour gérer les trajets est un fichier SIG provenant d’OSM. Pour pouvoir l’utiliser, nous devons y appliquer des traitements pour la visualisation et pour la simulation. Lors de l’import des données, décrite dans le chapitre 7, de nombreux champs sont demandés à l’utilisateur pour pouvoir les utiliser lors du traitement.

La donnée OSM des routes comporte de nombreuses informations appelées tag. Ces derniers permettent de créer les conversions pour l’affichage 3D et pour la simulation.

9.1.1 Données pour la visualisation

Délimitation des voies

Pour filtrer les éléments linéaires des données d’OSM, le tag principal est highway. Sous ce nom se trouvent tous les tronçons de routes, des autoroutes aux chemins de forêt en passant par les voies sans issue ou les chemins privés. Afin de ne garder que les éléments nécessaires, un autre filtre est réalisé sur le type. Le tableau 10 recense les principales valeurs prises en compte.

Valeur Description Vitesse par défaut

motorway Autoroute : 2x2 voies 130 km/h

trunk Voie Rapide ou voie express : 2x2 voies 110 km/h

primary Route nationale : 2x1 voie 90 km/h ou 50km/h en ville secondary Route départementale : 2x1 voie 90 km/h ou 50km/h en ville tertiary Route ou rue reliant les villages : 2x1 voie 90 km/h ou 50km/h en ville tertiary Route ou rue reliant les villages : 2x1 voie 90 km/h ou 50km/h en ville motorway_link Bretelle d’accès ou de sortie d’autoroute : 1 voie non renseignée

trunk_link Voie d’accès à une voie rapide ou express : 1 voie non renseignée primary_link Voie d’accès à une route nationale : 1 voie non renseignée secondary_link Voie d’accès à une route départementale : 1 voie non renseignée tertiary_link Voie d’accès à une route de village : 1 voie non renseignée

Tableau 10 – Principales valeurs prises en compte pour la caractérisation des routes. Pour chacune des routes, des vitesses par défaut sont renseignées. Ce descriptif provient du wiki d’OSM1

Nous remarquons dans ce tableau que le nombre de voies est souvent renseigné via le type de route. Les autoroutes sont considérées comme des 2x2 voies, tout comme les voies rapides, tandis que les autres sont des voies 2x1 voie. Ces données nous permettent de dessiner de façon automatique les bordures des routes ainsi que les délimitations entre les différentes voies.

Pour commencer, les bordures sont ajoutées en utilisant le tronçon linéaire source comme référence et en appliquant une translation perpendiculaire a celui-ci pour les placer à 10cm du bord de la route.

Ensuite, le tronçon central est gardé pour faire la délimitation entre les voies lorsqu’elles ne sont pas de sens unique. Dans le cas ou plusieurs voies sont référencées, une division de la largeur est réalisée par le nombre de voies afin de placer les lignes pointillées permettant le dépassement de véhicules (voir figure 47).

Figure 47 – Capture d’écran des voiries avec marquages obtenues avec le logiciel

Dans le cas ou la route change de catégorie, par exemple d’une chaussée à 2 x 1 voie à une autoroute, les délimitations vont aussi changer. De nouvelles lignes pointillées délimitant les voies apparaissent, et une ligne blanche dessine la limite entre les deux sens de circulation (voir tableau 12).

Mobiliers urbains

Pour compléter la vue 3D, nous affichons les données concernant le mobilier urbain. Ces derniers sont référencées aussi dans le fichier contenant les routes d’OSM. Le tableau 11 résume les données que nous utilisons pour placer les différents mobiliers urbains.

Valeur Description

crossing Passage pour piétons

stop Panneau de stop

traffic_signals Feu de signalisation

traffic_signals :direction Direction du feu de signalisation à appliquer selon le sens du flux.

give_way Cédez le passage

Tableau 11 – Référence des mobiliers urbains dans le fichier contenant les routes

D’autres mobiliers urbains sont référencés dans ce fichier comme les arrêts de bus, les bornes d’appel d’urgence ou les radars fixes. Dans le cadre de cette étude nous avons choisi ceux présentés dans le tableau, et en particulier les feux de signalisation et les passages pour piétons.

Pour commencer, les feux tricolores sont placés selon les positions (x,y) des points contenus dans le fichier source. Ces objets 3D proviennent d’une bibliothèque libre d’accès. Ils sont

chargés une seule fois en mémoire et sont ensuite dupliqués à chaque position référencée dans le fichier source. Leur direction nous est donnée par la valeur traffic_signals :direction.

Les passages pour piétons, quant à eux sont dessinés à chaque indexation dans le fichier route. Nous prenons la largeur de la route et traçons des rectangles de 2,5m perpendiculaires aux tronçons de route avec une inter-distance de 50cm. Ces données sont les minimales définies par l’instruction interministérielle sur la signalisation routière2. Bien sûr, ces valeurs sont valables en France, et elles devront être adaptées selon le pays dans lequel la simulation est lancée.

Les panneaux stop sont aussi placés selon leur position (x,y). La direction est calculée en considérant la perpendiculaire au tronçon concerné. Afin de compléter le visuel nous ajoutons le tracé de la bande blanche signalant le stop sur la chaussée. Tout comme les passages pour piétons, cette peinture au sol suit des règles, donc son tracé sera de la longueur de la voie avec une largeur de 50cm.

Pour finir, les cédez le passage seront placés à l’extrémité du tronçon concerné. La peinture au sol est faite avec des carrés de 50cm par 50cm espacés de 50cm tout le long de la voie.

9.1.2 Données pour la simulation

Les données utilisées pour la simulation sont basées sur les informations énoncées dans la partie précédent. Nous allons décrire ici leurs utilisations dans ce contexte.

Le chevelu routier

Comme nous l’avons déjà décrit, le réseau routier est fourni avec une vision assez simpliste.

Un tronçon de route correspond à une chaussée pouvant comprendre une voie à sens unique, ou alors deux voies à sens opposés, ou même à plusieurs voies dans le cas des autoroutes ou voies rapides [21]. Visuellement, ces tronçons ne sont donc pas représentatifs de la réalité. Il faut donc en recréer selon les informations décrites sous le taghighway. Les références utilisées sont celles du tableau 10. Les conversions mises en place sont illustrées dans le tableau 12. Afin de garder un lien topologique (voir partie suivante) entre les tronçons suivants et prédécesseurs, nous stockons l’identifiant du tronçon source à chaque duplication (voir figure 48). En suivant la même logique nous attribuons la même limitation de vitesse à chacun des sous-tronçons.

Nombre de voies Représentation

Tableau 12 – Création de sous tronçons à partir d’un seul tronçon source

2. Instruction interministérielle sur la signalisation routière Livre 1, " 7e partie, Marques sur chaussées"

Comme on peut le remarquer dans ce tableau, le passage d’une voie à deux voies, ou le contraire, engendre la création d’un tronçon intermédiaire. En effet, afin de faire le lien entre un tronçon unique et deux autres, nous utilisons un tronçon avec un angle à 45˚pour créer un cheminement entre le premier tronçon et la deuxième voie. Le cas le plus courant est celui d’une chaussée à 2x1 voie passant à une voie rapide ou autoroute à 2x2 voies (4ème cas dans le tableau). Dans ce cas là le décalage est fait sur la droite du tronçon, en considérant le sens de circulation. En prenant en compte une conduite à droite, la route principale sera celle longeant le bord de la chaussée et la voie de gauche sera celle de dépassement. Elle sera utilisable si la voie principale est déjà occupée. Pour différencier les deux, un nouveau champ est ajouté dans la table TRoute (voir figure 48). La valeur par défaut choisie à zéro correspond au chemin principal et les voies secondaires, dites de dépassements, sont notées à 1 ou plus dans le cas où nous avons plus de voies dans la même direction. Le fait d’avoir plus de 2 voies n’est pas mis en place actuellement mais nous gardons cette possibilité dans le code.

Figure 48 – Structure de la table Route : afin de garder la continuité entre les tronçons nous ajoutons l’identifiant du tronçon principal dans la table, notéID tronc Principal. De plus le champ Chemin Principal permet de connaître la voie principale et les voies secondaires.

Dans le document The DART-Europe E-theses Portal (Page 73-77)