API Géocodage

Adresses, landmarks & quartiers informels

Pelias enrichi avec la couche locale AfriMap : quartiers informels, landmarks, marchés, pharmacies de garde. Réponses toujours en GeoJSON, coordonnées en [lng, lat].

Comment ça marche

Le géocodeur AfriMap fusionne trois sources pour donner des résultats que Google ne peut pas fournir en Afrique de l'Ouest :

Pelias (OSM)

Rues, bâtiments, POI, limites admin de la base OpenStreetMap. Couvre la Côte d'Ivoire avec une qualité variable (Abidjan centre = bon, périphérie = lacunaire).

Overture Maps

54 millions de POI monde, adresses structurées, bâtiments. Complète les lacunes OSM, surtout en zone périurbaine.

Couche locale AfriMap

Quartiers informels (Adjamé Liberté, Abobo Gare), landmarks (maquis, mosquées, pharmacies de garde), marchés avec jours d'ouverture. Crowdsourcé via chauffeurs HopRide.

Géocodage forward (texte → coordonnées)

Transforme un texte libre (adresse, nom de lieu, quartier) en coordonnées GPS.

TypeScriptForward geocode
const results = await client.geocoding.geocode({ q: 'Cathédrale Saint-Paul, Plateau, Abidjan', }) // results.features[0].geometry.coordinates = [-4.0167, 5.3197]// results.features[0].properties.label = "Cathédrale Saint-Paul du Plateau"
TerminalcURL
 curl -H "X-AfriMap-Key: afm_test_..." \ "https://api.afrimap.ci/v1/geocode?q=cocody+abidjan"

Réponse (GeoJSON FeatureCollection)

JSONRéponse geocode
 { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-3.9904, 5.3480] }, "properties": { "id": "place_01HZ...", "label": "Cocody, Abidjan, Cote d'Ivoire", "name": "Cocody", "layer": "locality", "confidence": 0.95, "country": "Cote d'Ivoire", "region": "Abidjan", "locality": "Cocody", "landmark_nearby": { "name": "CHU de Cocody", "distance_m": 450 } } } ] }

Géocodage reverse (coordonnées → adresse)

Transforme des coordonnées GPS en adresse lisible. Utile quand l'utilisateur pose un pin sur la carte.

TypeScriptReverse geocode
const results = await client.geocoding.reverse({ lat: 5.3197, lng: -4.0167, }) // "Avenue Marchand, Plateau, Abidjan"console.log(results.features[0].properties.label)
TerminalcURL
 curl -H "X-AfriMap-Key: afm_test_..." \ "https://api.afrimap.ci/v1/geocode/reverse?lat=5.3197&lng=-4.0167"

Autocomplete

Suggestions en temps réel pendant la saisie. Le biais de proximité permet de prioriser les résultats proches de l'utilisateur.

TypeScriptAutocomplete avec biais
const suggestions = await client.geocoding.autocomplete({ q: 'marché', lat: 5.34, // position actuelle de l'utilisateur lng: -4.01, // → résultats proches priorisés limit: 5, }) // suggestions.features = [// { properties: { label: "Marché de Cocody" } },// { properties: { label: "Marché de Treichville" } },// ...// ]
Performance : l'autocomplete est optimisé pour être appelé à chaque frappe clavier (debounce ~200ms recommandé côté client). Les résultats sont cachés 24h dans Redis pour les requêtes fréquentes.

Données locales enrichies

AfriMap reconnaît les noms informels que les habitants utilisent au quotidien :

Quartiers informels

Noms que les gens utilisent mais qui n'apparaissent sur aucune carte officielle :

  • • « Adjamé Liberté » → trouvé
  • • « Abobo Gare » → trouvé
  • • « Cocody Angré » → trouvé
  • • « Yopougon Wassakara » → trouvé

Landmarks

Points de repère locaux utilisés dans les directions orales :

  • • Cathédrales, mosquées, églises
  • • Maquis et restaurants connus
  • • Stations Total / Shell
  • • Marchés (avec jours d'ouverture)

Endpoints

GET/v1/geocode

Forward geocode

Resolves a free-form text query (address, landmark, quartier, market name) to one or more GeoJSON Point features with a confidence score.

Paramètres

NomEmplacementTypeDescription
q requiredquerystring
lat querynumberProximity bias.
lng querynumberProximity bias.
size queryinteger

Réponses

  • 200GeoJSON FeatureCollection.

    GeocodeResponse

Exemples de code

curl "https://api.afrimap.ci/v1/geocode?q=Cocody+Abidjan&size=5" \
  -H "X-AfriMap-Key: $AFM_KEY"

Testez-le

Essayer en direct

GET /v1/geocode

Collez une clé sandbox afm_test_…. La requête part directement de votre navigateur vers le gateway, aucun proxy côté portail.

Proximity bias.

Proximity bias.

GET http://localhost:8090/v1/geocode?q=Cocody+Abidjan&size=10
GET/v1/geocode/reverse

Reverse geocode

Returns the nearest addressable feature (street, landmark, quartier) for the given coordinates.

Paramètres

NomEmplacementTypeDescription
lat requiredquerynumber
lng requiredquerynumber

Réponses

  • 200GeoJSON FeatureCollection.

    GeocodeResponse

Exemples de code

curl "https://api.afrimap.ci/v1/geocode/reverse?lat=5.3480&lng=-3.9904" \
  -H "X-AfriMap-Key: $AFM_KEY"

Testez-le

Essayer en direct

GET /v1/geocode/reverse

Collez une clé sandbox afm_test_…. La requête part directement de votre navigateur vers le gateway, aucun proxy côté portail.

GET http://localhost:8090/v1/geocode/reverse?lat=5.348&lng=-3.9904
GET/v1/geocode/autocomplete

Autocomplete

Low-latency prefix search biased toward the caller's location. Returns up to 5 GeoJSON Point candidates ranked by relevance.

Paramètres

NomEmplacementTypeDescription
q requiredquerystring
lat querynumber
lng querynumber

Réponses

  • 200GeoJSON FeatureCollection.

    GeocodeResponse

Exemples de code

curl "https://api.afrimap.ci/v1/geocode/autocomplete?q=coco&lat=5.32&lng=-4.02" \
  -H "X-AfriMap-Key: $AFM_KEY"

Testez-le

Essayer en direct

GET /v1/geocode/autocomplete

Collez une clé sandbox afm_test_…. La requête part directement de votre navigateur vers le gateway, aucun proxy côté portail.

GET http://localhost:8090/v1/geocode/autocomplete?q=coco