N-Ways
Documentation développeursPacks hors connexion

Packs hors connexion

Des cartes qui marchent même quand le réseau tombe : téléchargez une ville ou une zone de livraison à l’avance, en Wi-Fi.

Sur cette page

Les livreurs perdent le réseau sous les ponts, dans les marchés et à la sortie des villes. Un pack hors connexion contient la carte et les données d’itinéraire d’une région, téléchargées à l’avance (en Wi-Fi, au dépôt), pour que votre appli livreur continue d’afficher la carte et de calculer des itinéraires sans connexion.

Remarque :

Les packs hors connexion sont fournis avec le suivi de flotte (offre sur accord). Référence

Ce que contient un pack

FichierCe que c’estAvec quoi l’ouvrir
map.pmtilesLa carte vectorielle de la région jusqu’au zoom 15, les mêmes tuiles que celles dessinées par les SDK MapsMapLibre Native (pmtiles:// sur un fichier local), ou les SDK Android et iOS
routing.tarLe graphe routier de la région, pour le calcul d’itinéraires sur l’appareilUn moteur d’itinéraires embarqué qui lit les tuiles Valhalla

Un pack est reconstruit quand la carte ou le graphe routier change : sa version change, et chaque fichier indique sa taille et son SHA-256, pour que votre appli ne télécharge que ce qui a changé.

Télécharger un pack

  1. GET /maps/v1/fleet/offline/regions liste les régions prêtes à l’emploi (Lagos, Abuja, Ibadan, Port Harcourt, Kano, Accra, Kumasi, Cotonou, Lomé, Libreville, Abidjan, Monrovia, Conakry, Freetown, Bissau, Dakar, Douala, Yaoundé, Ouagadougou, Bobo-Dioulasso, Praia, Mindelo et d’autres) avec leurs emprises. Pour votre propre zone de livraison, demandez la région custom-<minLng>_<minLat>_<maxLng>_<maxLat> : 0,6° de large au plus, sur une grille de 0,05°.
  2. GET /maps/v1/fleet/offline/packs/{region} donne le manifeste. Un 202 signifie qu’il est en cours de construction : redemandez après Retry-After secondes.
  3. Téléchargez chaque fichier depuis son url avec votre clé. Les téléchargements peuvent être repris avec l’en-tête HTTP Range, et l’ETag est l’empreinte du fichier.
cURL
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos" -H "X-NWays-Api-Key: VOTRE_CLE_APPLI"

L’afficher sur la carte

Faites pointer la source vectorielle du style vers le fichier téléchargé. Avec les SDK N-Ways, téléchargez aussi une fois le style hébergé et remplacez-y l’adresse des tuiles par le fichier local :

Android
// La carte du pack, enregistrée dans les fichiers de l’appli.
val local = "pmtiles://file://" + File(filesDir, "packs/lagos/map.pmtiles").absolutePath
val style = savedStyleJson.replace(Regex("pmtiles://https://[^\"]+"), local)
map.setStyle(Style.Builder().fromJson(style))

À garder en tête

  • Les packs sont destinés aux utilisateurs de vos propres applis, pas à la redistribution. La mention OpenStreetMap reste affichée sur la carte.
  • La recherche et les tarifs de course ont besoin du réseau ; prévoyez-le (mettez en cache les adresses de la journée avant de partir).
  • Mettez les packs à jour chaque semaine : les routes, les interdictions et les sens uniques changent.