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.

  1. Changez d'hôte. maps.googleapis.com devient gapi.mygeocode.com, dev.virtualearth.net devient bing.mygeocode.com, et ainsi de suite. Le tableau ci-dessous contient toutes les paires.
  2. 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.
  3. 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.
Avant
$ curl "https://maps.googleapis.com/maps/api/geocode/json?address=10+Downing+St+London&key=GOOGLE_KEY"
Après
$ 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 recherchesHôte d'origineHôte compatibleParamètre de clé
Google Maps Platform
Géocodage direct, inverse, saisie semi-automatique, fuseau horaire, altitude
maps.googleapis.comgapi.mygeocode.comkey
Bing Maps REST Services
Géocodage direct, inverse, saisie semi-automatique, fuseau horaire, altitude
dev.virtualearth.netbing.mygeocode.comkey
HERE Geocoding and Search
Géocodage direct, inverse, saisie semi-automatique
geocode.search.hereapi.com
revgeocode.search.hereapi.com
autosuggest.search.hereapi.com
autocomplete.search.hereapi.com
here.mygeocode.comapiKey
Mapbox Geocoding
Géocodage direct, inverse, saisie semi-automatique
api.mapbox.commapbox.mygeocode.comaccess_token
Geocode.Farm
Géocodage direct, inverse
api.geocode.farm
www.geocode.farm
farm.mygeocode.comkey
OpenStreetMap Nominatim
Géocodage direct, inverse
nominatim.openstreetmap.orgosm.mygeocode.comaucun ; ajoutez key ou l'en-tête
OpenCage
Géocodage direct, inverse
api.opencagedata.comopencage.mygeocode.comkey
LocationIQ
Géocodage direct, inverse, saisie semi-automatique, fuseau horaire
us1.locationiq.com
eu1.locationiq.com
locationiq.mygeocode.comkey
Geoapify
Géocodage direct, inverse, saisie semi-automatique, recherche d'IP
api.geoapify.comgeoapify.mygeocode.comapiKey
TomTom Search
Géocodage direct, inverse, saisie semi-automatique
api.tomtom.comtomtom.mygeocode.comkey
MapQuest Geocoding
Géocodage direct, inverse
www.mapquestapi.com
open.mapquestapi.com
mapquest.mygeocode.comkey
Geocodio
Géocodage direct, inverse
api.geocod.iogeocodio.mygeocode.comapi_key
PositionStack
Géocodage direct, inverse
api.positionstack.compositionstack.mygeocode.comaccess_key
ip-api.com
Recherche d'IP
ip-api.com
pro.ip-api.com
ipapi.mygeocode.comkey
ipinfo.io
Recherche d'IP
ipinfo.ioipinfo.mygeocode.comtoken
ipstack
Recherche d'IP
api.ipstack.comipstack.mygeocode.comaccess_key
Open-Elevation
Elevation
api.open-elevation.comopenelevation.mygeocode.comaucun ; 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èqueChargée depuisÀ charger plutôt depuisCe qui continue de fonctionner
Google Maps JavaScript APImaps.googleapis.comgapi.mygeocode.comgoogle.maps.Map avec nos tuiles (types de carte roadmap, satellite et terrain)
Bing Maps V8 Web Controlwww.bing.combing.mygeocode.comMicrosoft.Maps.Map, Location, LocationRect, Pushpin, Infobox, Polyline, Polygon et Layer
Mapbox GL JS et mapbox-gl-geocodermapbox.mygeocode.comStyles de tuiles vectorielles : streets, light, dark et outdoors, selon la spécification de style Mapbox
Plugins de géocodage Leaflettile.openstreetmap.orgtiles.mygeocode.comLeaflet 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 JavaScriptjs.api.here.comhere.mygeocode.comH.Map, H.map.Marker, H.map.Polyline, H.map.Polygon, H.map.Group
MapQuest.jsapi.mqcdn.commapquest.mygeocode.comL.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ètreUtilisé par
keyGoogle Maps, Bing Maps, Geocode.Farm, OpenCage, LocationIQ, TomTom, MapQuest, ip-api (offre pro)
apiKeyHERE, Geoapify
access_tokenMapbox
api_keyGeocodio
access_keyPositionStack, ipstack
token ou Authorization: Beareripinfo, HERE
aucunNominatim, 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ôteCrédit épuisé (402)Clé invalide, absente ou limitée par IPRequête invalide
gapi.mygeocode.comHTTP 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.comHTTP 429, {"title": "Too Many Requests", "status": 429}HTTP 401 avec error_descriptionHTTP 400 avec title et cause
mapbox.mygeocode.comHTTP 429, {"message": "Rate limit exceeded"}HTTP 401, {"message": "Not Authorized - Invalid Token"}HTTP 422 avec message
osm.mygeocode.comHTTP 429, {"error": {"code": 429, "message": "..."}}Sans objetHTTP 400, {"error": {"code": 400, "message": "..."}}
ipapi.mygeocode.comHTTP 200, {"status": "fail", "message": "quota"}{"status": "fail", "message": "invalid key"}{"status": "fail", "message": "invalid query"}
AutresComme 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 champs precision et confidence.
  • 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

  1. 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.
  2. Remplacez-le par l'hôte compatible indiqué dans le tableau ci-dessus. Conservez le chemin.
  3. 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.
  4. 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.
  5. 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 precision là où l'hôte compatible l'expose (sous la forme location_type, accuracy, resultType, etc.).
  6. Surveillez X-Quota-Used pendant 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.
  7. 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.