• Aucun résultat trouvé

Cas des routes

Dans le document The DART-Europe E-theses Portal (Page 62-68)

7.3 Conversion de la donnée SIG en 3D

7.3.2 Cas des routes

Les routes sont décrites selon un chevelu de lignes. Chaque tronçon est géoréférencé et peut contenir des informations intéressantes pour leur conversion en 3D. En premier, la largeur de chaque tronçon doit être connue. Si elle n’est pas référencée dans les attributs du fichier contenant le chevelu routier, une autre information va être recherchée à la place : celle du nombre de voies. En prenant en compte une largeur par défaut de 3,5 mètres, nous arrivons à établir une largeur moyenne de la chaussée. Par contre, si aucune information n’est présente, nous considérons les tronçons comme des voies à double sens, donc avec une largeur de 7m.

Ce processus est couplé à un rattachement à la topographie sous-jacente. Afin qu’elle suive l’élévation du sol, une interpolation est calculée pour chaque sommet de chaque arc. Ce calcul n’est pas le seul lien entre la donnée topographique et la donnée routière. En effet, les triangles 3D générés pour afficher la topographie ne prennent pas en compte la présence de route ou de tout autre objet. Un problème survient lors de la superposition de ces deux données : les tronçons de routes ne sont pas découpés selon le découpage de la topographie. Nous nous retrouvons face au même problème que pour les bâtiments. Pour pallier ce défaut, les tronçons de routes sont découpés avant la conversion 3D selon les triangles de la topographie. L’étape d’après est la création de la topologie. Celle ci nous sert pour la partie simulation mais aussi pour la conversion en 3D du chevelu.

De la 2D à la 3D

Pour convertir ces tronçons linéaires en polygones, dans notre cas en triangles, considérons ces segments comme le centre de la chaussée. Pour chacun d’eux une mesure de l’angle est faite entre le Nième et son suivant . Cet angle servira de référence pour dessiner une bissectrice. Il y a alors 2 cas possibles :

— Le tronçon a un prédécesseur et un successeur : la mesure de l’angle est faite avec son prédécesseur et son successeur et sont tous deux stockés dans un tableau

— Le tronçon n’a qu’un prédécesseur ou un successeur : la mesure du prédécesseur ou du successeur est réalisée et pour le sommet opposé, un angle de 90˚est appliqué afin de clôturer la route.

Les deux cas de figures sont représentés sur la figure 39.

Figure 39 – Les bissectrices entre chaque tronçon servent à créer les polygones 2D pour la création de la route.

Cette procédure pour affecter les angles à chaque tronçon est réalisée lors de la création de la topologie sur le chevelu routier. Pour mieux appréhender la mise en place de cette procédure, l’algorithme CREER_TRIANGLE_ROUTE est présent dans l’annexe (voir E).

Une fois la conversion faite, la table contenant les routes est remplie de la manière décrite dans la figure 40. Cette table est chargée lors de la création d’itinéraires traitée dans le chapitre 9.

Figure 40 – La table route contient pour chaque tronçon, ses sommets, ses tronçons prédécesseurs et successeurs ainsi que les angles entre chacun de ces tronçons.

Les sommets de ces triangles n’ont pas d’élévation attribuée. Pour les renseigner, calculons

leur altitude avec l’interpolation IDW vue dans la partie 7.2. Nous n’utilisons pas l’interpolation de Laporte car nous avons besoin d’une valeur moyenne entre les points les plus proches afin d’avoir un calcul linéaire qui permettra de placer les points exactement sur la surface de la topographie. Puis, calculons les élévations seulement pour chaque extrémité du tronçon, c’est-à-dire que les points projetés de chacune des extrémités auront la même valeur d’élévation. Cela nous permet de ne pas avoir de pente ou de dévers sur les routes 3D, alors considérées comme plates.

Une fois les triangles de routes créés, des artefacts visuels apparaissent dans la scène 3D. En effet, chaque tronçon de route converti a une élévation égale à la topographie sous-jacente. Pour simplifier, nous avons des triangles de couleur grise plaqués sur la topographie. Afin de pallier ce problème il faudrait "creuser" la topographie afin d’inclure les routes à l’intérieur. Dans un même temps, cela permettrait la création des trottoirs de façon automatique. Le principe pour intégrer ces tronçons de route consiste à retirer dans un premier temps les triangles de topographie étant en intersection avec les triangles de routes. Ensuite, une triangulation est faite entre les triangles restants de la topographie et les triangles de routes. Pour finir, nous appliquons une profondeur à nos triangles de route pour créer les trottoirs. Nous choisissons une valeur par défaut, 20cm, afin que cela soit assez visible sur la vue 3D. Le processus, sans trottoir est illustré dans la figure 41

Figure 41 – Exemple d’incrustation de la route sur la topographie, Source : CGtricks.

Troisième partie

Méthodes et réalisations

Chapitre 8

Organisation du code

Nous avons choisi des librairies, un langage de programmation et un IDE, penchons nous maintenant sur l’organisation du code. Afin d’être le plus structuré et le plus clair face à une possible reprise du projet par un tiers, nous avons découpé le programme en blocs, chacun dédié à une partie majeure du logiciel. Ces sous-ensembles sont au nombre de quatre :

— La 3D,

— L’import de la donnée,

— L’export pour la sauvegarde de simulation

— Les outils dédiés à la géomatique et à la simulation.

8.1 La structure générale du projet

Le projet est découpé selon les fonctionnalités du logiciel lui-même. Chaque partie fonctionne de manière séquentielle avec les autres, les calculs ne sont pas faits en parallèle. Cela nous permet de suivre le cheminement de la donnée, de l’import à sa visualisation en passant par sa conversion.

8.2 Gestion des imports et de la conversion des fichiers

Dans le document The DART-Europe E-theses Portal (Page 62-68)