En artículos anteriores, presentamos distintas formas de acceder a los geoservicios de la plataforma Mapas Córdoba, ya sea mediante QGIS, como capas en sitios web o integrados en aplicaciones híbridas.
En esta oportunidad, explicamos cómo realizar consultas específicas, en tiempo real, sobre los datos del geoportal desde una aplicación externa y obtener como resultado un conjunto específico de datos geográficos, según los criterios o filtros establecidos.
Esto permite, por ejemplo, desarrollar herramientas que identifiquen todas las parcelas dentro de un radio determinado a partir de una ubicación dada.
Estos servicios están orientados a desarrolladores que requieren búsquedas geográficas precisas en sus aplicaciones. Los geoservicios de IDECOR utilizan tecnología GeoServer, de código abierto.
Pasos para implementar búsquedas personalizadas
1. Obtener las URLs de geoservicios
Acceder a la sección Geoservicios del portal Mapas Córdoba y explorar el árbol temático para localizar la capa deseada. Los servicios disponibles incluyen Web Feature Service (WFS), Web Maps Service (WMS) y Web Coverage Service (WCS).
Los geoservicios de IDECOR responden a estándares de la Open Geospatial Consortium (OGC). Permiten invocar operaciones, como consulta de los metadatos de los geoservicios. Para solicitar una operación se indica el nombre en el parámetro ‘request’ por Query String del URL.
Imagen 1. Sección Geoservicios de Mapas Córdoba.
2. Operaciones para pedir información de una capa
- GetCapabilities (WFS/WMS): proporciona información técnica sobre el servicio, como versiones compatibles, operaciones permitidas, extensión geográfica (bounding box) y sistema de referencia (SRID), información de las capacidades de consultas que pueden realizarse y sus operadores, entre otros. Ejemplo.
- DescribeFeatureType (WFS): brinda información detallada de los atributos y tipos de datos presentes en cada objeto geográfico. Ejemplo.
3. Consultas a objetos específicos (WFS)
Es posible recuperar un objeto geográfico mediante su identificador único (featureID) usando GetFeature. También se pueden solicitar solo atributos específicos, como la denominación oficial y la valuación, para optimizar la respuesta. Ejemplo.
Si fuera necesario puede reducirse el tamaño de la respuesta, indicando el o los atributos que se necesitan, con el parámetro “propertyName”.
En el ejemplo siguiente devuelve la designación oficial y la valuación de la parcela.
4. Consultas por atributos alfanuméricos
Las consultas sobre servicios WFS, con definición de filtros personalizados, sobre los objetos se pueden realizar de dos maneras.
- Filtros OGC (XML): cuando se usa la operación “getfeature” se puede agregar el parámetro “Filter”. La forma de construir la consulta es de tipo jerárquica, en un XML, según la especificación OGC. Por ejemplo, se puede consultar una parcela que tenga la nomenclatura igual a “2304553901092”, con una especificación XML de la siguiente forma:
La consulta quedará del siguiente modo:
También pueden usarse conectores lógicos y operadores (expresados como tags XML) de comparación, para realizar consultas más complejas. El parámetro “Filter” se puede enviar también por método POST, de modo de que la URL sea más simple.
- CQL (Common Query Language): alternativa más compacta y legible que utiliza el estándar CQL/E-CQL (Common Query Language / Extended Common Query Language). Las consultas CQL se formulan usando predicados que incluyen operadores de comparación y conectores lógicos, y funciones predefinidas en forma de expresiones en vez de XML, como los filtros OGC.
En este caso el parámetro a usar será CQL_FILTER seguido de la expresión CQL. Entre los operadores de comparación se incluyen el IN para filtrar por conjuntos de valores y el BETWEEN para establecer rangos de valores válidos.
Por ejemplo, el URL de la consulta realizada en el punto anterior se traduce en E_CQL como:
Un ejemplo usando BETWEEN se muestra a continuación:
5. Consultas según criterios geográficos
Con CQL (WKT + funciones espaciales): en CQL para definir las geometrías se utiliza el formato WKT. soportando POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON y GEOMETRYCOLLECTION.
Por otro lado, CQL incorpora las siguientes funciones que permiten definir criterios espaciales para verificar relaciones entre objetos geográficos; EQUALS, DISJOINT, INTERSECTS, TOUCHES, CROSSES, WITHIN, CONTAINS, OVERLAPS, RELATE, DWITHIN BEYOND y BBOX.
Así, si se requiere identificar las parcelas que se encuentran dentro de área rectangular (box) se puede usar la función BBOX con los parámetros del campo geometría, en este caso “geom”, y las coordenadas de los puntos extremos del box.
Aquí un URL de ejemplo, aplicando esta consulta:
En WMS: los filtros también pueden aplicarse a geoservicios WMS, caso en que el servidor devolverá imágenes de la capa, solo con los objetos filtrados.
Imagen 2. Resultado del filtro función BBOX sobre un geoservicios WMS.
La imagen anterior corresponde al siguiente código, en donde se filtran las parcelas, en lugar de un criterio alfanumérico por uno geográfico. En este caso el BBOX está representado por el rectángulo rojo.
La capa de parcelas utiliza el sistema de referencias SRID 22174, pero el bounding box BBOX se proporciona en 4326. Para que el filtro funcione, es necesario especificar que el BBOX está en 4326, añadiendo el argumento ‘EPSG:4326’ al final.
CQL_FILTER=BBOX(geom,-64.200232,-31.381188,-64.198598,-31.378528,’EPSG:4326′)
El código se encuentra disponible en este enlace.
Usando OGC filter
La misma lógica de filtrado espacial puede aplicarse en formato XML y usarse en una consulta WFS. Usando OGC filter
Los mismos filtros se pueden aplicar usando filtros OGC, en el caso del ejemplo, el XML del filtro a aplicar queda como se muestra a continuación:
¿Más información?
Si te interesan estas herramientas, te invitamos a ser parte de IDECOR-Dev, una comunidad de desarrolladores e interesados en aplicaciones y geoservicios en el marco de la IDE provincial.
Esta nota es una reedición de la nota Cómo implementar búsquedas personalizadas sobre los geoservicios de IDECOR, del Ing. Aldo Algorry, publicada en mayo de 2019.
Otras notas publicadas para trabajar y consumir geoservicios:
Aprende a realizar consultas o filtros en tu conexión WFS
Cómo publicar geoservicios de IDECOR en una página web propia
Cómo publicar (geo) webservice de IDECOR en una App Móvil híbrida – Parte 1
Parte 2 – Cómo publicar (geo) webservice de IDECOR en una App Móvil híbrida
Por consultas para implementar este tipo de consultas escribinos a [email protected]. Para informarte acerca de las novedades de IDECOR, suscribite para recibir nuestro boletín y seguinos en Instagram y Linkedin.
Colaboración:
Ing. Aldo Algorry,
Anal. de Sist. José Jachuf,
IDECOR