← Retour à ZMap
Vitesses par route
La base de données interne de ZMap · comment elle est construite et
ce qu'elle contient
🧭 Fonctionnalité de navigation. ZMap rattache chaque
point de votre itinéraire à sa route réelle et lit sa limite de vitesse
dans une base de données locale de toute l'Europe — puis la garde en
cache sur votre téléphone pour la conduite hors-ligne.
Le principe
La plupart des applications de navigation ont besoin d'une connexion
pour connaître la vitesse autorisée. ZMap fait différemment : une base
de données des limites de vitesse est construite par route à
partir des données OpenStreetMap, puis embarquée côté serveur. Quand
un itinéraire est calculé, chaque point du trajet est rattaché à la
route la plus proche et reçoit sa vitesse. L'itinéraire complet — y
compris ses vitesses — est ensuite mis en cache sur le téléphone :
pendant la conduite, plus aucune requête réseau n'est nécessaire.
90,5 Mpoints échantillonnés
3,6 M kmde routes avec vitesse connue
5 104cellules de 0,5° × 0,5°
370 Mogrille compressée (gzip)
40 méchantillonnage le long des routes
5 opar point (lon, lat, vitesse)
Comment c'est construit
-
Source : l'extrait Europe d'OpenStreetMap
(Geofabrik, 34,8 Go) contient 98,2 millions de routes
(
highway).
-
Filtrage :
osmium tags-filter ne garde
que les routes (8,5 Go), puis seules celles portant une vitesse
(maxspeed) sont conservées — environ 13 millions.
-
Échantillonnage : un point est posé tous les
40 mètres le long de chaque route, avec sa vitesse en km/h.
-
Indexation : l'Europe est découpée en cellules de
0,5° de côté (≈ 55 km), elles-mêmes subdivisées en 32 × 32. Chaque
point est quantifié sur ~0,76 m et stocké sur 5 octets, puis la
cellule est compressée en gzip : 90,5 millions de points en 370 Mo
au total.
Le tout est reproductible : le script de construction
(build_maxspeed.py) tourne de bout en bout sur un petit
serveur.
Ce qu'il y a dedans
Répartition des points par limite de vitesse (extrait des valeurs les
plus courantes) :
| Limite | Part des points | |
| 50 km/h | 26,2 % | |
| 30 km/h (zones 30) | 18,5 % | |
| 90 km/h | 9,5 % | |
| 80 km/h | 9,2 % | |
| 70 km/h | 6,0 % | |
| 60 km/h | 5,7 % | |
| 100 km/h | 4,6 % | |
| 40 km/h | 3,3 % | |
| 48 km/h (30 mph, RU) | 2,8 % | |
| 97 km/h (60 mph, RU) | 2,4 % | |
| 32 km/h (20 mph, RU) | 2,1 % | |
| 20 km/h (zones piétonnes) | 2,1 % | |
| 120 km/h | 1,8 % | |
| 130 km/h (autoroutes) | 1,7 % | |
| 110 km/h | 1,4 % | |
Valeurs numériques présentes dans OpenStreetMap. Les vitesses
réelles peuvent différer (travaux, panneaux temporaires, conditions
météo). Les autoroutes sans limite (ex. certaines portions allemandes)
n'ont pas de maxspeed : ZMap n'affiche alors aucune
vitesse.
Côté application
Le serveur renvoie, avec chaque itinéraire, un tableau de vitesses
aligné sur les points du tracé (une valeur par point). Le téléphone
enregistre tout dans son cache local : pendant la conduite, la limite
du tronçon courant est lue sans réseau, et le mode hors-ligne garde
tout le trajet. Le rattachement d'un trajet de 4 500 points prend
environ 170 ms sur le serveur.
Précision et couverture
- Couverture : Europe entière, longitude −12° à 46°, latitude 27° à 72°.
- Rattachement : la route la plus proche à moins de 40 m du point.
- Localisation d'un point : précision ≈ 0,76 m.
- Données : OpenStreetMap, libre de droits (licence ODbL).