Compatibilité drop-in
Vous n'avez pas besoin d'apprendre cette API pour l'utiliser. Pour dix-sept autres API de géocodage et de recherche d'IP, nous exploitons un hôte qui accepte le format de requête de ce fournisseur et répond dans son format de réponse, avec nos données derrière. Il en va de même pour les bibliothèques de cartes JavaScript que ces fournisseurs proposent. La migration se résume à un changement de nom d'hôte.
Comment ça marche
Chaque hôte compatible est une implémentation complète de l'interface HTTP publique d'un fournisseur : les mêmes chemins, les mêmes paramètres de requête, les mêmes noms de champs JSON, la même imbrication et les mêmes types, le même vocabulaire de statuts et les mêmes formats d'erreur. Les valeurs sont les nôtres. Votre code client, votre code d'analyse et votre gestion des erreurs ne changent pas.
- Changez d'hôte.
maps.googleapis.comdevientgapi.mygeocode.com,dev.virtualearth.netdevientbing.mygeocode.com, et ainsi de suite. Le tableau ci-dessous contient toutes les paires. - Remplacez la clé, ou supprimez-la. Placez votre clé My Geocode dans le paramètre qu'utilisait l'ancienne clé (
key,apiKey,access_token,token...). Toute adresse dispose de 2 500 requêtes gratuites par jour sans clé, et chaque clé est fournie avec ses propres 2 500 requêtes, donc migrer et tester ne coûte rien. - Comparez. Envoyez un échantillon de requêtes réelles aux deux hôtes. Les coordonnées différeront légèrement parce que les données sont différentes ; les noms de champs, non.
$ curl "https://maps.googleapis.com/maps/api/geocode/json?address=10+Downing+St+London&key=GOOGLE_KEY"$ curl "https://gapi.mygeocode.com/maps/api/geocode/json?address=10+Downing+St+London&key=MYGEOCODE_KEY"Tous les hôtes compatibles
Chaque hôte fonctionne sur la même infrastructure, avec les mêmes données, le même quota gratuit et les mêmes prix que api.mygeocode.com. Cliquez sur un fournisseur pour voir la liste de ses endpoints, un exemple de réponse et les différences connues.
| Fournisseur et recherches | Hôte d'origine | Hôte compatible | Paramètre de clé |
|---|---|---|---|
| Google Maps Platform Géocodage direct, inverse, saisie semi-automatique, fuseau horaire, altitude | maps.googleapis.com | gapi.mygeocode.com | key |
| Bing Maps REST Services Géocodage direct, inverse, saisie semi-automatique, fuseau horaire, altitude | dev.virtualearth.net | bing.mygeocode.com | key |
| HERE Geocoding and Search Géocodage direct, inverse, saisie semi-automatique | geocode.search.hereapi.comrevgeocode.search.hereapi.comautosuggest.search.hereapi.comautocomplete.search.hereapi.com | here.mygeocode.com | apiKey |
| Mapbox Geocoding Géocodage direct, inverse, saisie semi-automatique | api.mapbox.com | mapbox.mygeocode.com | access_token |
| Geocode.Farm Géocodage direct, inverse | api.geocode.farmwww.geocode.farm | farm.mygeocode.com | key |
| OpenStreetMap Nominatim Géocodage direct, inverse | nominatim.openstreetmap.org | osm.mygeocode.com | aucun ; ajoutez key ou l'en-tête |
| OpenCage Géocodage direct, inverse | api.opencagedata.com | opencage.mygeocode.com | key |
| LocationIQ Géocodage direct, inverse, saisie semi-automatique, fuseau horaire | us1.locationiq.comeu1.locationiq.com | locationiq.mygeocode.com | key |
| Geoapify Géocodage direct, inverse, saisie semi-automatique, recherche d'IP | api.geoapify.com | geoapify.mygeocode.com | apiKey |
| TomTom Search Géocodage direct, inverse, saisie semi-automatique | api.tomtom.com | tomtom.mygeocode.com | key |
| MapQuest Geocoding Géocodage direct, inverse | www.mapquestapi.comopen.mapquestapi.com | mapquest.mygeocode.com | key |
| Geocodio Géocodage direct, inverse | api.geocod.io | geocodio.mygeocode.com | api_key |
| PositionStack Géocodage direct, inverse | api.positionstack.com | positionstack.mygeocode.com | access_key |
| ip-api.com Recherche d'IP | ip-api.compro.ip-api.com | ipapi.mygeocode.com | key |
| ipinfo.io Recherche d'IP | ipinfo.io | ipinfo.mygeocode.com | token |
| ipstack Recherche d'IP | api.ipstack.com | ipstack.mygeocode.com | access_key |
| Open-Elevation Elevation | api.open-elevation.com | openelevation.mygeocode.com | aucun ; ajoutez key ou l'en-tête |
Bibliothèques de cartes JavaScript
Les changements de fournisseur font le plus mal dans le navigateur, où la carte, le widget de géocodage et la facturation sont imbriqués. Pour les bibliothèques ci-dessous, la bibliothèque elle-même est chargée depuis notre hôte (ou, pour MapLibre, Mapbox GL et Leaflet, pointée vers notre hôte par configuration) et conserve son API publique : google.maps.Map, Microsoft.Maps.Map, H.Map et le reste. Les tuiles, le géocodage, la saisie semi-automatique et l'altitude viennent de chez nous. Les chargements de carte et les tuiles sont gratuits ; les appels de géocodage sont comptés comme d'habitude.
| Bibliothèque | Chargée depuis | À charger plutôt depuis | Ce qui continue de fonctionner |
|---|---|---|---|
| Google Maps JavaScript API | maps.googleapis.com | gapi.mygeocode.com | google.maps.Map avec nos tuiles (types de carte roadmap, satellite et terrain) |
| Bing Maps V8 Web Control | www.bing.com | bing.mygeocode.com | Microsoft.Maps.Map, Location, LocationRect, Pushpin, Infobox, Polyline, Polygon et Layer |
| Mapbox GL JS et mapbox-gl-geocoder | | mapbox.mygeocode.com | Styles de tuiles vectorielles : streets, light, dark et outdoors, selon la spécification de style Mapbox |
| Plugins de géocodage Leaflet | tile.openstreetmap.org | tiles.mygeocode.com | Leaflet Control Geocoder : géocodeurs nominatim, google, bing, mapbox, here, opencage, latLng et mapquest, chacun pointé vers l'hôte www.mygeocode.com correspondant |
| HERE Maps API for JavaScript | js.api.here.com | here.mygeocode.com | H.Map, H.map.Marker, H.map.Polyline, H.map.Polygon, H.map.Group |
| MapQuest.js | api.mqcdn.com | mapquest.mygeocode.com | L.mapquest.map, tileLayer (map, hybrid, satellite, light et dark) |
La page des remplacements JavaScript présente les extraits de code avant et après, la liste de ce qui est inclus ou non pour chaque bibliothèque, ainsi que les URL des tuiles et des styles.
Où placer la clé
Chaque hôte accepte la clé à l'endroit où le fournisseur d'origine l'attend, ainsi que dans l'en-tête X-API-Key. Une clé est facultative : 2 500 requêtes par jour et par adresse n'en nécessitent aucune. Une clé gratuite s'obtient en une minute et apporte du crédit, des forfaits et un historique d'utilisation. Une clé en paiement à l'usage peut être utilisée depuis deux adresses IP par période glissante de 24 heures, et une clé Unlimited depuis trois ; utilisez davantage de clés ou de forfaits pour davantage d'adresses (voir authentification).
| Paramètre | Utilisé par |
|---|---|
key | Google Maps, Bing Maps, Geocode.Farm, OpenCage, LocationIQ, TomTom, MapQuest, ip-api (offre pro) |
apiKey | HERE, Geoapify |
access_token | Mapbox |
api_key | Geocodio |
access_key | PositionStack, ipstack |
token ou Authorization: Bearer | ipinfo, HERE |
| aucun | Nominatim, Open-Elevation. Ajoutez key=... à la requête ou envoyez l'en-tête X-API-Key. |
Quotas et erreurs sur les hôtes compatibles
Le quota journalier est le même que partout ailleurs et il est compté par clé, ou par adresse lorsqu'aucune clé n'est envoyée, sur api.mygeocode.com et tous les hôtes compatibles : 2 500 requêtes gratuites par jour, puis du crédit ou une clé Unlimited. Les en-têtes X-Quota-* et X-Key-IPs-* sont envoyés sur tous les hôtes, vous pouvez donc lire l'état réel dans les en-têtes quel que soit le format du corps. Dans le corps, les limites sont signalées de la manière dont le fournisseur les signale :
| Hôte | Crédit épuisé (402) | Clé invalide, absente ou limitée par IP | Requête invalide |
|---|---|---|---|
| gapi.mygeocode.com | HTTP 200, "status": "OVER_QUERY_LIMIT" | "status": "REQUEST_DENIED" | "status": "INVALID_REQUEST" |
| bing.mygeocode.com | "statusCode": 429 dans l'enveloppe | "statusCode": 401, authenticationResultCode: InvalidCredentials | "statusCode": 400 avec errorDetails |
| here.mygeocode.com | HTTP 429, {"title": "Too Many Requests", "status": 429} | HTTP 401 avec error_description | HTTP 400 avec title et cause |
| mapbox.mygeocode.com | HTTP 429, {"message": "Rate limit exceeded"} | HTTP 401, {"message": "Not Authorized - Invalid Token"} | HTTP 422 avec message |
| osm.mygeocode.com | HTTP 429, {"error": {"code": 429, "message": "..."}} | Sans objet | HTTP 400, {"error": {"code": 400, "message": "..."}} |
| ipapi.mygeocode.com | HTTP 200, {"status": "fail", "message": "quota"} | {"status": "fail", "message": "invalid key"} | {"status": "fail", "message": "invalid query"} |
| Autres | Comme documenté par le fournisseur ; voir la page de chaque hôte |
Ce qui correspond et ce qui ne correspond pas
Identique
- Les chemins, méthodes et paramètres de requête documentés par le fournisseur.
- La structure des réponses : noms de champs, imbrication, tableaux, types, ordre des coordonnées (y compris le
[lon, lat]de Mapbox). - Les vocabulaires de statut et de confiance (
ROOFTOP,High,houseNumber,EXACT_MATCH...), établis à partir de nos champsprecisionetconfidence. - Les formats d'erreur, pour que la gestion existante continue de fonctionner.
- Les tarifs et le quota : rien de plus pour l'utilisation d'un hôte compatible.
Différent
- Les données. Les coordonnées, les chaînes formatées et les valeurs de confiance sont les nôtres et ne correspondront pas à l'original chiffre pour chiffre. La couverture au niveau du numéro de rue varie selon les pays ; voir la couverture.
- Les identifiants. Les identifiants de lieu sont les nôtres et sont stables, mais ils ne peuvent pas être envoyés au fournisseur d'origine.
- Tout ce qui sort du géocodage, de la saisie semi-automatique, de l'IP, du fuseau horaire et de l'altitude : calcul d'itinéraires, détails de lieux, photos, trafic, Street View. La page de chaque hôte indique ce qui manque.
- Les clés : deux adresses IP par période glissante de 24 heures pour une clé en paiement à l'usage, trois pour une clé Unlimited, comme sur nos propres endpoints.
Liste de contrôle pour la migration
- Recherchez le nom d'hôte du fournisseur dans votre code et votre configuration. Il se trouve souvent à plusieurs endroits : code serveur, applications mobiles, règle de CDN, configuration en cache.
- Remplacez-le par l'hôte compatible indiqué dans le tableau ci-dessus. Conservez le chemin.
- Remplacez la clé par une clé My Geocode. Utilisez une clé par serveur, ou pour deux serveurs au maximum ; une clé en paiement à l'usage accepte deux adresses IP par période glissante de 24 heures, une clé Unlimited trois.
- Lancez votre suite de tests existante. Elle doit passer sans modification. Si un champ dont vous dépendez est absent, consultez la page de l'hôte pour les lacunes connues et prévenez-nous.
- Rejouez quelques centaines de requêtes réelles sur les deux hôtes et comparez les coordonnées et les champs que vous affichez. Regardez
precisionlà où l'hôte compatible l'expose (sous la formelocation_type,accuracy,resultType, etc.). - Surveillez
X-Quota-Usedpendant une journée pour dimensionner votre offre : du crédit en dessous d'environ 19 000 requêtes par jour, une clé Unlimited au-dessus. - Résiliez l'ancienne facturation.
SDK des fournisseurs
La plupart des bibliothèques clientes officielles acceptent une URL de base personnalisée, elles fonctionnent donc aussi avec les hôtes compatibles : les clients Google Maps Services (googlemaps pour Python, @googlemaps/google-maps-services-js), les SDK Mapbox (option origin), les clients REST de HERE, les bibliothèques d'ipinfo et les wrappers Nominatim comme geopy (domain=). Pointez-les vers l'hôte du tableau et passez votre clé My Geocode là où allait la clé du fournisseur.
Un fournisseur qui n'est pas dans la liste
Ajouter un hôte représente quelques jours de travail lorsque le format du fournisseur est documenté. Si vous utilisez un service qui ne figure pas ici, dites-nous lequel et combien de requêtes par jour vous envoyez environ. Les derniers ajouts étaient tous des demandes d'utilisateurs.