=== Format des fichiers .map === - Version du document (= version du format) : 4 - Sauf mention contraire, les entiers sont codés en big endian (compatible DataOutputStream). [No d'octets] = signification [0-3] = Magic number 0xbacaff (doit se trouver au début du fichier) [4-7] = Version du format [8-11] = Identifiant de carte [12-15] = Numéro de zone [16-19] = Nombre de descripteurs dans ce fichier [20-23] = Nombre de noeuds dans ce fichier [24-..] = * Tous les noeuds, les uns après les autres, en commençant par le numéro 0. Voir le format d'un noeud. * Puis un octet à 255. * Puis, tous les descripteurs, les uns après les autres, en commençant par le numéro 0. Voir le format des descripteurs. * Puis un octet à 254. * Puis, toutes les routes sortantes (routes sortantes du premier noeud, puis celles du deuxième noeud, etc. ) * Puis un octet à 253. (fin du fichier) === Format des noeuds === [0-3] = longitude sur 32 bits (à diviser par 1E6) [4-7] = latitude sur 32 bits (à diviser par 1E6) [8] = Nombre de routes sortantes sur 8 bits === Format des routes sortantes (taille variable car dépend du nombre de segments) === [0] = Numéro de zone du noeud destination (8 bits) [1-3] = Numéro du noeud destination, dans la zone donnée (24 bits, big endian) [4-6] = Numéro de descripteur (24 bits) [7-8] = Longueur de l'arête (16 bits), en mètres, prenant en compte tous les segments. [9-10] = Nombre de segments (16 bits), éventuellement 0. [11-...] = Segments === Format des segments === [0-1] = Delta de longitude, sur 16 bits signés (à diviser par 2.0E5) [2-3] = Delta de latitude, sur 16 bits signés (à diviser par 2.0E5) === Format des descripteurs (la taille est variable, car elle dépend du nom du chemin) === [0] = Un caractère indiquant le type de chemin (voir dans Descripteur.java) [1] .bit 7 = sens unique .bits 0-6 = vitesse max en km/h à multiplier par 5. [2-] = Nom du chemin, de type String-UTF8 (les deux premiers octets donnent la longueur de la chaîne)