Passer de Google Maps Platform à N-Ways
Le même modèle de projets, de clés restreintes et de quotas, avec des cartes, des adresses et des itinéraires faits pour l’Afrique de l’Ouest. Ce qui correspond à quoi, et comment migrer une API à la fois.
Sur cette page
Si votre application utilise déjà Google Maps Platform, l’essentiel de ce que vous savez reste valable : N-Ways utilise le même modèle de projets, de clés restreintes, de quotas par API et de raisons d’erreur. Ce guide fait correspondre chaque élément à son équivalent N-Ways et montre ce qui change dans votre code. Vous pouvez migrer une API à la fois.
N-Ways n’est pas affilié à Google. Google Maps Platform n’est cité ici que pour vous aider à migrer ; ses produits sont décrits avec nos propres mots. Consultez la documentation de Google pour savoir comment ils fonctionnent.
Pourquoi changer
- Les adresses qu’on utilise ici : les codes postaux NIPOST jusqu’au bâtiment, les codes GhanaPost GPS, les points de repère et les surnoms.
- La façon dont on se déplace ici : des itinéraires en moto-taxi (okada), en keke et en danfo qui respectent les zones interdites, les bateaux, les trains, les passages de frontière, et des tarifs en naira, en cédis, en F CFA, en dollars libériens, en francs guinéens, en leones et en escudos cap-verdiens.
- Une facture plus légère : une franchise gratuite pour chaque API chaque mois, et des prix qui représentent une fraction de ceux des plateformes mondiales, facturés en monnaie locale.
- Une technologie cartographique ouverte : les cartes reposent sur MapLibre et des tuiles vectorielles, vous pouvez donc changer leur style et afficher les données N-Ways sur n’importe quelle carte, avec la mention.
Concepts
| Google Maps Platform | N-Ways | Ce qui change |
|---|---|---|
| Projet cloud avec facturation | Projet | Un projet par application ou par client ; pas de compte de facturation séparé. Crédit prépayé ou facture. |
| Activer chaque API | La formule du projet | Pas d’étape d’activation : un projet peut appeler les API de sa formule, et chaque clé peut être restreinte davantage. |
| Clé d’API | Clé d’API (nw_…) | Envoyée avec key= ou l’en-tête X-NWays-Api-Key. |
| Restrictions d’application | Restrictions d’application | Les quatre mêmes types : sites web (avec caractères génériques), package Android et SHA-1, bundle ID iOS, adresses IP. Un seul type par clé. |
| Restrictions d’API | Restrictions d’API | Cochez les API qu’une clé peut appeler. |
| Quotas et plafonds | Limites de débit et plafonds journaliers | Par clé et par API, et si vous le souhaitez pour l’ensemble du projet. Quotas et limites |
| Masques de champs | fields= | Choisissez les champs dont vous avez besoin ; pour les lieux et les itinéraires, cela détermine aussi le palier de prix. |
| Utilisation gratuite mensuelle | Des appels gratuits pour chaque API | Comptés par API, pas un crédit partagé. |
| Jetons de session pour la saisie semi-automatique | Jetons de session | Même principe : un jeton par recherche, terminé par le choix d’un résultat. |
API
| Si vous utilisez | Sur N-Ways, utilisez | Statut |
|---|---|---|
| Maps JavaScript API | SDK Maps pour le web (@nways/maps, basé sur MapLibre GL JS) | Disponible |
| Maps SDK for Android / iOS | N-Ways Maps pour Android et pour iOS (basé sur MapLibre Native) | Disponible |
| Map Tiles API | API Tuiles (tuiles vectorielles, PMTiles) | Disponible |
| Maps Static API | Cartes statiques | Voir sa page |
| Geocoding API | Géocodage et géocodage inverse | Disponible |
| Places API : nearby, text search, details | Recherche et lieux | Disponible |
| Places Autocomplete | Saisie semi-automatique | Voir sa page |
| Address Validation API | Validation d’adresse | Voir sa page |
| Routes API : compute routes | Itinéraires | Disponible |
| Routes API : route matrix | Matrice d’itinéraires | Voir sa page |
| Route Optimization API | Optimisation de tournées | Voir sa page |
| Solutions de flotte et de livraison du dernier kilomètre | Suivi de flotte et webhooks | Voir sa page |
| Calque de trafic (Traffic layer) | Trafic (GeoJSON) et le flux de trafic | Disponible |
| Street View, Elevation, Roads, Air Quality, Solar, Pollen | Pas d’équivalent | Gardez-les où ils sont |
N-Ways a aussi des API sans équivalent chez Google : des estimations de tarifs pour les taxis, les okadas, les kekes, les bus et les bateaux, la recherche de codes postaux NIPOST et GhanaPost, et des itinéraires qui respectent les interdictions d’okada et de keke.
Une carte dans une page web
Les cartes N-Ways sont des cartes MapLibre GL JS. Les principales différences avec la carte JavaScript de Google :
- Les coordonnées s’écrivent
[longitude, latitude]dans MapLibre (l’ordre GeoJSON), et non{ lat, lng }. C’est le changement qui piège tout le monde : inversez-les. - Les niveaux de zoom sont très proches ; MapLibre accepte les zooms fractionnaires.
- Marqueurs :
new maplibregl.Marker().setLngLat([lng, lat]).addTo(map). Les fenêtres d’information sont desmaplibregl.Popup. - Les formes (polylignes, polygones, cercles) sont des sources GeoJSON avec des couches
lineoufill, dessinées par le GPU : même par milliers, elles restent fluides. - Événements :
map.on('click', (e) => e.lngLat); la carte est prête au moment demap.on('load').
<link rel="stylesheet" href="https://nways.ng/sdk/v1/maplibre-gl.css" />
<div id="map" style="height: 480px"></div>
<script type="module">
import { createMap, maplibregl } from 'https://nways.ng/sdk/v1/nways-maps.standalone.js'
// Lagos, Allen Avenue. Attention à l’ordre : la longitude d’abord.
const map = createMap({ container: 'map', key: 'VOTRE_CLE_API', center: [3.3515, 6.6018], zoom: 15 })
new maplibregl.Marker({ color: '#0b7a3e' })
.setLngLat([3.3515, 6.6018])
.setPopup(new maplibregl.Popup().setText('Point d’enlèvement'))
.addTo(map)
</script>Services web
- Les erreurs sont des erreurs HTTP : une clé refusée reçoit
401ou403avec unereason(API_KEY_HTTP_REFERRER_BLOCKED,API_KEY_SERVICE_BLOCKED…), jamais200avec un mot de statut. Beaucoup de raisons portent le même nom que chez Google. Erreurs - Les points dans les requêtes s’écrivent
{ "lat": …, "lng": … }oulat,lngdans les paramètres ; les lignes dans les réponses sont des paires GeoJSON[lng, lat], pas des polylignes encodées, elles vont donc directement sur une carte. - Les distances et les durées sont de simples nombres :
distanceMen mètres,durationSen secondes. - Langues :
lang=enoulang=fr. - Les identifiants sont des chaînes que vous pouvez garder définitivement (
osm:n501540907,ghanapost:GA-183-8164) ; ce ne sont pas des identifiants de lieu Google, il faut donc retrouver chaque lieu une fois, par son nom ou sa position.
Préparer la migration
- Obtenez un projet et des clés, une par site web, application et serveur, restreintes de la même façon que vos clés Google. Premiers pas
- Commencez par le côté serveur : le géocodage et les itinéraires sont les plus faciles à basculer et à comparer, derrière votre propre backend.
- Faites tourner les deux pendant une semaine : envoyez une partie des requêtes à N-Ways et comparez les réponses, les heures d’arrivée estimées et l’avis de vos livreurs.
- Changez les cartes dans vos applications web et mobiles, en gardant la mention visible. Attribution
- Remplacez les identifiants stockés : remplacez les identifiants de lieu Google par des identifiants N-Ways au fur et à mesure que les clients reviennent, ou en une seule fois, par position.
- Fixez des plafonds sur chaque clé pour qu’un bug ne puisse pas faire grimper la facture, puis désactivez les clés Google que vous n’utilisez plus.
De l’aide pour migrer
Indiquez-nous les API que vous utilisez et vos volumes mensuels à hello@nways.ng : nous vous aiderons à préparer la migration et à estimer votre facture.