Skip to content

FR—Routing

Antonin Del Fabbro edited this page Feb 4, 2024 · 1 revision

en partant du fichier routing.xml utilisé par OsmAnd pour tous ses profils par défaut et proposé ici

ne conserver que la partie concernant l'auto pour nos 3 usages

  • moto lourde (pneus très routier)
  • moto légère "trail" (pneus 50/50)
  • moto d'enduro

pour suivre les catégories de chemins définies dans le style d'affichage.

parmi les paramètres importants, <attribute name="heuristicCoefficient" value="3.4" /> joue énormément sur la vitesse de calcul d'un itinéraire d'une part et sur sa "conformité" aux critères exprimés ensuite (bien sur c'est inversement proportionnel !!!
plus il est élevé moins les résultats sont "précis" par rapport à un idéal temps/distance entre 2 points.)
ce que j'ai constaté en testant

  • plus le chiffre est élevé plus le calcul est rapide ( de plusieurs minutes à quelques secondes entre 1.4 et 7.0)
  • plus le chiffre est élevé plus le résultat du calcul diffère entre mon téléphone et mon émulateur (10 % pour une valeur de 7.0)
  • plus le chiffre est élevé plus il apparait des "aberrations" type passerelle piéton ou bout de piste cyclable ici la valeur 3.4 présente un bon compromis vitesse de calcul/choix de chemins, vous pouvez expérimenter d'autres valeurs à volonté.

la partie "routage"

est dans ce bloc qui englobe tous les autres blocs décris après.

<routingProfile name="gros_trail" baseProfile="car" restrictionsAware="true" minSpeed="1" defaultSpeed="30.0" maxSpeed="90.0" sharpTurn="" slightTurn="" roundaboutTurn="" followSpeedLimitations="false" onewayAware="true">
	.....
</routingProfile>

au début de ce bloc les options dans le menu "Paramètres de guidage" puis ""Paramètres de l'itinéraire" et enfin "Eviter les routes" du profil auquel sera affecté ce routage, comme ici "pas de chemins" du routage gros trail

<parameter id="avoid_track" name="pas de chemins" description="evite les chemins" type="boolean" default="false"/>

qui se traduit comme ça à l'utilisation

no_chemins

et renvoi au bloc "avoid_track" du bloc "priority" (voir plus loin)

			<if param="avoid_track">
				<select value="0.55" t="tracktype" v="grade2"/>
				<select value="0.6" t="tracktype" v="grade1"/>
			</if>

ou chaque value="..." défini la préférence pour le routage.

le bloc "access"

 		<way attribute="access">
			<select value="-1" t="osmand_change" v="delete"/>
			<select value="-1" t="construction" v="yes"/>
			<select value="-1" t="smoothness" v="impassable"/>
			<select value="-1" t="highway" v="path"/>

défini par oui (1) ou non (-1) l'accès et la prise en compte pour le guidage. (les if permettent un choix relatif à une option définie au début)
mettez ici tous les ways (routes, chemins, sentiers) ou tags que vous ne voulez pas emprunter.
c'est ici que ce décide le respect ou non des interdictions, avec des <if> pour le "private".

le bloc "oneway"

est repris du défaut OsmAnd, à moins de vouloir rouler à contre-sens pas besoin de le modifier.

le bloc "speed"

permet d'obtenir un ETA (estimation du temps pour arriver) le plus réaliste possible

MAIS SURTOUT permet de définir la hiérarchie de base de choix des voies à emprunter par le calcul, le plus rapide étant toujours le premier choix du moteur.

le bloc "priority"

est le plus important de tous pour le choix des chemins avec ses sous-blocs.

le choix de voies par le moteur s'effectue comme ceci
vitesse max du profil divisée par vitesse de la voie (définie dans le bloc "speed") x priorité donnée dans ce bloc

  • vitesse max profil =90
  • vitesse tracktype grade1 =45
  • priorité tracktype grade1 =2 (une valeur supérieure sera sans effet) avec des routes dont la priorité est très faible (de 0.2 à 0.5) les chemins qui possèdent le tag "tracktype=grade1" sont favorisés au maximum

le principe consiste à donner une préférence à chaque éléments comprise entre 0 et 1 et au delà de 1,
si "1" le moteur de calcul de routage n'applique pas de pénalité et utilise la vitesse définie dans le bloc "speed",
si 0.x le moteur diminuera le vitesse de cet élément,
si supérieur à 1 la vitesse de l'élément sera augmentée du facteur défini (je vous renvoi à l'aide incluse dans le fichier de routage d' OsmAnd)

le bloc "obstacle"

interdit ou pénalise en fonction d'éléments présents dans osm et listés dans le bloc

le bloc "penalty_transition"

ne présente pas d'intérêt pour notre usage (voir doc dans le fichier routing.xml d' OsmAnd)

des infos pour modifier le routage petit_trail