N-Ways
Documentation développeursTrafic et hors connexion

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
Remarque :

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

NomOùTypeDescription
bboxrequêtestringObligatoire. minLng,minLat,maxLng,maxLat ; 2° d’étendue au plus.
kindrequêtestringAu choix: live, typical. Par défaut: live.
atrequêtestring (date-time)kind=typical : le moment de la semaine (type de jour local et créneau de 15 minutes) ; maintenant par défaut.
moderequêtestringAu choix: car, motorcycle. Par défaut: car.
formatrequêtestringndjson : une ligne FeedInfo, puis une Feature par ligne (application/x-ndjson). Au choix: geojson, ndjson. Par défaut: geojson.
cURL
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"
JavaScript
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()
Python
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

ChampTypeDescription
typeanyObligatoire.
propertiesobjectObligatoire.
properties.kindstringAu choix: live, typical.
properties.modestringAu choix: car, motorcycle.
properties.bboxnumber[]Au moins 4 éléments, au plus 4 éléments.
properties.atstring (date-time)
properties.generatedAtstring (date-time)
properties.minDevicesintegerLe seuil de k-anonymat appliqué (2 en direct, 3 pour les vitesses habituelles).
properties.attributionstring
featuresobject[]Obligatoire.
features[].typeanyObligatoire.
features[].geometryobjectObligatoire. LineString GeoJSON
features[].propertiesobjectObligatoire.
features[].properties.wayIdintegerObligatoire. Id du way OpenStreetMap.
features[].properties.directionstringObligatoire. Au choix: forward, backward.
features[].properties.speedKmhnumberObligatoire.
features[].properties.freeFlowKmhnumberObligatoire.
features[].properties.levelintegerObligatoire. ≥ 0, ≤ 3.
features[].properties.sourcestringObligatoire. Au choix: live, typical.
features[].properties.updatedAtstring (date-time)En direct seulement, à la minute près.
200 OK
{
  "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

  • default Erreur

Régions pour lesquelles des packs hors connexion sont produits

GET https://nways.ng/maps/v1/fleet/offline/regions

cURL
curl "https://nways.ng/maps/v1/fleet/offline/regions" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
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()
Python
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

ChampTypeDescription
regionsRegion[]Obligatoire.
regions[].idstringObligatoire.
regions[].namestringObligatoire.
regions[].countrystringObligatoire.
regions[].bboxnumber[]Obligatoire. Au moins 4 éléments, au plus 4 éléments.
maxzoomintegerObligatoire.
customobjectObligatoire.
custom.maxDegreesnumber
custom.stepnumber
200 OK
{
  "regions": [
    {
      "id": "lagos",
      "name": "string",
      "country": "NG",
      "bbox": [
        0
      ]
    }
  ],
  "maxzoom": 15,
  "custom": {
    "maxDegrees": 0.6,
    "step": 0.05
  }
}

Erreurs

  • default Erreur

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

NomOùTypeDescription
regioncheminstringObligatoire. Un id de région, ou custom avec bbox.
bboxrequêtestringregion=custom : minLng,minLat,maxLng,maxLat, élargi vers l’extérieur au pas de 0,05°, 0,6° d’étendue au plus.
maxzoomrequêteintegerPar défaut: 15. ≥ 8, ≤ 15.
cURL
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
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()
Python
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

ChampTypeDescription
regionRegionObligatoire.
region.idstringObligatoire.
region.namestringObligatoire.
region.countrystringObligatoire.
region.bboxnumber[]Obligatoire. Au moins 4 éléments, au plus 4 éléments.
maxzoomintegerObligatoire.
versionstringObligatoire.
statusstringObligatoire. Au choix: building, ready.
builtAtstring (date-time)
filesobject[]Obligatoire.
files[].namestringObligatoire. Au choix: map.pmtiles, routing.tar.
files[].bytesintegerObligatoire.
files[].sha256stringObligatoire.
files[].urlstringObligatoire. Chemin de téléchargement (ajoutez votre clé).
notesstring[]
200 OK
{
  "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

  • default Erreur

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

NomOùTypeDescription
regioncheminstringObligatoire. Un id de région, ou custom avec bbox.
filecheminstringObligatoire. Au choix: map.pmtiles, routing.tar.
bboxrequêtestringregion=custom : minLng,minLat,maxLng,maxLat, élargi vers l’extérieur au pas de 0,05°, 0,6° d’étendue au plus.
maxzoomrequêteintegerPar défaut: 15. ≥ 8, ≤ 15.
cURL
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos/map.pmtiles" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
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()
Python
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

  • 409 Erreur
  • default Erreur