N-Ways
Documentação para programadoresTrânsito e offline

Fluxo de trânsito e pacotes offline

As velocidades em direto para os seus sistemas, e os pacotes de mapas que as suas aplicações transferem para funcionar sem rede.

Nesta página
Nota:

Envie a sua chave com key=A_SUA_CHAVE_API no endereço, ou no cabeçalho X-NWays-Api-Key. Chaves de API

Endereço base: https://nways.ng/maps/v1/fleet

Velocidades das estradas numa caixa (produto traffic_feed; empresarial)

GET https://nways.ng/maps/v1/fleet/traffic-feed

Velocidades agregadas por estrada e sentido a partir do trânsito autoaprendente da N-Ways, apenas onde contribuíram dispositivos distintos suficientes: as leituras em direto (últimos 30 minutos) precisam de 2, as velocidades típicas (por tipo de dia e intervalo de 15 minutos) precisam de 3. Nunca um trajeto individual, uma contagem de dispositivos ou uma sessão. A geometria é a via OSM (GeoJSON [lng, lat]); direction é no sentido (forward) ou contra o sentido (backward) do seu desenho. level: 0 livre, 1 lento, 2 intenso, 3 parado, em relação à velocidade de circulação livre da estrada.

Parâmetros

NomeOndeTipoDescrição
bboxconsultastringObrigatório. minLng,minLat,maxLng,maxLat; no máximo 2° de largura.
kindconsultastringUm de: live, typical. Predefinição: live.
atconsultastring (date-time)kind=typical: o momento da semana (tipo de dia local e intervalo de 15 minutos); por omissão, agora.
modeconsultastringUm de: car, motorcycle. Predefinição: car.
formatconsultastringndjson: uma linha FeedInfo, depois uma Feature por linha (application/x-ndjson). Um de: geojson, ndjson. Predefinição: 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: A_SUA_CHAVE_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()

Resposta

Fluxo

CampoTipoDescrição
typeanyObrigatório.
propertiesobjectObrigatório.
properties.kindstringUm de: live, typical.
properties.modestringUm de: car, motorcycle.
properties.bboxnumber[]Pelo menos 4 elementos, no máximo 4 elementos.
properties.atstring (date-time)
properties.generatedAtstring (date-time)
properties.minDevicesintegerO limiar de k-anonimato aplicado (direto 2, típico 3).
properties.attributionstring
featuresobject[]Obrigatório.
features[].typeanyObrigatório.
features[].geometryobjectObrigatório. LineString GeoJSON
features[].propertiesobjectObrigatório.
features[].properties.wayIdintegerObrigatório. Id da via OpenStreetMap.
features[].properties.directionstringObrigatório. Um de: forward, backward.
features[].properties.speedKmhnumberObrigatório.
features[].properties.freeFlowKmhnumberObrigatório.
features[].properties.levelintegerObrigatório. ≥ 0, ≤ 3.
features[].properties.sourcestringObrigatório. Um de: live, typical.
features[].properties.updatedAtstring (date-time)Apenas em direto, ao minuto.
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"
      }
    }
  ]
}

Erros

  • default Erro

Regiões para as quais existem pacotes offline

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

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

Resposta

Regiões

CampoTipoDescrição
regionsRegion[]Obrigatório.
regions[].idstringObrigatório.
regions[].namestringObrigatório.
regions[].countrystringObrigatório.
regions[].bboxnumber[]Obrigatório. Pelo menos 4 elementos, no máximo 4 elementos.
maxzoomintegerObrigatório.
customobjectObrigatório.
custom.maxDegreesnumber
custom.stepnumber
200 OK
{
  "regions": [
    {
      "id": "lagos",
      "name": "string",
      "country": "NG",
      "bbox": [
        0
      ]
    }
  ],
  "maxzoom": 15,
  "custom": {
    "maxDegrees": 0.6,
    "step": 0.05
  }
}

Erros

  • default Erro

O manifesto do pacote de uma região (202 enquanto está a ser criado; volte a pedir depois de Retry-After)

GET https://nways.ng/maps/v1/fleet/offline/packs/{region}

Um pacote é o mapa da região (map.pmtiles, um excerto do arquivo que o Maps SDK desenha; abra-o com o suporte pmtiles:// do MapLibre Native) e os seus mosaicos do grafo de percursos (routing.tar, mosaicos Valhalla de nível 0–2 com os caminhos próprios do motor) para cálculo de percursos no dispositivo. Criado uma vez por versão do mapa e do grafo; version muda quando um deles muda.

Parâmetros

NomeOndeTipoDescrição
regioncaminhostringObrigatório. Um id de região, ou custom com bbox.
bboxconsultastringregion=custom: minLng,minLat,maxLng,maxLat, alargado para fora a múltiplos de 0,05°, no máximo 0,6° de largura.
maxzoomconsultaintegerPredefinição: 15. ≥ 8, ≤ 15.
cURL
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_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()

Resposta

Pronto

CampoTipoDescrição
regionRegionObrigatório.
region.idstringObrigatório.
region.namestringObrigatório.
region.countrystringObrigatório.
region.bboxnumber[]Obrigatório. Pelo menos 4 elementos, no máximo 4 elementos.
maxzoomintegerObrigatório.
versionstringObrigatório.
statusstringObrigatório. Um de: building, ready.
builtAtstring (date-time)
filesobject[]Obrigatório.
files[].namestringObrigatório. Um de: map.pmtiles, routing.tar.
files[].bytesintegerObrigatório.
files[].sha256stringObrigatório.
files[].urlstringObrigatório. Caminho para descarregar (acrescente a sua chave).
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"
  ]
}

Erros

  • default Erro

Descarregar um ficheiro do pacote (pedidos Range suportados; ETag = o seu hash)

GET https://nways.ng/maps/v1/fleet/offline/packs/{region}/{file}

Parâmetros

NomeOndeTipoDescrição
regioncaminhostringObrigatório. Um id de região, ou custom com bbox.
filecaminhostringObrigatório. Um de: map.pmtiles, routing.tar.
bboxconsultastringregion=custom: minLng,minLat,maxLng,maxLat, alargado para fora a múltiplos de 0,05°, no máximo 0,6° de largura.
maxzoomconsultaintegerPredefinição: 15. ≥ 8, ≤ 15.
cURL
curl "https://nways.ng/maps/v1/fleet/offline/packs/lagos/map.pmtiles" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_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()

Resposta

O ficheiro

Erros

  • 409 Erro
  • default Erro