N-Ways
Documentation développeursGéocodage

Géocodage

Recherche de lieux et d’adresses, ce qui se trouve à un point, et recherches NIPOST, GhanaPost et Plus Code.

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

Rechercher des lieux, des adresses et des codes

GET https://nways.ng/maps/v1/geocode

Lieux, rues, adresses, points de repère, commerces et zones dans chaque pays couvert, malgré les fautes de frappe et avec les surnoms locaux ; un code postal NIPOST trouve son bâtiment, une adresse GhanaPost GPS son point. Les résultats les plus proches d’abord quand near est fourni. Raisons : QUERY_REQUIRED, QUERY_TOO_LONG, NEAR_INVALID, COUNTRY_INVALID, LIMIT_INVALID, LANG_INVALID.

Paramètres

NomOùTypeDescription
qrequêtestringObligatoire. 200 caractères au plus.
nearrequêtestringlat,lng : classer et choisir les résultats proches de ce point.
countryrequêtestringListe séparée par des virgules parmi NG, GH, BJ, TG, GA, CI, LR, GN, SL, GW, SN, CM, BF, CV, GM.
limitrequêteintegerPar défaut: 8. ≥ 1, ≤ 20.
langrequêtestringAu choix: en, fr, pt. Par défaut: en.
fieldsrequêtestringListe séparée par des virgules des champs à garder dans chaque résultat (a.b descend dans les objets ; id est toujours gardé ; * = tous).
cURL
curl "https://nways.ng/maps/v1/geocode?q=Ikeja+City+Mall" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/geocode?q=Ikeja+City+Mall', {
  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/geocode?q=Ikeja+City+Mall",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Résultats

ChampTypeDescription
resultsResult[]Obligatoire.
results[].idstringObligatoire.
results[].namestringObligatoire.
results[].typestringObligatoire. address, street, business, landmark, building, postcode, ghanapost, ou une zone : neighbourhood, suburb, village, town, city, state…
results[].categorystring
results[].locationPointObligatoire.
results[].location.typestringObligatoire.
results[].location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
results[].bboxnumber[]ouest, sud, est, nord (zones) Au moins 4 éléments, au plus 4 éléments.
results[].formattedAddressstring
results[].postcodestringCode postal NIPOST, forme compacte
results[].ghanaPoststring
results[].plusCodestringObligatoire.
results[].countrystring
results[].distanceMnumberDepuis near (ou le point demandé).
results[].estimatedbooleanLe point est une estimation, à accuracyM près.
results[].accuracyMnumber
results[].placeIdstringUn commerce : son id pour /places/{id}.
results[].attributionstring
didYouMeanstring
attributionstringObligatoire.
200 OK
{
  "results": [
    {
      "id": "osm:w568367632",
      "name": "Ikeja City Mall",
      "type": "landmark",
      "category": "shopping",
      "location": {
        "type": "string",
        "coordinates": [
          0
        ]
      },
      "bbox": [
        0
      ],
      "formattedAddress": "Ikeja, Lagos",
      "postcode": "LA08A09DB09",
      "ghanaPost": "GA-183-8164",
      "plusCode": "6FR5J975+P4W",
      "country": "NG",
      "distanceM": 0,
      "estimated": true,
      "accuracyM": 0,
      "placeId": "string",
      "attribution": "string"
    }
  ],
  "didYouMean": "string",
  "attribution": "string"
}

Erreurs

  • default Erreur

Ce qui se trouve à un point

GET https://nways.ng/maps/v1/reverse

Une même forme dans chaque pays couvert : le pays et la région, le Plus Code, le code postal NIPOST au Nigeria (le bâtiment à portée), l’adresse GhanaPost GPS connue la plus proche au Ghana, et l’adresse, la rue ou le point de repère nommé le plus proche (sinon la zone), avec une adresse sur une ligne. Raisons : LAT_LNG_REQUIRED, RADIUS_INVALID, LANG_INVALID.

Paramètres

NomOùTypeDescription
latrequêtenumberObligatoire.
lngrequêtenumberObligatoire.
radiusrequêtenumberJusqu’où chercher une adresse, une rue ou un point de repère (en mètres). Par défaut: 200. ≥ 10, ≤ 1000.
langrequêtestringAu choix: en, fr, pt. Par défaut: en.
fieldsrequêtestringListe séparée par des virgules des champs à garder dans chaque résultat (a.b descend dans les objets ; id est toujours gardé ; * = tous).
cURL
curl "https://nways.ng/maps/v1/reverse?lat=6.4474&lng=3.472" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/reverse?lat=6.4474&lng=3.472', {
  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/reverse?lat=6.4474&lng=3.472",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Ce qui s’y trouve

ChampTypeDescription
locationPointObligatoire.
location.typestringObligatoire.
location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
plusCodestringObligatoire.
countryArea | nullObligatoire.
regionArea | nullObligatoire.
formattedAddressstring
postcodePostcode | nullObligatoire. Nigeria : le code postal NIPOST du bâtiment, quand il y en a un à portée.
ghanaPoststring | nullObligatoire. Ghana : l’adresse GhanaPost GPS connue la plus proche (à moins de 100 m).
nearestResult | nullObligatoire.
attributionstringObligatoire.
200 OK
{
  "location": {
    "type": "string",
    "coordinates": [
      0
    ]
  },
  "plusCode": "string",
  "country": {
    "code": "NG-LA",
    "name": "Lagos State",
    "nameFr": "string",
    "namePt": "string"
  },
  "region": {
    "code": "NG-LA",
    "name": "Lagos State",
    "nameFr": "string",
    "namePt": "string"
  },
  "formattedAddress": "12 Admiralty Way, Lekki, Lagos State, Nigeria",
  "postcode": {
    "code": "LA08A09DB09",
    "display": "LA 08 A09 DB 09",
    "components": {
      "state": "LA",
      "stateName": "Lagos",
      "lga": "08",
      "lgaName": "Eti-Osa",
      "district": "A09",
      "area": "DB",
      "building": "09"
    },
    "location": {
      "type": "string",
      "coordinates": [
        0
      ]
    },
    "name": "string",
    "address": "string",
    "buildingType": "string",
    "entrances": [
      {
        "location": {
          "type": "string",
          "coordinates": []
        },
        "kind": "main",
        "verified": true
      }
    ],
    "plusCode": "string",
    "country": "string",
    "source": "nipost",
    "estimated": true,
    "accuracyM": 0,
    "distanceM": 0,
    "attribution": "string"
  },
  "ghanaPost": "string",
  "nearest": {
    "id": "osm:w568367632",
    "name": "Ikeja City Mall",
    "type": "landmark",
    "category": "shopping",
    "location": {
      "type": "string",
      "coordinates": [
        0
      ]
    },
    "bbox": [
      0
    ],
    "formattedAddress": "Ikeja, Lagos",
    "postcode": "LA08A09DB09",
    "ghanaPost": "GA-183-8164",
    "plusCode": "6FR5J975+P4W",
    "country": "NG",
    "distanceM": 0,
    "estimated": true,
    "accuracyM": 0,
    "placeId": "string",
    "attribution": "string"
  },
  "attribution": "string"
}

Erreurs

  • default Erreur

Un code postal NIPOST

GET https://nways.ng/maps/v1/postcodes/{code}

Le bâtiment que désigne un code postal NIPOST (sous n’importe quelle forme écrite : LA 08 A09 DB 09, la-08-a09-db-09), ses entrées (l’itinéraire mène à la première), ses parties et leurs noms ; ou, pour un code que nous n’avons pas encore placé, l’endroit où il se trouve selon une estimation faite à partir des codes voisins (estimated, accuracyM). Raisons : POSTCODE_INVALID, POSTCODE_NOT_FOUND_CHECK, POSTCODE_NOT_NIPOST.

Paramètres

NomOùTypeDescription
codecheminstringObligatoire.
fieldsrequêtestringListe séparée par des virgules des champs à garder dans chaque résultat (a.b descend dans les objets ; id est toujours gardé ; * = tous).
cURL
curl "https://nways.ng/maps/v1/postcodes/LA08A09DB09" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/postcodes/LA08A09DB09', {
  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/postcodes/LA08A09DB09",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

Le code postal

ChampTypeDescription
codestringObligatoire.
displaystringObligatoire.
componentsPostcodeComponentsObligatoire.
components.statestringObligatoire.
components.stateNamestring
components.lgastringObligatoire.
components.lgaNamestring
components.districtstringObligatoire.
components.areastringObligatoire.
components.buildingstringObligatoire.
locationPointObligatoire.
location.typestringObligatoire.
location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
namestring
addressstring
buildingTypestring
entrancesEntrance[]Obligatoire. Les vérifiées d’abord, la principale en premier : l’itinéraire mène à la première.
entrances[].locationPointObligatoire.
entrances[].location.typestringObligatoire.
entrances[].location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
entrances[].kindstringObligatoire. Au choix: main, gate, pedestrian, service.
entrances[].verifiedbooleanObligatoire.
plusCodestringObligatoire.
countrystringObligatoire.
sourcestringObligatoire. Au choix: nipost, osm, user, estimate.
estimatedbooleanObligatoire.
accuracyMnumber
distanceMnumberGéocodage inverse : depuis le point demandé.
attributionstringObligatoire.
200 OK
{
  "code": "LA08A09DB09",
  "display": "LA 08 A09 DB 09",
  "components": {
    "state": "LA",
    "stateName": "Lagos",
    "lga": "08",
    "lgaName": "Eti-Osa",
    "district": "A09",
    "area": "DB",
    "building": "09"
  },
  "location": {
    "type": "string",
    "coordinates": [
      0
    ]
  },
  "name": "string",
  "address": "string",
  "buildingType": "string",
  "entrances": [
    {
      "location": {
        "type": "string",
        "coordinates": [
          0
        ]
      },
      "kind": "main",
      "verified": true
    }
  ],
  "plusCode": "string",
  "country": "string",
  "source": "nipost",
  "estimated": true,
  "accuracyM": 0,
  "distanceM": 0,
  "attribution": "string"
}

Erreurs

  • default Erreur

Jusqu’à 100 codes postaux NIPOST à la fois

POST https://nways.ng/maps/v1/postcodes/batch

Chaque code compte comme un appel geocode. Une réponse par code, dans l’ordre, avec sa propre erreur s’il en a une. Raisons (pour tout l’appel) : CODES_INVALID.

Paramètres

NomOùTypeDescription
fieldsrequêtestringListe séparée par des virgules des champs à garder dans chaque résultat (a.b descend dans les objets ; id est toujours gardé ; * = tous).

Corps de la requête

ChampTypeDescription
codesstring[]Obligatoire. Au moins 1 éléments, au plus 100 éléments.
cURL
curl -X POST "https://nways.ng/maps/v1/postcodes/batch" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"codes":["LA08A09DB09","FC 02 A09 DB 09"]}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/postcodes/batch', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "codes": [
      "LA08A09DB09",
      "FC 02 A09 DB 09"
    ]
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/postcodes/batch",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"codes": ["LA08A09DB09", "FC 02 A09 DB 09"]},
    timeout=10,
)
data = res.json()

Réponse

Un résultat par code

ChampTypeDescription
resultsobject[]Obligatoire.
results[].querystringObligatoire.
results[].postcodePostcode
results[].postcode.codestringObligatoire.
results[].postcode.displaystringObligatoire.
results[].postcode.componentsPostcodeComponentsObligatoire.
results[].postcode.components.statestringObligatoire.
results[].postcode.components.stateNamestring
results[].postcode.components.lgastringObligatoire.
results[].postcode.components.lgaNamestring
results[].postcode.components.districtstringObligatoire.
results[].postcode.components.areastringObligatoire.
results[].postcode.components.buildingstringObligatoire.
results[].postcode.locationPointObligatoire.
results[].postcode.location.typestringObligatoire.
results[].postcode.location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
results[].postcode.namestring
results[].postcode.addressstring
results[].postcode.buildingTypestring
results[].postcode.entrancesEntrance[]Obligatoire. Les vérifiées d’abord, la principale en premier : l’itinéraire mène à la première.
results[].postcode.entrances[].locationPointObligatoire.
results[].postcode.entrances[].kindstringObligatoire. Au choix: main, gate, pedestrian, service.
results[].postcode.entrances[].verifiedbooleanObligatoire.
results[].postcode.plusCodestringObligatoire.
results[].postcode.countrystringObligatoire.
results[].postcode.sourcestringObligatoire. Au choix: nipost, osm, user, estimate.
results[].postcode.estimatedbooleanObligatoire.
results[].postcode.accuracyMnumber
results[].postcode.distanceMnumberGéocodage inverse : depuis le point demandé.
results[].postcode.attributionstringObligatoire.
results[].errorItemError
results[].error.codeintegerObligatoire.
results[].error.reasonstringObligatoire.
results[].error.messagestringObligatoire.
attributionstringObligatoire.
200 OK
{
  "results": [
    {
      "query": "string",
      "postcode": {
        "code": "LA08A09DB09",
        "display": "LA 08 A09 DB 09",
        "components": {
          "state": "LA",
          "stateName": "Lagos",
          "lga": "08",
          "lgaName": "Eti-Osa",
          "district": "A09",
          "area": "DB",
          "building": "09"
        },
        "location": {
          "type": "string",
          "coordinates": []
        },
        "name": "string",
        "address": "string",
        "buildingType": "string",
        "entrances": [
          {}
        ],
        "plusCode": "string",
        "country": "string",
        "source": "nipost",
        "estimated": true,
        "accuracyM": 0,
        "distanceM": 0,
        "attribution": "string"
      },
      "error": {
        "code": 0,
        "reason": "string",
        "message": "string"
      }
    }
  ],
  "attribution": "string"
}

Erreurs

  • default Erreur

Une adresse GhanaPost GPS

GET https://nways.ng/maps/v1/ghanapost/{code}

L’emplacement d’une adresse numérique GhanaPost GPS : cartographiée dans OpenStreetMap ou publiée par son propriétaire, sinon (dans les districts où la méthode a été vérifiée) estimée à partir des codes cartographiés autour (estimated, accuracyM). N’appelle jamais Ghana Post. Raisons : GHANAPOST_INVALID, GHANAPOST_UNKNOWN.

Paramètres

NomOùTypeDescription
codecheminstringObligatoire.
fieldsrequêtestringListe séparée par des virgules des champs à garder dans chaque résultat (a.b descend dans les objets ; id est toujours gardé ; * = tous).
cURL
curl "https://nways.ng/maps/v1/ghanapost/GA-183-8164" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/ghanapost/GA-183-8164', {
  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/ghanapost/GA-183-8164",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

L’adresse

ChampTypeDescription
idstringObligatoire.
namestringObligatoire.
typestringObligatoire. address, street, business, landmark, building, postcode, ghanapost, ou une zone : neighbourhood, suburb, village, town, city, state…
categorystring
locationPointObligatoire.
location.typestringObligatoire.
location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
bboxnumber[]ouest, sud, est, nord (zones) Au moins 4 éléments, au plus 4 éléments.
formattedAddressstring
postcodestringCode postal NIPOST, forme compacte
ghanaPoststring
plusCodestringObligatoire.
countrystring
distanceMnumberDepuis near (ou le point demandé).
estimatedbooleanLe point est une estimation, à accuracyM près.
accuracyMnumber
placeIdstringUn commerce : son id pour /places/{id}.
attributionstring
200 OK
{
  "id": "osm:w568367632",
  "name": "Ikeja City Mall",
  "type": "landmark",
  "category": "shopping",
  "location": {
    "type": "string",
    "coordinates": [
      0
    ]
  },
  "bbox": [
    0
  ],
  "formattedAddress": "Ikeja, Lagos",
  "postcode": "LA08A09DB09",
  "ghanaPost": "GA-183-8164",
  "plusCode": "6FR5J975+P4W",
  "country": "NG",
  "distanceM": 0,
  "estimated": true,
  "accuracyM": 0,
  "placeId": "string",
  "attribution": "string"
}

Erreurs

  • default Erreur

La zone d’un Plus Code et ce qui s’y trouve

GET https://nways.ng/maps/v1/pluscodes/{code}

Un Plus Code complet (6FR5J975+P4W), ou un code court avec une référence : near=lat,lng, ou une ville après le code (J975+P4 Ikeja, encodé pour l’URL). La réponse est le géocodage inverse du centre du code, avec le code complet et ses limites. Raisons : PLUSCODE_INVALID, PLUSCODE_SHORT, LOCALITY_NOT_FOUND, NEAR_INVALID.

Paramètres

NomOùTypeDescription
codecheminstringObligatoire.
nearrequêtestringlat,lng : classer et choisir les résultats proches de ce point.
langrequêtestringAu choix: en, fr, pt. Par défaut: en.
fieldsrequêtestringListe séparée par des virgules des champs à garder dans chaque résultat (a.b descend dans les objets ; id est toujours gardé ; * = tous).
cURL
curl "https://nways.ng/maps/v1/pluscodes/6FR5J975%2BP4W" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/pluscodes/6FR5J975%2BP4W', {
  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/pluscodes/6FR5J975%2BP4W",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Réponse

La zone du code

ChampTypeDescription
locationPointObligatoire.
location.typestringObligatoire.
location.coordinatesnumber[]Obligatoire. [lng, lat] Au moins 2 éléments, au plus 2 éléments.
plusCodestringObligatoire.
countryArea | nullObligatoire.
regionArea | nullObligatoire.
formattedAddressstring
postcodePostcode | nullObligatoire. Nigeria : le code postal NIPOST du bâtiment, quand il y en a un à portée.
ghanaPoststring | nullObligatoire. Ghana : l’adresse GhanaPost GPS connue la plus proche (à moins de 100 m).
nearestResult | nullObligatoire.
attributionstringObligatoire.
boundsnumber[]Obligatoire. ouest, sud, est, nord Au moins 4 éléments, au plus 4 éléments.
200 OK
{
  "location": {
    "type": "string",
    "coordinates": [
      0
    ]
  },
  "plusCode": "string",
  "country": {
    "code": "NG-LA",
    "name": "Lagos State",
    "nameFr": "string",
    "namePt": "string"
  },
  "region": {
    "code": "NG-LA",
    "name": "Lagos State",
    "nameFr": "string",
    "namePt": "string"
  },
  "formattedAddress": "12 Admiralty Way, Lekki, Lagos State, Nigeria",
  "postcode": {
    "code": "LA08A09DB09",
    "display": "LA 08 A09 DB 09",
    "components": {
      "state": "LA",
      "stateName": "Lagos",
      "lga": "08",
      "lgaName": "Eti-Osa",
      "district": "A09",
      "area": "DB",
      "building": "09"
    },
    "location": {
      "type": "string",
      "coordinates": [
        0
      ]
    },
    "name": "string",
    "address": "string",
    "buildingType": "string",
    "entrances": [
      {
        "location": {
          "type": "string",
          "coordinates": []
        },
        "kind": "main",
        "verified": true
      }
    ],
    "plusCode": "string",
    "country": "string",
    "source": "nipost",
    "estimated": true,
    "accuracyM": 0,
    "distanceM": 0,
    "attribution": "string"
  },
  "ghanaPost": "string",
  "nearest": {
    "id": "osm:w568367632",
    "name": "Ikeja City Mall",
    "type": "landmark",
    "category": "shopping",
    "location": {
      "type": "string",
      "coordinates": [
        0
      ]
    },
    "bbox": [
      0
    ],
    "formattedAddress": "Ikeja, Lagos",
    "postcode": "LA08A09DB09",
    "ghanaPost": "GA-183-8164",
    "plusCode": "6FR5J975+P4W",
    "country": "NG",
    "distanceM": 0,
    "estimated": true,
    "accuracyM": 0,
    "placeId": "string",
    "attribution": "string"
  },
  "attribution": "string",
  "bounds": [
    0
  ]
}

Erreurs

  • default Erreur