Migración

Migrar desde Mapbox Geocoding

Mapbox Geocoding devuelve los resultados como una FeatureCollection de GeoJSON, una elección deliberada que facilita pasar la salida directamente a Mapbox GL o a cualquier otra biblioteca de mapas compatible con GeoJSON. Cada feature incluye un par de coordenadas center, una cadena place_name y un array context que describe la región, el país y el código postal que la contienen. La autenticación se hace con un token de acceso, normalmente enviado como parámetro de consulta, y muchos equipos usan además el mismo token para las teselas de sus mapas web y para sus llamadas de geocodificación.

Ese doble uso de un mismo token merece atención antes de una migración, porque significa que la llamada de geocodificación y la de renderizado del mapa suelen estar más entrelazadas en el código de la aplicación de lo que parece al principio. Separarlas limpiamente, para que la solicitud de geocodificación pueda apuntar a un nuevo host mientras las teselas del mapa se quedan donde están, suele ser la primera decisión real que hay que tomar.

El host de compatibilidad de Mapbox de My Geocode reproduce la estructura FeatureCollection, incluidos los campos center, place_name y context, de modo que el código construido en torno a response.features[0].center sigue funcionando después del cambio. Solo difieren de los de Mapbox los textos de copyright, términos y privacidad de la respuesta. La referencia de campos está en /compatibility/mapbox/.

Algunas notas prácticas para los equipos que hagan este cambio:

  • Si tu front end llama a Mapbox Geocoding directamente desde JavaScript en el lado del cliente, vale la pena plantearse primero mover esa llamada a un proxy en el servidor, sea cual sea el proveedor al que acabes llegando, ya que así las claves de API quedan fuera del código del navegador
  • La autenticación acepta una cabecera X-API-Key, una cabecera Authorization: Bearer, la autenticación HTTP Basic o un parámetro de consulta, así que el estilo que use tu cliente actual de Mapbox para su token de acceso debería corresponder a uno de ellos
  • Si dependes de los parámetros de proximidad o de cuadro delimitador de Mapbox para sesgar los resultados hacia una región, consulta en la documentación del host de compatibilidad los nombres de los parámetros equivalentes antes de suponer que se mantienen sin cambios

Los precios eliminan la estructura de niveles por token que crece con el uso en muchas plataformas de mapas. Aquí, 2.500 solicitudes al día son gratuitas sin ninguna clave, y cada clave tiene además sus propias 2.500 solicitudes gratuitas al día, contadas por red. Después se usa crédito prepago a 0,0001 € por solicitud o una clave Unlimited a 50 € al mes, y todos los endpoints, incluido este host de compatibilidad, cuestan lo mismo.

Como Mapbox se usa con frecuencia junto con teselas de mapa e imágenes de mapas estáticos y no solo para geocodificación, conviene dejar claro el alcance: My Geocode es una API de geocodificación, IP, zona horaria, elevación y consulta de códigos postales, no un proveedor de teselas ni de mapas base. Los equipos que mantengan su renderizado de mapas actual y muevan solo la búsqueda de direcciones a un nuevo host deben contar con usar dos proveedores en paralelo durante un tiempo, uno para las teselas y otro para la geocodificación, lo cual es una forma normal y estable de repartir el trabajo y no un estado temporal que haya que dejar atrás con prisas.