Flux de trafic et packs hors connexion
Les vitesses en direct pour vos systèmes, et les packs de carte que vos applications téléchargent pour marcher sans réseau.
Sur cette page
- Vitesses routières dans un cadre (produit traffic_feed ; entreprise)
- Régions pour lesquelles des packs hors connexion sont produits
- Le manifeste du pack d’une région (202 pendant sa production ; redemandez après Retry-After)
- Télécharger un fichier de pack (requêtes Range prises en charge ; ETag = son empreinte)
Envoyez votre clé avec key=VOTRE_CLE_API dans l’adresse, ou dans l’en-tête X-NWays-Api-Key. Clés d’API
Adresse de base : https://nways.ng/maps/v1/fleet
Vitesses routières dans un cadre (produit traffic_feed ; entreprise)
GET https://nways.ng/maps/v1/fleet/traffic-feed
Vitesses agrégées par route et par sens issues du trafic auto-apprenant de N-Ways, seulement là où assez d’appareils distincts ont contribué : les relevés en direct (30 dernières minutes) en exigent 2, les vitesses habituelles (par type de jour et créneau de 15 minutes) en exigent 3. Jamais de trace, de nombre d’appareils ni de session. La géométrie est le way OSM (GeoJSON [lng, lat]) ; direction indique le sens du tracé (forward) ou le sens inverse (backward). level : 0 fluide, 1 ralenti, 2 dense, 3 à l’arrêt, par rapport à la vitesse de circulation libre de la route.
Paramètres
| Nom | Où | Type | Description |
|---|---|---|---|
bbox | requête | string | Obligatoire. minLng,minLat,maxLng,maxLat ; 2° d’étendue au plus. |
kind | requête | string | Au choix: live, typical. Par défaut: live. |
at | requête | string (date-time) | kind=typical : le moment de la semaine (type de jour local et créneau de 15 minutes) ; maintenant par défaut. |
mode | requête | string | Au choix: car, motorcycle. Par défaut: car. |
format | requête | string | ndjson : une ligne FeedInfo, puis une Feature par ligne (application/x-ndjson). Au choix: geojson, ndjson. Par défaut: geojson. |
curl "https://nways.ng/maps/v1/fleet/traffic-feed?bbox=3.30%2C6.42%2C3.45%2C6.55" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/traffic-feed?bbox=3.30%2C6.42%2C3.45%2C6.55', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/traffic-feed?bbox=3.30%2C6.42%2C3.45%2C6.55",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
Flux
| Champ | Type | Description |
|---|---|---|
type | any | Obligatoire. |
properties | object | Obligatoire. |
properties.kind | string | Au choix: live, typical. |
properties.mode | string | Au choix: car, motorcycle. |
properties.bbox | number[] | Au moins 4 éléments, au plus 4 éléments. |
properties.at | string (date-time) | |
properties.generatedAt | string (date-time) | |
properties.minDevices | integer | Le seuil de k-anonymat appliqué (2 en direct, 3 pour les vitesses habituelles). |
properties.attribution | string | |
features | object[] | Obligatoire. |
features[].type | any | Obligatoire. |
features[].geometry | object | Obligatoire. LineString GeoJSON |
features[].properties | object | Obligatoire. |
features[].properties.wayId | integer | Obligatoire. Id du way OpenStreetMap. |
features[].properties.direction | string | Obligatoire. Au choix: forward, backward. |
features[].properties.speedKmh | number | Obligatoire. |
features[].properties.freeFlowKmh | number | Obligatoire. |
features[].properties.level | integer | Obligatoire. ≥ 0, ≤ 3. |
features[].properties.source | string | Obligatoire. Au choix: live, typical. |
features[].properties.updatedAt | string (date-time) | En direct seulement, à la minute près. |
{
"type": "string",
"properties": {
"kind": "live",
"mode": "car",
"bbox": [
0
],
"at": "2026-10-15T09:00:00+01:00",
"generatedAt": "2026-10-15T09:00:00+01:00",
"minDevices": 0,
"attribution": "string"
},
"features": [
{
"type": "string",
"geometry": {},
"properties": {
"wayId": 0,
"direction": "forward",
"speedKmh": 0,
"freeFlowKmh": 0,
"level": 0,
"source": "live",
"updatedAt": "2026-10-15T09:00:00+01:00"
}
}
]
}Erreurs
defaultErreur
Régions pour lesquelles des packs hors connexion sont produits
GET https://nways.ng/maps/v1/fleet/offline/regions
curl "https://nways.ng/maps/v1/fleet/offline/regions" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/offline/regions', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/offline/regions",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
Régions
| Champ | Type | Description |
|---|---|---|
regions | Region[] | Obligatoire. |
regions[].id | string | Obligatoire. |
regions[].name | string | Obligatoire. |
regions[].country | string | Obligatoire. |
regions[].bbox | number[] | Obligatoire. Au moins 4 éléments, au plus 4 éléments. |
maxzoom | integer | Obligatoire. |
custom | object | Obligatoire. |
custom.maxDegrees | number | |
custom.step | number |
{
"regions": [
{
"id": "lagos",
"name": "string",
"country": "NG",
"bbox": [
0
]
}
],
"maxzoom": 15,
"custom": {
"maxDegrees": 0.6,
"step": 0.05
}
}Erreurs
defaultErreur
Le manifeste du pack d’une région (202 pendant sa production ; redemandez après Retry-After)
GET https://nways.ng/maps/v1/fleet/offline/packs/{region}
Un pack contient la carte de la région (map.pmtiles, un extrait de l’archive que dessine le SDK Maps ; ouvrez-le avec la prise en charge pmtiles:// de MapLibre Native) et les tuiles de son graphe routier (routing.tar, tuiles Valhalla de niveau 0–2 avec les chemins propres au moteur) pour le calcul d’itinéraires sur l’appareil. Produit une fois par version de carte et de graphe ; version change quand l’une ou l’autre change.
Paramètres
| Nom | Où | Type | Description |
|---|---|---|---|
region | chemin | string | Obligatoire. Un id de région, ou custom avec bbox. |
bbox | requête | string | region=custom : minLng,minLat,maxLng,maxLat, élargi vers l’extérieur au pas de 0,05°, 0,6° d’étendue au plus. |
maxzoom | requête | integer | Par défaut: 15. ≥ 8, ≤ 15. |
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/offline/packs/lagos', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/offline/packs/lagos",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
Prêt
| Champ | Type | Description |
|---|---|---|
region | Region | Obligatoire. |
region.id | string | Obligatoire. |
region.name | string | Obligatoire. |
region.country | string | Obligatoire. |
region.bbox | number[] | Obligatoire. Au moins 4 éléments, au plus 4 éléments. |
maxzoom | integer | Obligatoire. |
version | string | Obligatoire. |
status | string | Obligatoire. Au choix: building, ready. |
builtAt | string (date-time) | |
files | object[] | Obligatoire. |
files[].name | string | Obligatoire. Au choix: map.pmtiles, routing.tar. |
files[].bytes | integer | Obligatoire. |
files[].sha256 | string | Obligatoire. |
files[].url | string | Obligatoire. Chemin de téléchargement (ajoutez votre clé). |
notes | string[] |
{
"region": {
"id": "lagos",
"name": "string",
"country": "NG",
"bbox": [
0
]
},
"maxzoom": 0,
"version": "string",
"status": "building",
"builtAt": "2026-10-15T09:00:00+01:00",
"files": [
{
"name": "map.pmtiles",
"bytes": 0,
"sha256": "string",
"url": "string"
}
],
"notes": [
"string"
]
}Erreurs
defaultErreur
Télécharger un fichier de pack (requêtes Range prises en charge ; ETag = son empreinte)
GET https://nways.ng/maps/v1/fleet/offline/packs/{region}/{file}
Paramètres
| Nom | Où | Type | Description |
|---|---|---|---|
region | chemin | string | Obligatoire. Un id de région, ou custom avec bbox. |
file | chemin | string | Obligatoire. Au choix: map.pmtiles, routing.tar. |
bbox | requête | string | region=custom : minLng,minLat,maxLng,maxLat, élargi vers l’extérieur au pas de 0,05°, 0,6° d’étendue au plus. |
maxzoom | requête | integer | Par défaut: 15. ≥ 8, ≤ 15. |
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos/map.pmtiles" \
-H "X-NWays-Api-Key: VOTRE_CLE_API"const res = await fetch('https://nways.ng/maps/v1/fleet/offline/packs/lagos/map.pmtiles', {
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()import os
import requests
res = requests.get(
"https://nways.ng/maps/v1/fleet/offline/packs/lagos/map.pmtiles",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Réponse
Le fichier
Erreurs
409ErreurdefaultErreur