Compatibilidad drop-in

No tienes que aprender esta API para usarla. Para otras diecisiete API de geocodificación y consulta de IP tenemos un host que acepta el formato de solicitud de ese proveedor y responde en su formato de respuesta, con nuestros datos detrás. Lo mismo se aplica a las bibliotecas de mapas en JavaScript que ofrecen esos proveedores. Migrar es cambiar un nombre de host.

Cómo funciona

Cada host compatible es una implementación completa de la interfaz HTTP pública de un proveedor: las mismas rutas, los mismos parámetros de consulta, los mismos nombres de campos JSON, anidamiento y tipos, el mismo vocabulario de estados y las mismas estructuras de error. Los valores son nuestros. Tu código cliente, tu código de análisis y tu gestión de errores no cambian.

  1. Cambia el host. maps.googleapis.com pasa a ser gapi.mygeocode.com, dev.virtualearth.net pasa a ser bing.mygeocode.com, y así sucesivamente. La tabla de abajo tiene todos los pares.
  2. Cambia la clave o quítala. Pon tu clave de My Geocode en el parámetro que usaba la clave anterior (key, apiKey, access_token, token...). Cualquier dirección tiene 2.500 solicitudes gratuitas al día sin clave, y cada clave trae 2.500 propias, así que migrar y hacer pruebas no cuesta nada.
  3. Compara. Ejecuta una muestra de solicitudes reales contra ambos hosts. Las coordenadas diferirán ligeramente porque los datos son distintos; los nombres de los campos no.
Antes
$ curl "https://maps.googleapis.com/maps/api/geocode/json?address=10+Downing+St+London&key=GOOGLE_KEY"
Después
$ curl "https://gapi.mygeocode.com/maps/api/geocode/json?address=10+Downing+St+London&key=MYGEOCODE_KEY"

Todos los hosts compatibles

Todos los hosts funcionan sobre la misma infraestructura, con los mismos datos, la misma cuota gratuita y los mismos precios que api.mygeocode.com. Haz clic en un proveedor para ver su lista de endpoints, una respuesta de ejemplo y las diferencias conocidas.

Proveedor y consultasHost originalHost compatibleParámetro de la clave
Google Maps Platform
Directa, inversa, autocompletado, zona horaria, elevación
maps.googleapis.comgapi.mygeocode.comkey
Bing Maps REST Services
Directa, inversa, autocompletado, zona horaria, elevación
dev.virtualearth.netbing.mygeocode.comkey
HERE Geocoding and Search
Directa, inversa, autocompletado
geocode.search.hereapi.com
revgeocode.search.hereapi.com
autosuggest.search.hereapi.com
autocomplete.search.hereapi.com
here.mygeocode.comapiKey
Mapbox Geocoding
Directa, inversa, autocompletado
api.mapbox.commapbox.mygeocode.comaccess_token
Geocode.Farm
Directa, inversa
api.geocode.farm
www.geocode.farm
farm.mygeocode.comkey
OpenStreetMap Nominatim
Directa, inversa
nominatim.openstreetmap.orgosm.mygeocode.comninguno; añade key o la cabecera
OpenCage
Directa, inversa
api.opencagedata.comopencage.mygeocode.comkey
LocationIQ
Directa, inversa, autocompletado, zona horaria
us1.locationiq.com
eu1.locationiq.com
locationiq.mygeocode.comkey
Geoapify
Directa, inversa, autocompletado, consulta de IP
api.geoapify.comgeoapify.mygeocode.comapiKey
TomTom Search
Directa, inversa, autocompletado
api.tomtom.comtomtom.mygeocode.comkey
MapQuest Geocoding
Directa, inversa
www.mapquestapi.com
open.mapquestapi.com
mapquest.mygeocode.comkey
Geocodio
Directa, inversa
api.geocod.iogeocodio.mygeocode.comapi_key
PositionStack
Directa, inversa
api.positionstack.compositionstack.mygeocode.comaccess_key
ip-api.com
Consulta de IP
ip-api.com
pro.ip-api.com
ipapi.mygeocode.comkey
ipinfo.io
Consulta de IP
ipinfo.ioipinfo.mygeocode.comtoken
ipstack
Consulta de IP
api.ipstack.comipstack.mygeocode.comaccess_key
Open-Elevation
Elevation
api.open-elevation.comopenelevation.mygeocode.comninguno; añade key o la cabecera

Bibliotecas de mapas en JavaScript

Los cambios de proveedor duelen más en el navegador, donde el mapa, el widget de geocodificación y la facturación están enredados. En las bibliotecas de abajo, la propia biblioteca se carga desde nuestro host (o, en el caso de MapLibre, Mapbox GL y Leaflet, se apunta a nuestro host mediante configuración) y conserva su API pública: google.maps.Map, Microsoft.Maps.Map, H.Map y el resto. Las teselas, la geocodificación, el autocompletado y la elevación los ponemos nosotros. Las cargas de mapas y las teselas son gratuitas; las llamadas de geocodificación cuentan como siempre.

BibliotecaSe carga desdeCárgala en su lugar desdeQué sigue funcionando
Google Maps JavaScript APImaps.googleapis.comgapi.mygeocode.comgoogle.maps.Map con nuestros mapas base (tipos de mapa roadmap, satellite y terrain)
Bing Maps V8 Web Controlwww.bing.combing.mygeocode.comMicrosoft.Maps.Map, Location, LocationRect, Pushpin, Infobox, Polyline, Polygon y Layer
Mapbox GL JS y mapbox-gl-geocodermapbox.mygeocode.comEstilos de teselas vectoriales: streets, light, dark y outdoors, según la especificación de estilos de Mapbox
Plugins de geocodificación de Leaflettile.openstreetmap.orgtiles.mygeocode.comLeaflet Control Geocoder: geocodificadores nominatim, google, bing, mapbox, here, opencage, latLng y mapquest, cada uno apuntando al host de www.mygeocode.com correspondiente
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 y tileLayer (map, hybrid, satellite, light, dark)

La página de reemplazos compatibles en JavaScript tiene los fragmentos de antes y después, la lista de lo que incluye y no incluye cada biblioteca, y las URL de teselas y estilos.

Dónde va la clave

Cada host acepta la clave en el lugar donde la espera el proveedor original, y también en la cabecera X-API-Key. La clave es opcional: 2.500 solicitudes al día por dirección no la necesitan. Una clave gratuita se obtiene en un minuto y añade crédito, paquetes y un historial de uso. Una clave de pago por uso puede usarse desde dos direcciones IP por cada 24 horas móviles y una clave Unlimited desde tres; usa más claves o paquetes para más direcciones (consulta autenticación).

ParámetroUsado por
keyGoogle Maps, Bing Maps, Geocode.Farm, OpenCage, LocationIQ, TomTom, MapQuest, ip-api (plan pro)
apiKeyHERE, Geoapify
access_tokenMapbox
api_keyGeocodio
access_keyPositionStack, ipstack
token o Authorization: Beareripinfo, HERE
ningunoNominatim, Open-Elevation. Añade key=... a la consulta o envía la cabecera X-API-Key.

Cuota y errores en los hosts compatibles

La cuota diaria es la misma que en todas partes y se cuenta por clave, o por dirección si no se envía clave, entre api.mygeocode.com y todos los hosts compatibles: 2.500 gratuitas al día y después crédito o una clave Unlimited. Las cabeceras X-Quota-* y X-Key-IPs-* se envían en todos los hosts, así que puedes leer el estado real en las cabeceras sea cual sea el formato del cuerpo. En el cuerpo, los límites se informan como los informa el proveedor:

HostSin crédito (402)Clave incorrecta, ausente o limitada por IPSolicitud no válida
gapi.mygeocode.comHTTP 200, "status": "OVER_QUERY_LIMIT""status": "REQUEST_DENIED""status": "INVALID_REQUEST"
bing.mygeocode.com"statusCode": 429 en el sobre"statusCode": 401, authenticationResultCode: InvalidCredentials"statusCode": 400 con errorDetails
here.mygeocode.comHTTP 429, {"title": "Too Many Requests", "status": 429}HTTP 401 con error_descriptionHTTP 400 con title y cause
mapbox.mygeocode.comHTTP 429, {"message": "Rate limit exceeded"}HTTP 401, {"message": "Not Authorized - Invalid Token"}HTTP 422 con message
osm.mygeocode.comHTTP 429, {"error": {"code": 429, "message": "..."}}No aplicaHTTP 400, {"error": {"code": 400, "message": "..."}}
ipapi.mygeocode.comHTTP 200, {"status": "fail", "message": "quota"}{"status": "fail", "message": "invalid key"}{"status": "fail", "message": "invalid query"}
OtrosSegún la documentación del proveedor; consulta la página de cada host

Qué coincide y qué no

Idéntico

  • Las rutas, los métodos y los parámetros de consulta que documenta el proveedor.
  • La estructura de la respuesta: nombres de campos, anidamiento, arrays, tipos y orden de las coordenadas (incluido el [lon, lat] de Mapbox).
  • Los vocabularios de estado y de confianza (ROOFTOP, High, houseNumber, EXACT_MATCH...), derivados de nuestros precision y confidence.
  • Las estructuras de error, para que tu gestión actual siga funcionando.
  • Precios y cuota: no hay ningún coste extra por usar un host compatible.

Diferente

  • Los datos. Las coordenadas, las cadenas con formato y los valores de confianza son nuestros y no coincidirán dígito a dígito con el original. La cobertura a nivel de número de casa varía según el país; consulta cobertura.
  • Los identificadores. Los ID de lugar son nuestros y son estables, pero no se pueden enviar al proveedor original.
  • Todo lo que queda fuera de la geocodificación, el autocompletado, la IP, la zona horaria y la elevación: rutas, detalles de lugares, fotos, tráfico, Street View. La página de cada host indica lo que falta.
  • Las claves: dos direcciones IP por cada 24 horas móviles en una clave de pago por uso, tres en una clave Unlimited, igual que en nuestros propios endpoints.

Lista de comprobación para la migración

  1. Busca el nombre de host del proveedor en tu código y tu configuración. Suele estar en más de un sitio: código del servidor, apps móviles, una regla de CDN, una configuración en caché.
  2. Cámbialo por el host compatible de la tabla anterior. Conserva la ruta.
  3. Sustituye la clave por una clave de My Geocode. Usa una clave por servidor, o dos como máximo; una clave de pago por uso acepta dos direcciones IP por cada 24 horas móviles, una clave Unlimited tres.
  4. Ejecuta tu batería de pruebas actual. Debería pasar sin cambios. Si falta un campo del que dependes, revisa en la página del host las carencias conocidas y avísanos.
  5. Repite unos cientos de solicitudes reales contra ambos hosts y compara las coordenadas y los campos que muestras. Fíjate en precision donde el host compatible la expone (como location_type, accuracy, resultType, etc.).
  6. Observa X-Quota-Used durante un día para dimensionar tu plan: crédito por debajo de unas 19.000 solicitudes al día, una clave Unlimited por encima.
  7. Cancela la facturación anterior.

SDK de los proveedores

La mayoría de las bibliotecas cliente oficiales aceptan una URL base personalizada, así que también funcionan con los hosts compatibles: los clientes de Google Maps Services (googlemaps para Python, @googlemaps/google-maps-services-js), los SDK de Mapbox (opción origin), los clientes REST de HERE, las bibliotecas de ipinfo y los wrappers de Nominatim como geopy (domain=). Apúntalos al host de la tabla y pasa tu clave de My Geocode donde iba la clave del proveedor.

Un proveedor que no aparece en la lista

Añadir un host lleva unos días de trabajo cuando el formato del proveedor está documentado. Si usas un servicio que no está aquí, dinos cuál y aproximadamente cuántas solicitudes envías al día. Todas las incorporaciones recientes fueron peticiones de usuarios.