Guías

Gestiona direcciones sin número de portal

No todas las direcciones tienen número de casa. Las rutas rurales, algunas urbanizaciones nuevas y los lugares emblemáticos conocidos suelen nombrarse sin él, y una solicitud de geocodificación construida esperando siempre un número de casa interpretará mal cómo es un resultado válido en estos casos.

Cómo es la respuesta sin él

GET /v1/forward?q=Golden Gate Bridge, San Francisco&limit=1
{
  "status": "ok",
  "query": "Golden Gate Bridge, San Francisco",
  "results": [
    {
      "formatted": "Golden Gate Bridge, San Francisco, CA",
      "lat": 37.8199,
      "lon": -122.4783,
      "type": "address",
      "precision": "street",
      "confidence": 0.9,
      "place_id": "gb567",
      "components": {"city": "San Francisco", "region": "CA", "country": "US"}
    }
  ]
}

Fíjate en que aquí no hay campo house_number en components, y precision indica "street" en lugar de "house". Ambas cosas son de esperar en una dirección que realmente no tiene número de casa, no señales de una consulta fallida o parcial.

Interpretar correctamente la precisión

Trata precision como una descripción de lo específica que es la coincidencia, no como un indicador de error. Una precisión "house" significa que la coincidencia se resolvió en un edificio concreto. Una precisión "street" significa que se resolvió en una calle o en un punto de ella, sin determinar un edificio exacto, que es exactamente lo correcto para un lugar emblemático o una dirección que de verdad carece de número de casa.

Un segundo ejemplo: un espacio público conocido

GET /v1/forward?q=Central Park, New York&limit=1

Un espacio público con nombre como este suele resolverse con type configurado en algo más amplio que "address" y una precisión que refleja un área en lugar de un único punto, junto con un objeto components que puede incluir solo una ciudad y una región. Es el mismo patrón que el ejemplo del puente: un resultado real y útil, descrito con honestidad como algo que abarca un área y no un edificio concreto, porque eso es a lo que realmente se refería la consulta.

Ajustar la lógica de validación en consecuencia

Si la validación de tu formulario exige actualmente que exista un campo house_number antes de aceptar una dirección como completa, esa comprobación rechazará por error direcciones rurales y lugares emblemáticos legítimos. Basa los criterios de aceptación en que confidence y precision se ajusten a lo que realmente necesitas, en lugar de exigir que todos los componentes concretos estén rellenados.

Un error habitual que debes evitar

No trates un objeto components vacío, o uno al que le faltan varios campos, como equivalente a una solicitud fallida. Una solicitud fallida vuelve con un estado de error y un código de error, descritos en la documentación de errores. Un resultado correcto con pocos componentes es un resultado distinto y totalmente normal, y confundir ambos en tu gestión de errores hará que direcciones válidas se registren y se traten como fallos.

Dejar que los clientes confirmen en lugar de rechazar

En una dirección sin número de casa, mostrar el resultado formateado al cliente para que lo confirme funciona mejor que rechazar el envío directamente. Así una dirección real sigue siendo utilizable y, al mismo tiempo, se detectan en otro punto las entradas realmente erróneas.

La dirección inversa sigue el mismo patrón

La geocodificación inversa de una coordenada situada en campo abierto o en el agua también puede devolver una precisión más aproximada y menos componentes rellenados que una coordenada situada sobre la huella de un edificio concreto. La documentación de geocodificación inversa describe los mismos valores de precisión desde esa dirección.

El coste es el mismo

Una dirección sin número de casa cuesta la misma solicitud que cualquier otra consulta de geocodificación directa. La falta de componentes no cambia en nada la forma en que la solicitud se descuenta de tu cuota diaria o de tu saldo de crédito.

Gestionar esto correctamente consiste sobre todo en interpretar precision y confidence como se pretende, en lugar de dar por hecho que toda dirección válida debe rellenar todos los componentes. La documentación de geocodificación directa explica cada campo en detalle.