18.2.2. Servicios

QGIS Server puede servir datos de acuerdo con los protocolos estándar descritos por Open Geospatial Consortium (OGC):

  • WMS 1.1.0 y 1.3.0

  • WFS 1.0.0 y 1.1.0

  • WFS3 (OGC API - Prestaciones)

  • WCS 1.1.1

  • WMTS 1.0.0

Se admiten parámetros y solicitudes adicionales del proveedor además del estándar original que mejora enormemente las posibilidades de personalizar su comportamiento gracias al motor de renderización QGIS.

18.2.2.1. Web Map Service (WMS)

Los estándares WMS 1.1.0 y 1.3.0 implementados en QGIS Server proporcionan una interfaz HTTP para solicitar imágenes de mapas o leyendas generadas a partir de un proyecto QGIS. Una solicitud WMS típica define el proyecto QGIS a utilizar, las capas a renderizar y el formato de imagen a generar. El soporte básico también está disponible para Descriptor de capa estilizada (SLD).

Especificaciones:

Solicitudes standard proporcionadas por el servidor QGIS:

Solicitud

Descripción

GetCapabilities

Devuelve metadatos XML con información sobre el servidor

GetMap

Devuelve un mapa

GetFeatureInfo

Recupera datos (geometría y valores) para una ubicación de píxeles

GetLegendGraphics

Devuelve símbolos de leyenda

Solicitudes de proveedor proporcionadas por QGIS Server:

Solicitud

Descripción

GetPrint

Devuelve una composición de QGIS

GetProjectSettings

Devuelve información específica sobre QGIS Server

18.2.2.1.1. GetMap

Parámetros estándar para la solicitud ** GetMap ** de acuerdo con las especificaciones OGC WMS 1.1.0 y 1.3.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMS)

VERSIÓN

No

Versión del servicio

SOLICITUD

Nombre de la solicitud (GetMap)

CAPAS

No

Capas a mostrar

ESTILOS

No

Estilo de capas

SRS / CRS

Sistema de referencia de coordenadas

BBOX

No

Extensión del mapa

ANCHURA

Ancho de la imagen en píxeles.

ALTURA

Altura de la imagen en píxeles

FORMATO

No

Formato de imagen

TRANSPARENTE

No

fondo transparente

SLD

No

URL de una SLD que se utilizará para diseñar

SLD_BODY

No

SLD en línea (XML) que se utilizará para diseñar

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

BGCOLOR

No

Especifica el color de fondo

DPI

No

Especifica la resolución de salida

IMAGE_QUALITY

No

compresión JPEG

OPACITIES

No

Opacidad de la capa o Grupo

FILTER

No

Subconjunto de entidades

SELECTION

No

Resalta entidades

FILE_NAME

No

Solo para``FORMAT=application/dxf``

Nombre de archivo de la capa descargada

FORMAT_OPTIONS

No

Sólo para pares key:value FORMAT=application/dxf separados por punto y coma.

  • ESCALA: para ser utilizado para reglas de simbología, filtros y estilos (no escala real de los datos - los datos permanecen en la escala original).

  • MODO: corresponde a las opciones de exportación que se ofrecen en el cuadro de diálogo de exportación QGIS Desktop DXF. Los valores posibles son NOSYMBOLOGY, FEATURESYMBOLOGY y SYMBOLLAYERSYMBOLOGY.

  • LAYERSATTRIBUTES: especifique un campo que contenga valores para los nombres de las capas DXF; si no se especifica, se utilizan los nombres de las capas QGIS originales.

  • USE_TITLE_AS_LAYERNAME: si está habilitado, el título de la capa se utilizará como nombre de capa.

  • CODEC: especificar un códec que se utilizará para la codificación. El valor predeterminado es ISO-8859-1. Consulte el cuadro de diálogo de exportación DXF del escritorio de QGIS para obtener valores válidos.

TILED

No

Trabajando en modo teselado

URL ejemplo:

http://localhost/qgis_server?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&STYLES=style1,default,style3
&OPACITIES=125,200,125
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&FORMAT=image/png
&TRANSPARENT=TRUE
&DPI=300
&TILED=TRUE

18.2.2.1.1.1. SERVICIO

Este parámetro tiene que ser WMS en caso de la solicitud GetMap.

18.2.2.1.1.2. VERSIÓN

Este parámetro permite especificar la versión del servicio a utilizar. Los valores disponibles para el parámetro VERSIÓN son:

  • 1.1.0

  • 1.3.0

Si no se indica una versión en la solicitud, entonces se usa 1.3.0 por defecto.

Según el número de versión, se esperan ligeras diferencias como se explica más adelante para los siguientes parámetros:

  • CRS / SRS

  • BBOX

18.2.2.1.1.3. SOLICITUD

Este parámetro es GetMap en caso de petición GetMap.

18.2.2.1.1.4. CAPAS

Este parámetro permite especificar las capas que se mostrarán en el mapa. Los nombres deben estar separados por una coma.

Además, QGIS Server introdujo algunas opciones para seleccionar capas mediante:

  • un nombre corto

  • el id de capa

El nombre corto de una capa se puede configurar mediante Propiedades -> Metadatos en el menú de capas. Si se define el nombre corto, entonces se usa por defecto en lugar del nombre de la capa:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mynickname1,mynickname2
&...

Además, hay una opción de proyecto que permite seleccionar capas por su identificación en OWS Server -> WMS Capacidades del menú Proyecto -> Propiedades …. Para activar esta opción, la casilla de verificación: guilabel: ʻUsar ID de capa como nombres` debe estar seleccionada.

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayerid1,mylayerid2
&...

18.2.2.1.1.5. ESTILOS

Este parámetro se puede utilizar para especificar el estilo de una capa para el paso de renderizado. Los estilos deben estar separados por una coma. El nombre del estilo predeterminado es default.

18.2.2.1.1.6. SRS / CRS

Este parámetro permite indicar la salida del mapa Spatial Reference System en WMS 1.1.0 y tiene que formarse como ʻEPSG: XXXX`. Tenga en cuenta que también se admite SRC si la versión actual es 1.1.0.

Para WMS 1.3.0, es preferible el parámetro SRC pero también se admite SRS.

Tenga en cuenta que si en la solicitud se indican los parámetros SRC y SRS, entonces es la versión actual indicada en el parámetro VERSIÓN la que es decisiva.

En el siguiente caso, el parámetro SRS se mantiene cualquiera que sea el parámetro VERSION porque no se indica SRC:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&SRS=EPSG:2854
&...

En el siguiente caso, el parámetro SRS se mantiene en lugar de SRC debido al parámetro VERSIÓN:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.0
&CRS=EPSG:4326
&SRS=EPSG:2854
&...

En el siguiente caso, el parámetro SRC se mantiene en lugar de SRS debido al parámetro VERSION:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=EPSG:4326
&SRS=EPSG:2854
&...

18.2.2.1.1.7. BBOX

Este parámetro permite especificar la extensión del mapa con unidades según el SRC actual. Las coordenadas deben estar separadas por una coma.

Sin embargo, debe notarse una ligera diferencia según el parámetro actual VERSIÓN. En WMS 1.1.0, las coordenadas se forman como minx, miny, maxx, maxy o minlong, minlat, maxlong, maxlat. Por ejemplo:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.0
&SRS=epsg:4326
&BBOX=-180,-90,180,90
&...

Pero el eje está invertido en WMS 1.3.0, por lo que las coordenadas se forman como: miny,minx,maxy,maxx or minlat,minlong,maxlat,maxlong. Por ejemplo:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=epsg:4326
&BBOX=-90,-180,90,180
&...

18.2.2.1.1.8. ANCHURA

Este parámetro permite especificar el ancho en píxeles de la imagen de salida.

18.2.2.1.1.9. ALTURA

Este parámetro permite especificar la altura en píxeles de la imagen de salida.

18.2.2.1.1.10. FORMATO

Este parámetro se puede utilizar para especificar el formato de la imagen del mapa. Los valores disponibles son:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

  • image/png; mode=1bit

  • image/png; mode=8bit

  • image/png; mode=16bit

  • application/dxf Solo las capas que tienen acceso de lectura en el servicio WFS se exportan en formato DXF.

    URL ejemplo:

    http://localhost/qgisserver?
    SERVICE=WMS&VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=application/dxf
    &LAYERS=Haltungen,Normschacht,Spezialbauwerke
    &STYLES=
    &CRS=EPSG%3A21781&BBOX=696136.28844801,245797.12108743,696318.91114315,245939.25832905
    &WIDTH=1042
    &HEIGHT=811
    &FORMAT_OPTIONS=MODE:SYMBOLLAYERSYMBOLOGY;SCALE:250&FILE_NAME=plan.dxf
    

18.2.2.1.1.11. TRANSPARENTE

Este parámetro booleano se puede utilizar para especificar la transparencia del fondo. Los valores disponibles son (no distinguen entre mayúsculas y minúsculas):

  • TRUE

  • FALSE

Sin embargo, este parámetro se ignora si el formato de la imagen del mapa indicada con FORMAT es diferente de PNG.

18.2.2.1.1.12. MAPA

Este parámetro permite definir el archivo de proyecto QGIS a utilizar.

Como se mencionó en tabla de parámetros de GetMap, MAP es obligatorio porque una solicitud necesita un proyecto QGIS para funcionar. Sin embargo, la variable de entorno QGIS_PROJECT_FILE se puede utilizar para definir un proyecto QGIS predeterminado. En este caso específico, MAP ya no es un parámetro obligatorio. Para obtener más información, puede consultar Canfiguración avanzada.

18.2.2.1.1.13. BGCOLOR

Este parámetro permite indicar un color de fondo para la imagen del mapa. Sin embargo, no se puede combinar con el parámetro `` TRANSPARENTE`` en el caso de imágenes PNG (la transparencia tiene prioridad). El color puede ser literal o en notación hexadecimal.

URL ejemplo con la notación literal:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=green
&...

Ejemplo URL con la notación hexadecimal:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=0x00FF00
&...

18.2.2.1.1.14. DPI

Este parámetro se puede utilizar para especificar la resolución de salida solicitada.

18.2.2.1.1.15. IMAGE_QUALITY

Este parámetro solo se utiliza para imágenes JPEG. De forma predeterminada, la compresión JPEG es -1.

Puede cambiar el valor predeterminado por proyecto QGIS en el menú OWS Server -> Capacidades WMS del Proyecto -> Propiedades…. Si desea anularlo en una solicitud GetMap puede hacerlo usando el parámetro ʻIMAGE_QUALITY`.

18.2.2.1.1.16. OPACITIES

La opacidad se puede establecer a nivel de capa o de grupo. Los valores permitidos van de 0 (totalmente transparente) a 255 (totalmente opaco).

18.2.2.1.1.17. FILTER

Se puede seleccionar un subconjunto de capas con el parámetro FILTRO La sintaxis es básicamente la misma que para la cadena del subconjunto QGIS. Sin embargo, existen algunas restricciones para evitar inyecciones de SQL en bases de datos a través de QGIS Server. Si se encuentra una cadena peligrosa en el parámetro, QGIS Server devolverá el siguiente error:

Indeed, text strings need to be enclosed with quotes (single quotes
for strings, double quotes for attributes). A space between each
word / special character is mandatory. Allowed Keywords and special
characters are 'AND','OR','IN','=','<','>=','>','>=','!=*,'(',')'.
Semicolons in string expressions are not allowed.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2,mylayer3
&FILTER=mylayer1:"col1";mylayer1,mylayer2:"col2" = 'blabla'
&...

En este ejemplo, el mismo filtro (el campo col2 es igual a la cadena blabla) se aplica a las capas mylayer1 y mylayer2, mientras que el filtro en col1 es solo aplicado a mylayer1.

Nota

Es posible realizar búsquedas de atributos a través de GetFeatureInfo y omitir el parámetro X / Y si hay un FILTRO. QGIS Server luego devuelve información sobre las características coincidentes y genera un cuadro delimitador combinado en la salida XML.

18.2.2.1.1.18. SELECTION

El parámetro SELECCIÓN puede resaltar entidades de una o más capas. Las características vectoriales se pueden seleccionar pasando listas separadas por comas con identificadores de características.

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2
&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6
&...

La siguiente imagen presenta la respuesta de una solicitud GetMap usando la opción SELECTION p.ej. http://myserver.com/...&SELECTION=countries:171,65.

Como los identificadores de esas características corresponden en el conjunto de datos de origen a Francia y Rumanía, están resaltados en amarillo.

../../../../_images/server_selection_parameter.png

Figura 18.8 Respuesta del servidor a una solicitud GetMap con el parámetro SELECTION

18.2.2.1.1.19. TILED

Establezca el parámetro TILED en TRUE para decirle a QGIS Server que trabaje en modo teselado y que aplique el búfer de teselas configurado en el proyecto QGIS.

Cuando TILED es TRUE y cuando se configura un búfer de mosaico distinto de cero en el proyecto QGIS, las entidades fuera de la extensión del mosaico se dibujan para evitar símbolos de corte en los límites del mosaico.

TILED predeterminado como FALSE.

18.2.2.1.2. GetFeatureInfo

Parámetros estándar para la solicitud GetFeatureInfo de acuerdo con las especificaciones OGC WMS 1.1.0 y 1.3.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMS)

VERSIÓN

No

Vea GetMap

SOLICITUD

Vea GetMap

CAPAS

No

Vea GetMap

ESTILOS

No

Vea GetMap

SRS / CRS

Vea GetMap

BBOX

No

Vea GetMap

ANCHURA

Vea GetMap

ALTURA

Vea GetMap

TRANSPARENTE

No

Vea GetMap

INFO_FORMAT

No

Formato de salida

QUERY_LAYERS

Capas a consultar

FEATURE_COUNT

No

Número máximo de objetos espaciales a devolver

I

No

Columna de píxeles del punto a consultar

X

No

El mismo que el parámetro I, pero en WMS 1.1.0

J

No

Fila de píxeles del punto a consultar

Y

No

El mismo que el parámetro J, pero en WMS 1.1.0

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

Vea GetMap

FILTER

No

Vea GetMap

FI_POINT_TOLERANCE

No

Tolerancia en pixeles para capas punto

FI_LINE_TOLERANCE

No

Tolerancia en pixeles para capas línea

FI_POLYGON_TOLERANCE

No

Tolerancia en píxeles para capas polígono

FILTER_GEOM

No

Filtrado de geometría

WITH_MAPTIP

No

Agregar consejos de mapa a la salida

WITH_GEOMETRY

No

Agregar geometría a la salida

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&INFO_FORMAT=text/xml
&TRANSPARENT=TRUE
&QUERY_LAYERS=mylayer1
&FEATURE_COUNT=3
&I=250
&J=250

18.2.2.1.2.1. INFO_FORMAT

Este parámetro se puede utilizar para especificar el formato del resultado. Los valores disponibles son:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

  • application/json

18.2.2.1.2.2. QUERY_LAYERS

Este parámetro especifica las capas a mostrar en el mapa. Nombres son separados por comas.

Además, El servidor de QGIS presenta opciones para seleccionar las capas por:

  • nombre corto

  • id capa

Ver el parámetro LAYERS definido en Ver GetMap para mas información.

18.2.2.1.2.3. FEATURE_COUNT

Este parámetro especifica el número máximo de entidades por capa que se devolverán. Por ejemplo, si QUERY_LAYERS se establece en layer1, layer2 y FEATURE_COUNT se establece en 3, se devolverán un máximo de 3 entidades de layer1. Asimismo, se devolverá un máximo de 3 entidades de layer2.

De formar predeterminada, sólo 1 objeto espacial por capa es devuelto.

18.2.2.1.2.4. I

Este parámetro, definido en WMS 1.3.0, le permite especificar la columna de pixeles del punto de consulta.

18.2.2.1.2.5. X

Mismo parámetro que I, pero definido en WMS 1.1.0

18.2.2.1.2.6. J

Este parámetro, definido en WMS 1.3.0, le permite especificar la fila de pixeles del punto de consulta.

18.2.2.1.2.7. Y

Mismo parámetro que J, pero definido en WMS 1.1.0

18.2.2.1.2.8. FI_POINT_TOLERANCE

Este parámetro especifica la tolerancia en pixeles para capas de punto.

18.2.2.1.2.9. FI_LINE_TOLERANCE

Este parámetro especifica la tolerancia en pixeles para capas de líneas.

18.2.2.1.2.10. FI_POLYGON_TOLERANCE

Este parámetro especifica la tolerancia en pixeles para capas de polígonos.

18.2.2.1.2.11. FILTER_GEOM

Este parámetro especifica una gepmetría WKT con la cuál las entidades deben intersecarse.

18.2.2.1.2.12. WITH_MAPTIP

Este parámetro especifica si agregar sugerencias de mapas a la salida.

Valores disponibles son (no en caso sensitivo):

  • TRUE

  • FALSE

18.2.2.1.2.13. WITH_GEOMETRY

Este parámetro especifica si se deben agregar geometrías a la salida. Para usar esta función, primero debe habilitar la opción: guilabel:Añadir geometría a la entidad de respuesta en el proyecto QGIS. Ver: ref: Configura tu proyecto <Creatingwmsfromproject>.

Valores disponibles son (no en caso sensitivo):

  • TRUE

  • FALSE

18.2.2.1.3. GetPrint

QGIS Server tiene la capacidad de crear una salida de diseño de impresión en formato pdf o píxel. Las ventanas de diseño de impresión del proyecto publicado se utilizan como plantillas. En la solicitud GetPrint, el cliente tiene la posibilidad de especificar parámetros de las etiquetas y mapas de diseño contenidos.

Parámetro para la petición GetPrint:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

SERVICIO

Nombre del servicio (WMS)

VERSIÓN

No

Vea GetMap

SOLICITUD

Nombre de la solicitud (GetPrint)

CAPAS

No

Vea GetMap

TEMPLATE

Plantilla de diseño a usar

SRS / CRS

Vea GetMap

FORMATO

Formato de salida

ATLAS_PK

No

Características del Atlas

ESTILOS

No

Vea GetMap

TRANSPARENTE

No

Vea GetMap

OPACITIES

No

Vea GetMap

SELECTION

No

Vea GetMap

mapX:EXTENT

No

Extensión del mapa “X”

mapX:LAYERS

No

Capas del mapa “X”

mapX:STYLES

No

Estilo de capas del mapa “X”

mapX:SCALE

No

Escala de capas del mapa “X”

mapX:ROTATION

No

Rotación del mapa “X”

mapX:GRID_INTERVAL_X

No

Intervalo de cuadrícula en eje x del mapa “X”

mapX:GRID_INTERVAL_Y

No

Intervalo de cuadrícula en eje y del mapa “X”

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=png
&map0:EXTENT=-180,-90,180,90
&map0:LAYERS=mylayer1,mylayer2,mylayer3
&map0:OPACITIES=125,200,125
&map0:ROTATION=45

Tenga en cuenta que la plantilla de diseño puede contener más de un mapa. De esta forma, si quieres configurar un mapa específico, debes utilizar los parámetros mapX: donde X es un número positivo que puedes recuperar gracias a la solicitud GetProjectSettings.

Por ejemplo:

<WMS_Capabilities>
...
<ComposerTemplates xsi:type="wms:_ExtendedCapabilities">
<ComposerTemplate width="297" height="210" name="Druckzusammenstellung 1">
<ComposerMap width="171" height="133" name="map0"/>
<ComposerMap width="49" height="46" name="map1"/></ComposerTemplate>
</ComposerTemplates>
...
</WMS_Capabilities>

18.2.2.1.3.1. SERVICIO

Este parámetro tiene que ser WMS.

18.2.2.1.3.2. SOLICITUD

Este parámetro tiene que ser GetPrint para la petición GetPrint

18.2.2.1.3.3. TEMPLATE

Este parámetro puede serr usado para especificar el nombre de la plantilla de composición a usar para la impresión.

18.2.2.1.3.4. FORMATO

Este parámetro especifica el formato de la imagen de mapa. Los valores disponibles son:

  • jpg

  • jpeg

  • image/jpeg

  • png

  • image/png

  • svg

  • image/svg

  • image/svg+xml

  • pdf

  • application/pdf

Si el parámetro FORMAT es diferente de uno de estos valores, entonces se devuelve una excepción.

18.2.2.1.3.5. ATLAS_PK

Este parámetro permite la activación del renderizado Atlas indicando qué características queremos imprimir. Para recuperar un atlas con todas las características, se puede usar el símbolo * (según el número máximo de características permitidas en la configuración del proyecto).

Cuando FORMATO es pdf, se devuelve un solo documento PDF que combina las páginas de funciones. Para todos los demás formatos, se devuelve una sola página.

18.2.2.1.3.6. mapX:EXTENT

Este parámetro especifica la extensión para un elemento del diseño de mapa como xmin,ymin,xmax,ymax.

18.2.2.1.3.7. mapX:ROTATION

Este parámetro especifica la rotación del mapa en grados.

18.2.2.1.3.8. mapX:GRID_INTERVAL_X

Este parámetro especifica la densidad de línea de cuadrícula en la dirección X.

18.2.2.1.3.9. mapX:GRID_INTERVAL_Y

Este parámetro especifica la densidad de línea de cuadrícula en la dirección Y.

18.2.2.1.3.10. mapX:SCALE

Este parámetro especifica la escala de mapa para un elemento de la composición de mapa. Es útil para asegurar la visibilidad basada en escala de capas y etiquetas incluso si el cliente y servidor puedan tener diferentes algoritmos para calcular el denominador de escala.

18.2.2.1.3.11. mapX:LAYERS

Este parámetro especifica las capas para un elemento de mapa de diseño. Ver See GetMap para mas información de este parámetro.

18.2.2.1.3.12. mapX:STYLES

Este parámetro especifica los estilos de las capas definidos en un elemento de mapa de diseño específico. Consulte Ver GetMap para mas información de este parámetro.

18.2.2.1.4. GetLegendGraphics

Varios parámetros adicionales están disponibles para cambiar el tamaño de los elementos de leyenda:

  • BOXSPACE espacio entre el marco de la leyenda y el contenido (mm)

  • LAYERSPACE espacio vertical entre capas (mm)

  • LAYERTITLESPACE espacio vertical entre el título de la capa y los elementos siguientes (mm)

  • SYMBOLSPACE espacio vertical entre símbolo y artículo siguiente (mm)

  • ICONLABELSPACE espacio horizontal entre el símbolo y el texto de la etiqueta (mm)

  • SYMBOLWIDTH ancho de la previsualización de símbolo (mm)

  • SYMBOLHEIGHT alto de la previsualización de símbolo (mm)

Estos parámetros cambian las propiedades de fuente para títulos de capa y etiquetas de elementos:

  • LAYERFONTFAMILY / ITEMFONTFAMILY familia de fuentes para el título de la capa / texto del elemento

  • LAYERFONTBOLD / ITEMFONTBOLD TRUE usar una fuente en negrita

  • LAYERFONTSIZE / ITEMFONTSIZE Tamaño de fuente en puntos

  • LAYERFONTITALIC / ITEMFONTITALIC TRUE para usar fuente itálica

  • LAYERFONTCOLOR / ITEMFONTCOLOR código de color Hexadecimal (p.ej. #FF0000 para rojo)

  • LAYERTITLE FALSE para obtener solo los gráficos de leyenda sin el título de la capa

  • RULELABEL:

    • FALSE gráficos de leyenda sin etiquetas de artículo

    • AUTO ocultar la etiqueta del elemento para las capas con representación de símbolo único

Leyenda basada en contenido. Estos parámetros permiten que el cliente solicite una leyenda que muestre solo los símbolos de las características que caen en el área solicitada:

  • BBOX el área geográfica para la que se debe construir la leyenda

  • CRS / SRS el sistema de referencia de coordenadas adoptado para definir las coordenadas BBOX

  • WIDTH / HEIGHT si se establecen, estos deben coincidir con los definidos para la solicitud GetMap, para permitir que QGIS Server escale los símbolos de acuerdo con el tamaño de la imagen de la vista del mapa.

Las características de leyenda basadas en contenido se basan en la implementación de UMN MapServer:

  • SHOWFEATURECOUNT si se establece en TRUE, agrega en la leyenda el recuento de características de las características como en la siguiente imagen:

    ../../../../_images/getfeaturecount_legend.png

18.2.2.1.5. GetProjectSettings

Este tipo de solicitud funciona de manera similar a GetCapabilities, pero es más específico para QGIS Server y permite que un cliente lea información adicional que no está disponible en la salida de GetCapabilities:

  • visibilidad inicial de las capas

  • información acerca de atributos vectoriales y sus tipos de edición

  • información acerca de orden de capa y orden de dibujado

  • lista de capas publicadas en WFS

18.2.2.2. Web Feature Service (WFS)

Los estándares WFS 1.0.0 y 1.1.0 implementados en QGIS Server proporcionan una interfaz HTTP para consultar características geográficas de un proyecto QGIS. Una solicitud WFS típica define el proyecto QGIS a usar y la capa a consultar.

Documento de especificaciones según el número de versión del servicio:

Solicitudes standard proporcionadas por el servidor QGIS:

Solicitud

Descripción

GetCapabilities

Devuelve metadatos XML con información sobre el servidor

GetFeature

Devuelve una selección de objetos espaciales

DescribeFeatureType

Devuelve una descripción de los tipos de entidades y propiedades.

Transacción

Permite insertar, actualizar o eliminar objetos

18.2.2.2.1. GetFeature

Parámetros estándar para la solicitud GetFeature de acuerdo con las especificaciones OGC WFS 1.0.0 y 1.1.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio

VERSIÓN

No

Versión del servicio

SOLICITUD

Nombre de la petición

TYPENAME

No

Nombre de las capas

OUTPUTFORMAT

No

Formato de Salida

RESULTTYPE

No

Tipo de resultado

PROPERTYNAME

No

Nombre de las propiedades a regresar

MAXFEATURES

No

Número máximo de objetos espaciales a devolver

SRSNAME

No

Sistema de referencia de coordenadas

FEATUREID

No

Filtrar los objetos espaciales por ids

FILTER

No

OGC Codificación de Filtro

BBOX

No

Extensión del Mapa

SORTBY

No

Ordena los resultados

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

STARTINDEX

No

Paginamiento

GEOMETRYNAME

No

Tipo de geometría para regresar

EXP_FILTER

No

Filtrado de expresión

18.2.2.2.1.1. SERVICIO

Este parámetro tiene que ser WFS en caso de la solicitud GetFeature.

Por ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&...

18.2.2.2.1.2. VERSIÓN

Este parámetro permite especificar la versión del servicio a utilizar. Los valores disponibles para el parámetro VERSIÓN son:

  • 1.0.0

  • 1.1.0

Si no se indica una versión en la solicitud, entonces se usa 1.1.0 por defecto.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&...

18.2.2.2.1.3. SOLICITUD

Este parámetro es GetFeature en el caso de la solicitud GetFeature.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&...

18.2.2.2.1.4. RESULTTYPE

Este parámetro se puede utilizar para especificar el tipo de resultado que se devolverá. Los valores disponibles son:

  • results: el comportamiento predeterminado

  • hits: devuelve solo un recuento de características

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&RESULTTYPE=hits
&...

18.2.2.2.1.5. GEOMETRYNAME

Este parámetro se puede utilizar para especificar el tipo de geometría que se devolverá para las entidades. Los valores disponibles son:

  • extent

  • centroid

  • none

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&GEOMETRYNAME=centroid
&...

18.2.2.2.1.6. STARTINDEX

Este parámetro es estándar en WFS 2.0, pero es una extensión para WFS 1.0.0. En realidad, se puede usar para omitir algunas funciones en el conjunto de resultados y, en combinación con MAXFEATURES, brinda la capacidad de revisar los resultados.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&STARTINDEX=2
&...

18.2.2.3. Web Map Tile Service (WMTS)

El estándar WMTS 1.0.0 implementado en QGIS Server proporciona una interfaz HTTP para solicitar imágenes de mapas en mosaico generadas a partir de un proyecto QGIS. Una solicitud WMTS típica definió el proyecto QGIS a usar, algunos parámetros WMS como capas para renderizar, así como parámetros de mosaico.

Documento de especificaciones del servicio:

Solicitudes standard proporcionadas por el servidor QGIS:

Solicitud

Descripción

GetCapabilities

Devuelve metadatos XML con información sobre el servidor

GetTile

Devuelve una tesela

GetFeatureInfo

Recupera datos (geometría y valores) para una ubicación de píxeles

18.2.2.3.1. GetCapabilities

Parámetros estándar para la solicitud GetCapabilities de acuerdo con las especificaciones OGC WMTS 1.0.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMTS)

SOLICITUD

Nombre de la solicitud (GetCapabilities)

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetCapabilities
&MAP=/home/qgis/projects/world.qgs

18.2.2.3.1.1. SERVICIO

Este parámetro tiene que ser WMTS en caso de la solicitud ** GetCapabilities **.

18.2.2.3.1.2. SOLICITUD

Este parámetro es GetCapabilities en el caso de la solicitud GetCapabilities.

18.2.2.3.1.3. MAPA

Este parámetro permite definir el archivo de proyecto QGIS a utilizar.

18.2.2.3.2. GetTile

Parámetros estándar para la solicitud ** GetTile ** de acuerdo con las especificaciones OGC WMTS 1.0.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMTS)

SOLICITUD

Nombre de la solicitud (GetTile)

LAYER

Identificador de capa

FORMATO

Formato de salida de la tesela

TILEMATRIXSET

Nombre de la pirámide

TILEMATRIX

Enmallado

TILEROW

Coordenada de fila en la malla

TILECOL

Coordenada de columna en el mesh

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&MAP=/home/qgis/projects/world.qgs
&LAYER=mylayer
&FORMAT=image/png
&TILEMATRIXSET=EPSG:4326
&TILEROW=0
&TILECOL=0

18.2.2.3.2.1. SERVICIO

Este parámetro tiene que ser WMTS en el caso de la solicitud ** GetTile **.

18.2.2.3.2.2. SOLICITUD

Este parámetro es GetTile en caso de petición GetTile.

18.2.2.3.2.3. LAYER

Este parámetro permite especificar la capa que se mostrará en el mosaico.

Además, QGIS Server introdujo algunas opciones para seleccionar una capa mediante:

  • un nombre corto

  • el id de capa

El nombre corto de una capa se puede configurar mediante Propiedades -> Metadatos en el menú de capas. Si se define el nombre corto, entonces se usa por defecto en lugar del nombre de la capa:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&LAYER=mynickname
&...

Además, hay una opción de proyecto que permite seleccionar capas por su identificación en:menuselection:OWS Server –> WMS capabilities menú del diálogo Proyecto ▶ Propiedades de Proyecto. Para activar esta opción, la casilla de verificación Usar ID de capa como nombres debe estar seleccionada.

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&LAYER=mylayerid1
&...

18.2.2.3.2.4. FORMATO

Este parámetro se puede utilizar para especificar el formato de la imagen del mosaico. Los valores disponibles son:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

Si el parámetro FORMATO es diferente de uno de estos valores, entonces se usa el formato predeterminado PNG en su lugar.

18.2.2.3.2.5. TILEMATRIXSET

Este parámetro define el SRC que se utilizará al calcular la pirámide subyacente. Formato: EPSG: XXXX.

18.2.2.3.2.6. TILEMATRIX

Este parámetro permite definir la matriz a utilizar para el mosaico de salida.

18.2.2.3.2.7. TILEROW

Este parámetro permite seleccionar la fila del mosaico para entrar en la matriz.

18.2.2.3.2.8. TILECOL

Este parámetro permite seleccionar la columna del mosaico para entrar en la matriz.

18.2.2.3.2.9. MAPA

Este parámetro permite definir el archivo de proyecto QGIS a utilizar.

Como se mencionó en tabla de parámetros de GetMap, MAP es obligatorio porque una solicitud necesita un proyecto QGIS para funcionar. Sin embargo, la variable de entorno QGIS_PROJECT_FILE se puede utilizar para definir un proyecto QGIS predeterminado. En este caso específico, MAP ya no es un parámetro obligatorio. Para obtener más información, puede consultar Canfiguración avanzada.

18.2.2.3.3. GetFeatureInfo

Parámetros estándar para la solicitud ** GetFeatureInfo ** de acuerdo con las especificaciones OGC WMTS 1.0.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMTS)

SOLICITUD

Nombre de la solicitud (GetFeatureInfo)

LAYER

Identificador de capa

INFOFORMAT

No

Formato de salida

I

No

coordenada X de un píxel

J

No

coordenada Y de un píxel

TILEMATRIXSET

See GetTile

TILEMATRIX

See GetTile

TILEROW

See GetTile

TILECOL

See GetTile

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&MAP=/home/qgis/projects/world.qgs
&LAYER=mylayer
&INFOFORMAT=image/html
&I=10
&J=5

18.2.2.3.3.1. SERVICIO

Este parámetro tiene que ser WMTS en el caso de la solicitud GetFeatureInfo.

18.2.2.3.3.2. SOLICITUD

Este parámetro es GetFeatureInfo en caso de la petición GetFeatureInfo.

18.2.2.3.3.3. MAPA

Este parámetro permite definir el archivo de proyecto QGIS a utilizar.

Como se mencionó en tabla de parámetros de GetMap, MAP es obligatorio porque una solicitud necesita un proyecto QGIS para funcionar. Sin embargo, la variable de entorno QGIS_PROJECT_FILE se puede utilizar para definir un proyecto QGIS predeterminado. En este caso específico, MAP ya no es un parámetro obligatorio. Para obtener más información, puede consultar Canfiguración avanzada.

18.2.2.3.3.4. LAYER

Este parámetro permite especificar la capa que se mostrará en el mosaico.

Además, QGIS Server introdujo algunas opciones para seleccionar una capa mediante:

  • un nombre corto

  • el id de capa

El nombre corto de una capa se puede configurar mediante Propiedades -> Metadatos en el menú de capas. Si se define el nombre corto, entonces se usa por defecto en lugar del nombre de la capa:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&LAYER=mynickname
&...

Además, hay una opción de proyecto que permite seleccionar capas por su identificación en:menuselection:OWS Server –> WMS capabilities menú del diálogo Proyecto ▶ Propiedades de Proyecto. Para activar esta opción, la casilla de verificación Usar ID de capa como nombres debe estar seleccionada.

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&LAYER=mylayerid1
&...

18.2.2.3.3.5. INFOFORMAT

Este parámetro permite definir el formato de salida del resultado. Los valores disponibles son:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

El valor predeterminado es text/plain.

18.2.2.3.3.6. I

Este parámetro permite definir la coordenada X del píxel para el que queremos recuperar la información subyacente.

18.2.2.3.3.7. J

Este parámetro permite definir la coordenada Y del píxel para el que queremos recuperar información subyacente.

18.2.2.4. WFS3 (Objetos API OGC)

WFS3 es la primera implementación de la nueva generación de protocolos OGC. Es descrito por el OGC API - Features - Part 1: Core documento.

Aquí hay un resumen informal rápido de las diferencias más importantes entre el conocido protocolo WFS y WFS3:

  • WFS3 está basada en una API REST

  • Información acerca de un objeto espacial solo

  • WFS3 admite múltiples formatos de salida, pero no dicta ninguno (solo GeoJSON y HTML están disponibles actualmente en QGIS WFS3) y usa negociación de contenido para determinar qué formato se servirá al cliente

  • JSON y HTML son ciudadanos de primera clase en WFS3

  • WFS3 se autodocumenta (a través del punto final /api)

  • WFS3 es totalmente navegable (a través de enlaces) y navegable

Importante

Si bien la implementación de WFS3 en QGIS puede hacer uso del parámetro MAP para especificar el archivo del proyecto, la especificación OPENAPI no permite parámetros de consulta adicionales. Por esta razón, se recomienda encarecidamente que MAP no esté expuesto en la URL y que el archivo del proyecto se especifique en el entorno por otros medios (es decir, estableciendo QGIS_PROJECT_FILE en el entorno a través de una regla de reescritura del servidor web).

Nota

La API punto final proporciona documentación completa de todos los parámetros y formatos de salida admitidos de su servicio. Los siguientes párrafos solo describirán los más importantes.

18.2.2.4.1. Representación de recurso

La implementación de QGIS Server WFS3 actualmente admite los siguientes formatos de representación de recursos (salida):

  • HTML

  • JSON

El formato que se sirve realmente dependerá de la negociación de contenido, pero se puede solicitar explícitamente un formato específico agregando un especificador de formato a los puntos finales.

Las extensiones de especificador de formato admitidas son:

  • .json

  • .html

Los alias de especificador de formato adicionales se pueden definir por puntos finales específicos:

  • .openapi: alias para .json soportado por la API punto final

  • .geojson: alias para .json soportado por los puntos finales Features y Feature

18.2.2.4.2. Puntos finales

La API proporciona una lista de puntos finales que los clientes pueden recuperar. El sistema está diseñado de tal manera que cada respuesta proporciona un conjunto de enlaces para navegar a través de todos los recursos proporcionados.

Los puntos finales proporcionados por la implementación de QGIS son:

Nombre

Ruta

Descripción

Página de Aterrizaje

/

Información general sobre el servicio y proporciona enlaces a todos los puntos finales disponibles.

Conformidad

/conformance

Información sobre la conformidad del servicio con los estándares.

API

/api

Descripción completa de los puntos finales proporcionados por el servicio y la estructura de los documentos devueltos

Colecciones

/collections

Lista de todas las colecciones (es decir, “capas vectoriales”) proporcionadas por el servicio

Colección

/collections/{collectionId}

Información sobre una colección (nombre, metadatos, extensión, etc.)

Características

/collections/{collectionId}/items

Lista de los objetos espaciales provistos por la colección

Objeto espacial

/collections/{collectionId}/items/{featureId}

Información acerca de un objeto espacial solo

18.2.2.4.2.1. Página de Aterrizaje

El punto final principal es la Página de destino. Desde esa página es posible navegar a todos los puntos finales de servicio disponibles. La página de destino debe proporcionar enlaces a

  • la definición de API (ruta /api relaciones de enlace service-desc y service-doc),

  • la declaración de conformidad (ruta /conformidad, relación de enlace conformidad), y

  • las Colecciones (ruta /colecciones, relación de enlace datos).

../../../../_images/server_wfs3_landing_page.png

Figura 18.9 Página de aterrizaje de Servidor WFS3

18.2.2.4.2.2. Definición API

La Definición de API es una descripción compatible con OPENAPI de la API proporcionada por el servicio. En su representación HTML, es una página navegable donde todos los puntos finales y sus formatos de respuesta se enumeran y documentan con precisión. La ruta de este punto final es /api.

La definición de API proporciona una documentación completa y autorizada del servicio, incluidos todos los parámetros admitidos y los formatos devueltos.

Nota

Este punto final es análogo a GetCapabilities de WFS’s

18.2.2.4.2.3. Lista de colecciones

El punto final de colecciones proporciona una lista de todas las colecciones disponibles en el servicio. Dado que el servicio «sirve» a un solo proyecto QGIS, las colecciones son las capas vectoriales del proyecto actual (si se publicaron como WFS en las propiedades del proyecto). La ruta de este punto final es /collections/.

../../../../_images/server_wfs3_collections.png

Figura 18.10 Página de lista de colecciones de servidor WFS3

18.2.2.4.2.4. Detalle de colección

Si bien el punto final de las colecciones no proporciona información detallada sobre cada colección disponible, esa información está disponible en los puntos finales /collections/{collectionId}. La información típica incluye la extensión, una descripción, SRC y otros metadatos.

La representación HTML también proporciona un mapa navegable con las funciones disponibles.

../../../../_images/server_wfs3_collection.png

Figura 18.11 Página de detalles de la colección del servidor WFS3

18.2.2.4.2.5. Lista de objetos espaciales

Este punto final proporciona una lista de todas las funciones de una colección que conocen el ID de la colección. La ruta de este punto final es /collections/{collectionId}/items.

La representación HTML también proporciona un mapa navegable con las funciones disponibles.

Nota

Este punto final es análogo a GetFeature en WFS 1 y WFS 2.

../../../../_images/server_wfs3_features.png

Figura 18.12 Página de lista de características del servidor WFS3

18.2.2.4.2.6. Detalle de objeto espacial

Este punto final proporciona toda la información disponible sobre una única entidad, incluidos los atributos de la entidad y su geometría. La ruta de este punto final es /collections/{collectionId}/items/{itemId}.

La representación HTML también proporciona un mapa navegable con la geometría de la entidad.

../../../../_images/server_wfs3_feature.png

Figura 18.13 Página de detalles de la entidad del servidor WFS3

18.2.2.4.4. Filtrado de objetos espaciales

Las funciones disponibles en una colección se pueden filtrar/buscar especificando uno o más filtros.

18.2.2.4.4.1. Filtro de fecha y hora

Las colecciones con atributos de fecha y / o fecha y hora se pueden filtrar especificando un argumento fecha y hora en la cadena de consulta. De forma predeterminada, el primer campo de fecha / fecha y hora se utiliza para el filtrado. Este comportamiento se puede configurar estableciendo una dimensión de «Fecha» u «Hora» en Servidor QGIS -> Dimensión del cuadro de diálogo de propiedades de la capa.

La sintaxis de filtrado de fecha y hora se describe completamente en Definición API y también admite rangos (se incluyen los valores de inicio y finalización) además de valores únicos.

URL ejemplos:

Devuelve solo las funciones con coincidencia de dimensión de fecha 2019-01-01

http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01

Devuelve solo las funciones con coincidencia de dimensión de fecha y hora 2019-01-01T01:01:01

http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01T01:01:01

Devuelve solo las entidades con dimensión de fecha y hora en el rango 2019-01-01T01:01:01 - 2019-01-01T12:00:00

http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01T01:01:01/2019-01-01T12:00:00

18.2.2.4.4.2. Filtro de recuadro delimitador

Se puede especificar un filtro espacial de cuadro delimitador con el parámetro bbox:

El orden de los elementos separados por comas es:

  • Esquina inferior izquierda, longitud WGS 84

  • Esquina inferior izquierda, latitud WGS 84

  • Esquina superior derecha, longitud WGS 84

  • Esquina superior derecha, latitud WGS 84

Nota

Las especificaciones OGC también permiten un especificador bbox de 6 elementos donde el tercer y sexto elemento son los componentes Z, esto aún no es compatible con el servidor QGIS.

URL ejemplo:

http://localhost/qgisserver/wfs3/collection_one/items.json?bbox=-180,-90,180,90

Si el SRC del cuadro delimitador no es WGS84 (http://www.opengis.net/def/crs/OGC/1.3/CRS84), se puede especificar un SRC diferente utilizando el parámetro opcional bbox-crs. El identificador de formato CRS debe tener el formato`OGC URI <http://www.opengis.net/def/crs/>`_ :

URL ejemplo:

http://localhost/qgisserver/wfs3/collection_one/items.json?bbox=913191,5606014,913234,5606029&bbox-crs=http://www.opengis.net/def/crs/EPSG/9.6.2/3857

18.2.2.4.4.3. Filtros de Atributos

Los filtros de atributos se pueden combinar con el filtro de cuadro delimitador y están en la forma general: <attribute name>=<attribute value>. Se pueden combinar varios filtros usando el operador «Y».

URL ejemplo:

filtra todas las entidades donde nombre es igual a «mi valor»

http://localhost/qgisserver/wfs3/collection_one/items.json?attribute_one=my%20value

Coincidencias parciales también son soportads usando el operador * («estrella»)

URL ejemplo:

filtra todas las entidades donde el atributo nombre finaliza con «valor»

http://localhost/qgisserver/wfs3/collection_one/items.json?attribute_one=*value

18.2.2.4.5. Selección de atributos

Los atributos de características devueltos por una llamada :ref:ʻogc_api_features_features_list` se pueden limitar agregando una lista de nombres de atributos separados por comas en el argumento opcional de cadena de consulta `` propiedades “”.

URL ejemplo:

devuelve solo el atributo nombre

http://localhost/qgisserver/wfs3/collection_one/items.json?properties=name

18.2.2.4.6. El lenguaje de plantilla HTML

La representación HTML utiliza un conjunto de plantillas HTML para generar la respuesta. La plantilla es analizada por un motor de plantillas llamado ʻinja <https://github.com/pantor/inja#tutorial>`_. Las plantillas se pueden personalizar reemplazándolas (ver: Sobreescritura de Plantilla). La plantilla tiene acceso a los mismos datos que están disponibles para la representación JSON y algunas funciones adicionales están disponibles para la plantilla:

18.2.2.4.6.1. Funciones personalizadas de plantilla

  • path_append( path ): adjunta una ruta de directorio a la actual url

  • path_chomp( n ): borra el número especificado «n» de componentes del directorio de la ruta url actual

  • json_dump( ): imprime los datos JSON pasados a la plantilla

  • static( path ): devuelve la URL completa a la ruta estática especificada. Por ejemplo: «static( «/style/black.css» )» con una ruta raiz «http://localhost/qgisserver/wfs3» devolverá «http://localhost/qgisserver/wfs3/static/style/black.css».

  • links_filter( links, key, value ): Devuelve enlaces filtrados de una lista de enlaces

  • content_type_name( content_type ): Devuelve un nombre corto de un tipo de contenido, por ejemplo «text/html» devolverá «HTML»

18.2.2.4.6.2. Sobreescritura de Plantilla

Las plantillas y los activos estáticos se almacenan en subdirectorios del directorio de recursos de API predeterminado del servidor QGIS (/usr/share/qgis/resources/server/api/ en un sistema Linux), el directorio base se puede personalizar cambiando la variable de entorno QGIS_SERVER_API_RESOURCES_DIRECTORY.

Una instalación típica de Linux tendrá el siguiente árbol de directorios:

/usr/share/qgis/resources/server/api/
└── ogc
    ├── schema.json
    ├── static
    │   ├── jsonFormatter.min.css
    │   ├── jsonFormatter.min.js
    │   └── style.css
    └── templates
        └── wfs3
            ├── describeCollection.html
            ├── describeCollections.html
            ├── footer.html
            ├── getApiDescription.html
            ├── getFeature.html
            ├── getFeatures.html
            ├── getLandingPage.html
            ├── getRequirementClasses.html
            ├── header.html
            ├── leaflet_map.html
            └── links.html

Para anular las plantillas, puede copiar todo el árbol a otra ubicación y señalar QGIS_SERVER_API_RESOURCES_DIRECTORY a la nueva ubicación.

18.2.2.5. Parámetros extra soportados por todos los tipos de solicitudes

Los siguientes parámetros adicionales son compatibles con todos los protocolos.

  • FILE_NAME: si se establece, la respuesta del servidor se enviará al cliente como un archivo adjunto con el nombre de archivo especificado.

Nota

No disponible para WFS3.

  • MAP: De manera similar a MapServer, el parámetro MAP se puede usar para especificar la ruta al archivo del proyecto QGIS. Puede especificar una ruta absoluta o una ruta relativa a la ubicación del ejecutable del servidor (qgis_mapserv.fcgi). Si no se especifica, QGIS Server busca archivos .qgs en el directorio donde se encuentra el ejecutable del servidor.

    Ejemplo:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&MAP=/home/qgis/projects/world.qgs&...
    

Nota

Puede definir un QGIS_PROJECT_FILE como una variable de entorno para decirle al ejecutable del servidor dónde encontrar el archivo del proyecto QGIS. Esta variable será la ubicación donde QGIS buscará el archivo del proyecto. Si no está definido, usará el parámetro MAP en la solicitud y finalmente buscará en el directorio ejecutable del servidor.

18.2.2.6. REDLINING

Esta función está disponible y se puede utilizar con las solicitudes GetMap y GetPrint.

La función de marcación roja se puede utilizar para pasar geometrías y etiquetas en la solicitud que el servidor superpone sobre la imagen devuelta estándar (mapa). Esto permite al usuario poner énfasis o quizás agregar algunos comentarios (etiquetas) a algunas áreas, ubicaciones, etc. que no están en el mapa estándar.

La petición están en el formato:

http://qgisplatform.demo/cgi-bin/qgis_mapserv.fcgi?map=/world.qgs&SERVICE=WMS&VERSION=1.3.0&
REQUEST=GetMap
...
&HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&HIGHLIGHT_LABELSTRING=Write label here
&HIGHLIGHT_LABELSIZE=16
&HIGHLIGHT_LABELCOLOR=%23000000
&HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&HIGHLIGHT_LABELBUFFERSIZE=1.5

Aquí está la imagen obtenida por la solicitud anterior en la que se dibujan un polígono y una etiqueta sobre el mapa normal:

../../../../_images/server_redlining.png

Figura 18.14 Respuesta del servidor a una solicitud GetMap con parámetros de marcado

Puede ver que hay varios parámetros en esta solicitud:

  • HIGHLIGHT_GEOM: Puede añadir POINT, MULTILINESTRING, POLYGON etc. Admite geometrías multiparte. Aquí hay un ejemplo: HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1)). Las coordenadas deben estar en el SRC de la solicitud GetMap/GetPrint.

  • HIGHLIGHT_SYMBOL: Esto controla cómo se perfila la geometría y puede cambiar el ancho, el color y la opacidad del trazo.

  • HIGHLIGHT_LABELSTRING: Puede pasar su texto de etiquetado a este parámetro.

  • HIGHLIGHT_LABELSIZE: Este parámetro controla el tamaño de la etiqueta.

  • HIGHLIGHT_LABELCOLOR: Este parámetro controla el color de la etiqueta.

  • HIGHLIGHT_LABELBUFFERCOLOR: Este parámetro controla el color del búfer de etiquetas.

  • HIGHLIGHT_LABELBUFFERSIZE: Este parámetro controla el tamaño del búfer de etiquetas.

18.2.2.7. Capas WMS Externas

QGIS Server permite incluir capas de servidores WMS externos en las solicitudes WMS GetMap y WMS GetPrint. Esto es especialmente útil si un cliente web utiliza una capa de fondo externa en el mapa web. Por razones de rendimiento, dichas capas deben ser solicitadas directamente por el cliente web (no en cascada a través del servidor QGIS). Sin embargo, para imprimir, estas capas deben conectarse en cascada a través del servidor QGIS para que aparezcan en el mapa impreso.

Las capas externas se pueden agregar al parámetro LAYERS como EXTERNAL_WMS:<layername>. Los parámetros para las capas WMS externas (por ejemplo, url, formato, dpiMode, crs, capas, estilos) se pueden proporcionar posteriormente como parámetros de servicio. <layername>:<parameter>. En una solicitud GetMap, esto podría verse así:

http://localhost/qgisserver?
SERVICE=WMS&REQUEST=GetMap
...
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&STYLES=,,
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default

En una solicitud GetMap, esto podría verse así:

http://localhost/qgisserver?
SERVICE=WMS
...
&REQUEST=GetPrint&TEMPLATE=A4
&map0:layers=EXTERNAL_WMS:basemap,layer1,layer2
&map0:EXTENT=<minx,miny,maxx,maxy>
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default