Reto de Esri España · ArcGIS

Madrid
Agéntico

Geoespacial — el único con mapas APIs en vivo (ArcGIS) Datos abiertos de Madrid

Toda pregunta interesante sobre una ciudad esconde un dónde. ¿Dónde dejo la bici? ¿Qué distrito tiene más zonas verdes? ¿Qué hay cerca de mi casa? Los datos existen — Madrid publica cientos de capas abiertas en ArcGIS — pero viven detrás de APIs que un ciudadano normal jamás tocará. Tu misión: el intérprete. Un agente al que le preguntas como a un amigo madrileño y que por debajo geocodifica, consulta capas y cruza geometrías para responder con datos frescos, no con recuerdos del LLM.

01

El superpoder: preguntas con coordenadas

Lo que diferencia este reto de cualquier chatbot: la consulta espacial. "Cerca de", "dentro de", "a menos de X metros" — cosas que un LLM no puede saber y una API geográfica responde en milisegundos.

Geocodificar

De "Plaza Mayor" a (−3.707, 40.415). El geocoder mundial de ArcGIS, sin token. Ojo: en Madrid hay varias "Plaza Mayor" — la ambigüedad es parte del reto.

Consultar capas

Cada dataset es un Feature Service con API REST: filtros SQL (where), campos, límites. Distritos, BiciMAD, zonas verdes…

Cruzar geometrías

El golpe maestro: buscar entidades a X metros de un punto, o en qué polígono (distrito) cae. Dos llamadas encadenadas = magia para el usuario.

Sin dependencia frágil: todo el nivel núcleo funciona contra APIs públicas de ArcGIS sin token ni API key — verificado por la organización: geocoder, catálogo y las dos capas de la tabla responden.
02

Tu misión

Un asistente ciudadano sobre datos abiertos de Madrid que combine, como mínimo, estas cuatro capacidades como tools de un agente:

ToolQué haceAPI
geocodificarLugar o dirección → coordenadasgeocode.arcgis.com · findAddressCandidates
buscar_datasetsDescubre capas abiertas por tema — el agente explora el catálogo él solohub.arcgis.com/api/v3/datasets
consultar_capaFiltro SQL sobre cualquier Feature Service…/FeatureServer/0/query?where=…
buscar_cercaEntidades a < X metros de un punto…/query?geometry=x,y&distance=…
03

Niveles

Núcleo · todos deben llegar

El asistente que encadena

Agente con las 4 tools que resuelve preguntas de dos saltos: geocodificar el lugar mencionado → consulta espacial sobre la capa relevante → respuesta útil citando la fuente. Con al menos dos capas dominadas (p.ej. Distritos + BiciMAD).

Extra 1 · ambición

El explorador de datos

El agente descubre capas nuevas por sí mismo con el catálogo Hub ("¿hay datos de zonas verdes?" → las encuentra, inspecciona su esquema con una consulta pequeña y las usa). Manejo de ambigüedad del geocoder (verificar el distrito esperado, re-geocodificar con código postal).

Extra 2 · sobresaliente

El mapa

Enséñalo: un mini-frontend con ArcGIS Maps SDK for JavaScript que pinte los resultados del agente sobre un mapa de Madrid, o comparativas entre distritos con datos de varias capas. La vía "full-code" para perfiles senior.

04

Datos y recursos disponibles

RecursoContenidoCómo se usa
Capa Distritos de Madrid ✓ verificada21 distritos con nombre, código y superficie (polígonos)services-eu1.arcgis.com/UrtTdLP2PYSxwtI6/…/Distritos_de_Madrid/FeatureServer/0
Capa BiciMAD ✓ verificada123 estaciones con nombre y anclajes (puntos)…/BiciMAD/FeatureServer/0
Catálogo ArcGIS HubMiles de datasets abiertos buscables por texto (zonas verdes, aparcamientos…)API pública, sin token
Geocoder mundialDirecciones y lugares → coordenadas WGS84Sin token para búsquedas no almacenadas
Recetas útilesEl patrón de tool HTTP con $fromAi (🌦️ El Meteorólogo — cámbiale las URLs por las de ArcGIS) y el esqueleto de agente (🧠)El Recetario

Documentación útil: Query de Feature Services (REST) · Geocoding REST · Portal de datos abiertos de Madrid · HTTP Request en n8n

05

Definition of Ready · Definition of Done

DoR — antes de construir
  • Las 2 capas verificadas probadas a mano (una query en el navegador)
  • Entendido el patrón /query: where, outFields, geometry, distance
  • Elegidas 2-3 preguntas ciudadanas que guiarán la demo
  • Plan B si una capa externa falla en directo (capa alternativa o respuesta cacheada)
DoD — criterios de aceptación
  • Pregunta con lugar → geocodifica + consulta espacial encadenadas sin ayuda
  • "¿En qué distrito está X?" resuelto cruzando punto contra polígonos
  • Radio ajustable ("a menos de 300 metros") entendido desde el lenguaje
  • Cada respuesta cita la capa/fuente usada
  • Si la API no devuelve resultados o falla, el agente lo dice — no alucina lugares
06

Pruebas UAT — autoevalúate antes del pitch

UAT-E1 · el clásico de dos saltos

"¿Qué estaciones de BiciMAD hay a menos de 500 metros de Callao?"

Geocodifica Callao → query espacial sobre BiciMAD con distance=500 → lista de estaciones con nombres reales de la capa. Fuente citada.

UAT-E2 · punto en polígono

"Estoy en la calle Alcalá 200, ¿qué distrito es esto?"

Geocodifica la dirección → cruza contra la capa de distritos → responde con el distrito correcto (y su código).

UAT-E3 · descubrimiento de datos

"¿Hay datos abiertos sobre zonas verdes en Madrid?"

Busca en el catálogo Hub, presenta 2-3 datasets con nombre y nº de registros, y ofrece consultar alguno. No dice "no lo sé" teniendo un catálogo entero como tool.

UAT-E4 · la ambigüedad del geocoder

"¿Qué hay cerca de la Plaza Mayor?"

El geocoder puede devolver OTRA Plaza Mayor (hay varias). Un sistema excelente detecta la incoherencia (¿distrito raro?), avisa y re-geocodifica con más contexto. Como mínimo: transparencia sobre qué punto usó.

Errores típicos: confiar a ciegas en el primer resultado del geocoder · pedir capas enteras sin resultRecordCount (payloads gigantes) · olvidar returnGeometry=false cuando no necesitas los polígonos · demo dependiente de una capa que nadie probó esa mañana.