Migration

Migration depuis Google Maps API

AfriMap est conçu pour que les développeurs migrant de Google Maps trouvent des patterns familiers. Ce guide montre la correspondance endpoint par endpoint et les différences à connaître.

Comparaison de coûts

ScénarioGoogle Maps APIAfriMap Engine
Startup (10K req/jour)~75 000 FCFA/mois0 FCFA (sandbox gratuit)
VTC 50 véhicules~200 000 FCFA/mois25 000 FCFA/mois (Starter)
VTC 500 véhicules~640 000 FCFA/mois150 000 FCFA/mois (Pro)
Auto-hébergéN/ACoût serveur uniquement

Correspondance des endpoints

Google Maps APIAfriMap APINotes
Directions APIPOST /v1/routePolyline précision 6 (pas 5)
Distance Matrix APIPOST /v1/matrixMême concept N×M
Geocoding APIGET /v1/geocodeRetourne GeoJSON (pas JSON custom)
Reverse GeocodingGET /v1/geocode/reverseIdentique
Places AutocompleteGET /v1/geocode/autocompleteBiais de proximité via lat/lng
Place DetailsGET /v1/places/{id}IDs stables place_01HZ...
Nearby SearchGET /v1/places/nearbyFiltrage par catégorie + rayon
Maps JavaScript APIMapLibre GL JSFork open-source de Mapbox GL
Static Maps APINon disponible (tuiles vectorielles uniquement)
Roads API (snap)POST /v1/matchMap matching Valhalla

Différences clés à connaître

1. Polyline precision 6 (pas 5)

Valhalla encode les polylines avec un facteur 10⁶ (precision 6), pas 10⁵ comme Google. Si vous réutilisez votre décodeur Google, les coordonnées seront décalées de 10x. Utilisez le décodeur inclus dans les SDKs AfriMap.

2. Authentification par header (pas query string)

Google utilise ?key=AIza... dans l'URL. AfriMap utilise le header X-AfriMap-Key. C'est plus sécurisé (la clé n'apparaît pas dans les logs serveur, les referers, ou l'historique navigateur).

3. GeoJSON partout

Les réponses spatiales suivent le standard GeoJSON (coordonnées en [lng, lat]). Google utilise un format JSON propriétaire. Si vous parsez des coordonnées, attention à l'ordre [lng, lat] vs {lat, lng}.

4. Tuiles vectorielles (pas raster)

AfriMap sert des tuiles vectorielles MVT rendues côté client par MapLibre, pas des images PNG pré-rendues. Cela signifie : rotation fluide, bâtiments 3D, styles dynamiques, mais vous devez utiliser MapLibre (pas un simple <img>).

5. Données locales enrichies

AfriMap connaît les quartiers informels, les landmarks locaux et les marchés avec leurs jours d'ouverture. Ces données n'existent pas dans Google Maps. Profitez-en dans votre UX.

Étapes de migration

  1. 1
    Créez un compte AfriMap et obtenez votre clé sandbox. Testez vos appels existants en parallèle de Google.
  2. 2
    Installez le SDK AfriMap à côté de votre SDK Google. Les deux peuvent coexister pendant la migration.
  3. 3
    Migrez endpoint par endpoint en commençant par le géocodage (le plus simple), puis le routing, puis les places.
  4. 4
    Remplacez la carte Google Maps par MapLibre GL JS. Le changement principal est dans l'initialisation de la carte.
  5. 5
    Testez avec les coordonnées Abidjan listées dans Erreurs & debugging. Vérifiez les polylines (precision 6!) et les formats de réponse.
  6. 6
    Passez en production quand tout fonctionne. Supprimez la dépendance Google Maps et la clé API Google.

Comparaison de code

Google Maps

JavaScriptRoute avec Google
const directionsService = new google.maps.DirectionsService() directionsService.route({ origin: { lat: 5.3197, lng: -4.0167 }, destination: { lat: 5.3480, lng: -3.9904 }, travelMode: 'DRIVING', }, (result, status) => { if (status === 'OK') { // result.routes[0].legs[0] } })

AfriMap

TypeScriptRoute avec AfriMap
const client = new AfriMapClient({ apiKey: 'afm_live_...' }) const { routes } = await client.routing.route({ origin: { lat: 5.3197, lng: -4.0167 }, destination: { lat: 5.3480, lng: -3.9904 }, mode: 'auto', }) // routes[0].legs[0].maneuvers