La mayor parte de los proyectos SIG necesitan información procedente de otras fuentes. Cartografía urbanística, patrimonio, redes de transporte, medio ambiente, planeamiento o información catastral son solo algunos ejemplos de datos publicados por administraciones públicas que pueden complementar un estudio, alimentar un visor web o incorporarse a una base de datos geográfica.
Aunque los estándares OGC continúan siendo el mecanismo más habitual para compartir información geográfica, muchas administraciones publican sus datos mediante servicios ArcGIS REST, una API que permite consultar directamente las capas disponibles y recuperar únicamente la información necesaria.
Conocer cómo explorar estos servicios facilita localizar nuevas fuentes de datos abiertos y reutilizarlas posteriormente en proyectos desarrollados con herramientas como QGIS, PostgreSQL/PostGIS, GeoServer o bibliotecas web como OpenLayers y Leaflet.
En este artículo recorreremos el proceso completo: desde localizar un servicio ArcGIS REST hasta descargar sus datos en GeoJSON para integrarlos en un flujo de trabajo basado en tecnologías abiertas.
¿Qué es ArcGIS REST y por qué conviene conocerlo?
Cuando una administración publica información mediante ArcGIS REST, cada mapa, capa o recurso geográfico queda accesible mediante una dirección web. Conocer la estructura de esas direcciones permite descubrir qué información está disponible y acceder directamente a ella desde aplicaciones o herramientas SIG.

Desde el punto de vista de quien desarrolla un proyecto SIG, lo importante no es la plataforma utilizada para publicar la información, sino que esa información pueda localizarse, consultarse y reutilizarse desde otras aplicaciones.
Una URL ArcGIS REST suele seguir una estructura similar a esta:
https://servidor/rest/services/Carpeta/Servicio/MapServer
Cada parte identifica un elemento distinto del servicio:
| Elemento | Significado |
|---|---|
| Servidor | Dirección donde se publican los servicios |
| /rest/services | Punto de acceso a la API |
| Carpeta | Agrupa servicios relacionados |
| Servicio | Recurso publicado |
| MapServer | Tipo de servicio |
Una de las ventajas de esta organización es que basta con recorrer la URL para descubrir nuevos servicios, acceder a sus capas o consultar la información publicada.
En proyectos SIG resulta habitual comenzar explorando este directorio antes incluso de descargar un solo dato. Muchas administraciones publican cientos de capas accesibles sin necesidad de disponer de software propietario.
Localizando datos abiertos publicados mediante ArcGIS REST
La forma más sencilla de explorar un servidor consiste en acceder a su directorio principal.
https://servidor/rest/services
Por ejemplo, el Geoportal del Ayuntamiento de Madrid publica sus servicios en:
https://sigma.madrid.es/hosted/rest/services

A partir de ese punto puede recorrerse toda la estructura del servidor.

Una vez localizada una capa, conviene revisar su definición antes de realizar cualquier consulta.

Añadiendo el parámetro ?f=pjson obtendremos una descripción completa de la capa en formato JSON.

No es necesario analizar todos los atributos de las capas. En la mayoría de los proyectos basta con comprobar cuatro elementos:
| Revisar | ¿Para qué sirve? |
|---|---|
| fields | Conocer el nombre real de los atributos |
| geometryType | Identificar el tipo de geometría |
| capabilities | Verificar que admite consultas (Query) |
| maxRecordCount | Saber cuántos registros devuelve como máximo |
Esta revisión previa evita muchos errores posteriores y permite conocer rápidamente las posibilidades del servicio.
Antes de incorporar una nueva fuente de datos en nuestro proyecto, es recomendable revisar estos cuatro elementos. En pocos minutos podremos saber si la información resulta útil para el proyecto y cómo acceder a ella.
Consultando únicamente la información que necesitas
Query es, probablemente, la operación que utilizarás con más frecuencia. Permite consultar únicamente la información necesaria sin descargar toda la capa.
Su URL sigue siempre el mismo patrón:
…/MapServer/0/query
La operación admite numerosos parámetros, aunque en la práctica la mayoría de consultas utilizan siempre los mismos.
| Necesidad | Parámetro |
|---|---|
| Filtrar registros | where |
| Seleccionar atributos | outFields |
| Obtener la geometría | returnGeometry |
| Cambiar el sistema de referencia | outSR |
| Consultar por ubicación | geometry |
| Contar registros | returnCountOnly |
| Descargar resultados | f=geojson |
Como ejemplo, la siguiente consulta recupera todos los edificios protegidos publicados por el Ayuntamiento de Madrid. La respuesta incluye únicamente el número de catálogo, el nombre del edificio, el nivel de protección y su geometría, generando el resultado directamente en formato GeoJSON.
https://sigma.madrid.es/hosted/rest/services/
DESARROLLO_URBANO_ACTUALIZADO/
EDIFICIOS_PROTEGIDOS_VIGENTE/MapServer/4/query
?where=1%3D1
&outFields=CEP_TX_NUMCAT,CEP_TX_NOMBRE,CEP_TX_PROTECCION
&returnGeometry=true
&outSR=4326
&f=geojsonEsta consulta combina varios de los parámetros más utilizados:
- where=1=1 recupera todas las entidades de la capa.
- outFields limita la respuesta a los atributos de interés.
- returnGeometry=true incorpora la geometría de cada edificio.
- outSR=4326 devuelve las coordenadas en WGS84
- f=geojson genera un fichero GeoJSON

Las consultas también pueden incorporar filtros espaciales para recuperar únicamente las entidades situadas dentro de una determinada zona.
Un caso habitual consiste en limitar la consulta a la extensión visible en un visor cartográfico. Para ello se envía la envolvente del mapa mediante el parámetro geometry y se indica que la geometría utilizada es un rectángulo (esriGeometryEnvelope).
geometry=439600,4473500,441200,4475200
&geometryType=esriGeometryEnvelope
&spatialRel=esriSpatialRelIntersectsAl combinar estos parámetros con la consulta anterior, el servicio devolverá únicamente los edificios protegidos situados dentro de esa extensión, reduciendo el volumen de información transferida y el tiempo de respuesta.
En proyectos reales, este tipo de consultas resulta especialmente útil para actualizar únicamente la información de un municipio, descargar los elementos visibles en un visor web o incorporar nuevas capas a un proceso ETL sin necesidad de recuperar toda la base de datos.
Descargando datos abiertos en GeoJSON
Una vez construida la consulta, la forma más sencilla de reutilizar la información consiste en solicitar la respuesta en formato GeoJSON.
f=geojson
El fichero obtenido puede abrirse directamente en QGIS, cargarse en una base de datos PostGIS o utilizarse como fuente de datos para un visor de mapas web.
Cuando una capa contiene miles de entidades aparece una limitación habitual: el servidor solo devuelve un número máximo de registros, definido por la propiedad maxRecordCount.

Antes de iniciar una descarga conviene consultar el número total de elementos:
returnCountOnly=true

Si el número total de entidades supera el valor de maxRecordCount, la descarga debe realizarse en varias peticiones utilizando los parámetros resultOffset y resultRecordCount. De esta forma, cada consulta recupera un bloque de registros hasta completar la capa.
En proyectos donde esta información debe mantenerse actualizada, este proceso suele automatizarse mediante pequeños scripts en Python. Un flujo de trabajo habitual consiste en consultar primero el número total de entidades (returnCountOnly=true) y, a continuación, recorrer la capa realizando sucesivas peticiones hasta descargar toda la información.
Este enfoque resulta especialmente útil para integrar datos abiertos publicados por distintas administraciones en bases de datos PostGIS, alimentar procesos ETL.
Buenas prácticas
Antes de automatizar el consumo de un servicio ArcGIS REST merece la pena revisar los siguientes aspectos:
- Explora primero la capa mediante ?f=pjson.
- Comprueba que la operación Query está disponible.
- Consulta el número de registros antes de descargar la información.
- Solicita únicamente los campos necesarios.
- Devuelve la geometría solo cuando vaya a utilizarse.
- Aprovecha los filtros espaciales y alfanuméricos para reducir el volumen de datos.
- Respeta el límite de maxRecordCount y utiliza paginación cuando sea necesario.
- Utiliza GeoJSON cuando la información vaya a incorporarse a herramientas basadas en estándares abiertos.
Conclusiones
ArcGIS REST forma parte del ecosistema de publicación de datos geográficos utilizado por numerosas administraciones públicas. Conocer su estructura permite localizar nuevas fuentes de información y reutilizarlas en proyectos SIG sin depender del software con el que fueron publicadas.
Más allá de la consulta puntual de una capa, estos servicios pueden integrarse en procesos de actualización automática, alimentar bases de datos geográficas, incorporarse a visores cartográficos o servir como origen de datos para análisis territoriales realizados con QGIS, Python o GeoPandas.
¿Quieres comentarnos algo? Adelante!