be-graphes/FORMAT
2018-01-29 12:35:24 +01:00

62 lines
2.1 KiB
Plaintext

=== 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)