Guías

Consulta el código postal de una dirección incompleta

Un cliente que deja en blanco el campo del código postal no te ha dado necesariamente datos erróneos. La geocodificación directa normalmente puede completar ese hueco a partir del resto de la dirección.

Enviar la dirección incompleta

Envía el texto que tengas, como mínimo la calle y la ciudad, a /v1/forward. El objeto components del resultado incluye el código postal de la mejor coincidencia, aunque la entrada nunca lo mencionara.

GET /v1/forward?q=1600 Pennsylvania Avenue, Washington&limit=1
{
  "status": "ok",
  "query": "1600 Pennsylvania Avenue, Washington",
  "results": [
    {
      "formatted": "1600 Pennsylvania Avenue NW, Washington, DC 20500",
      "lat": 38.8977,
      "lon": -77.0365,
      "type": "address",
      "precision": "house",
      "confidence": 0.97,
      "place_id": "def456",
      "components": {"postcode": "20500", "city": "Washington", "region": "DC", "country": "US"}
    }
  ]
}

Un ejemplo con menos datos, y por qué importa

No todas las direcciones están así de completas. Una consulta con solo una ciudad y una región, como «Springfield, Illinois», puede devolver un resultado, pero el código postal en components abarcará toda la ciudad en lugar de un edificio, y el campo precision mostrará algo más aproximado que «house». Esa diferencia importa si piensas imprimir el código postal devuelto en una etiqueta de envío en lugar de usarlo solo para una estimación regional, ya que un código postal a nivel de ciudad no ofrece la misma garantía que uno a nivel de vivienda.

Confiar en el resultado

Comprueba los campos precision y confidence antes de tratar como fiable el código postal devuelto. Una precisión «house» con una puntuación de confianza alta significa que la coincidencia fue lo bastante específica como para confiar directamente en el valor del código postal. Una precisión más aproximada, como una coincidencia a nivel de calle o de ciudad, significa que el código postal cubre un área más amplia y podría no corresponder a la dirección exacta que quería indicar el cliente.

Coste de esta consulta

Es una sola consulta, una solicitud de tu cuota diaria por cada dirección. Hacerlo en cada envío de formulario de pago o de registro que llegue sin código postal es un uso normal y rara vez se acercará a las 2.500 solicitudes gratuitas incluidas cada día con una clave, o desde una sola dirección IP sin ella.

Cuando no hay una buena coincidencia

Un array de resultados vacío, o un resultado con una puntuación de confianza baja, significa que la dirección era demasiado imprecisa para resolverla. En ese caso, pide al cliente directamente el código postal en lugar de adivinarlo, ya que un código postal erróneo en una etiqueta de envío causa más problemas que uno vacío.

Un caso límite que conviene prever

Algunos países no usan códigos postales en absoluto, o los usan de forma tan irregular que el objeto components simplemente omite el campo en un resultado determinado. No trates por sí sola la ausencia del campo de código postal como un error: comprueba primero el país en el objeto components y marca la fila para revisión solo si se trata de un país donde normalmente se espera un código postal.

Una vez que tengas un código postal candidato, una llamada directa a /v1/postcode con ese código y el país del objeto components es una forma rápida de verificarlo de manera independiente, especialmente útil cuando la confianza de la geocodificación directa original estaba en el límite en lugar de ser claramente alta o claramente baja.

Completar así un código postal que falta ahorra un campo de formulario y un intercambio de mensajes con el cliente. Las definiciones completas de los campos están en la documentación de la consulta de códigos postales y en la documentación de geocodificación directa.