서비스

QGIS Server supports some vendor parameters and requests that greatly enhance the possibilities of customising its behavior. The following paragraphs list the vendor parameters and the environment variables supported by the server.

WMS(웹 맵 서비스)

GetMap

In the WMS GetMap request, QGIS Server accepts a couple of extra parameters in addition to the standard parameters according to the OGC WMS 1.3.0 specification:

  • DPI parameter: The DPI parameter can be used to specify the requested output resolution.

    다음은 그 예시입니다:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?REQUEST=GetMap&DPI=300&...
  • IMAGE_QUALITY parameter is only used for JPEG images. By default, the JPEG compression is -1. You can change the default per QGIS project in the OWS Server ‣ WMS capabilities menu of the Project ‣ Project Properties dialog. If you want to override it in a GetMap request you can do it using the IMAGE_QUALITY parameter:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
     REQUEST=GetMap&FORMAT=image/jpeg&IMAGE_QUALITY=65&...
    
  • image/png; mode= can be used to override the png format. You can choose between image/png; mode=16bit, image/png; mode=8bit and image/png; mode=1bit. This can shrink the output image size quite a bit. Example:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
     REQUEST=GetMap&FORMAT=image/png; mode=8bit&...
    
  • OPACITIES parameter: Opacity can be set on layer or group level. Allowed values range from 0 (fully transparent) to 255 (fully opaque).

    다음은 그 예시입니다:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&LAYERS=mylayer1,mylayer2&OPACITIES=125,200&...
  • FILTER parameter: Subsets of layers can be selected with the FILTER parameter. Syntax is basically the same as for the QGIS subset string. However, there are some restrictions to avoid SQL injections into databases via QGIS server:

    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

    다음은 그 예시입니다:

    http://myserver.com/cgi/qgis_mapserv.fcgi?REQUEST=GetMap&LAYERS=mylayer1,mylayer2&FILTER=mylayer1:"OBJECTID" = 3;mylayer2:'text' = 'blabla'&....

주석

It is possible to make attribute searches via GetFeatureInfo and omit the X/Y parameter if a FILTER is there. QGIS server then returns info about the matching features and generates a combined bounding box in the xml output.

  • SELECTION parameter: The SELECTION parameter can highlight features from one or more layers. Vector features can be selected by passing comma separated lists with feature ids in GetMap and GetPrint.

    다음은 그 예시입니다:

    http://myserver.com/cgi/qgis_mapserv.fcgi?REQUEST=GetMap&LAYERS=mylayer1,mylayer2&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6&...

    The following image presents the response from a GetMap request using the SELECTION option e.g. http://myserver.com/...&SELECTION=countries:171,65. As those features id’s correspond in the source dataset to France and Romania they’re highlighted in yellow.

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

    SELECTION 파라미터를 보유한 GetMap 요청에 대한 서버의 응답

It is possible to export layers in the DXF format using the GetMap Request. Only layers that have read access in the WFS service are exported in the DXF format. Here is a valid REQUEST and a documentation of the available parameters:

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

Parameters:

  • FORMAT=application/dxf
  • FILE_NAME=yoursuggested_file_name_for_download.dxf
  • FORMAT_OPTIONS=see options below, key:value pairs separated by Semicolon

FORMAT_OPTIONS Parameters:

  • SCALE:scale to be used for symbology rules, filters and styles (not an actual scaling of the data - data remains in the original scale).
  • MODE:NOSYMBOLOGY|FEATURESYMBOLOGY|SYMBOLLAYERSYMBOLOGY corresponds to the three export options offered in the QGIS Desktop DXF export dialog.
  • LAYERSATTRIBUTES:yourcolumn_with_values_to_be_used_for_dxf_layernames - if not specified, the original QGIS layer names are used.
  • USE_TITLE_AS_LAYERNAME if enabled, the title of the layer will be used as layer name.

GetFeatureInfo

QGIS Server WMS GetFeatureInfo requests supports the following extra optional parameters to define the tolerance for point, line and polygon layers:

  • FI_POINT_TOLERANCE parameter: Tolerance for point layers GetFeatureInfo request, in pixels.
  • FI_LINE_TOLERANCE parameter: Tolerance for linestring layers GetFeatureInfo request, in pixels.
  • FI_POLYGON_TOLERANCE parameter: Tolerance for polygon layers GetFeatureInfo request, in pixels.

GetPrint

QGIS server has the capability to create print composer output in pdf or pixel format. Print composer windows in the published project are used as templates. In the GetPrint request, the client has the possibility to specify parameters of the contained composer maps and labels.

Example:

The published project has two composer maps. In the GetProjectSettings response, they are listed as possible print templates:

<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>

The client has now the information to request a print output:

http://myserver.com/cgi/qgis_mapserv.fcgi?...&REQUEST=GetPrint&TEMPLATE=Druckzusammenstellung 1&map0:EXTENT=xmin,ymin,xmax,ymax&map0:ROTATION=45&FORMAT=pdf&DPI=300

Parameters in the GetPrint request are:

  • <map_id>:EXTENT gives the extent for a composer map as xmin,ymin,xmax,ymax.
  • <map_id>:ROTATION map rotation in degrees
  • <map_id>:GRID_INTERVAL_X, <map_id>:GRID_INTERVAL_Y Grid line density for a composer map in x- and y-direction
  • <map_id>:SCALE Sets a mapscale to a composer map. This is useful to ensure scale based visibility of layers and labels even if client and server may have different algorithms to calculate the scale denominator
  • <map_id>:LAYERS, <map_id>:STYLES possibility to give layer and styles list for composer map (useful in case of overview maps which should have only a subset of layers)

GetLegendGraphics

다음은 범례 항목의 크기를 변경하는 데 사용할 수 있는 여러 추가 파라미터들입니다:

  • BOXSPACE 파라미터: 범례 프레임과 내용물 사이의 여백을 밀리미터 단위로 정의합니다.

  • LAYERSPACE versical space between layers (mm)
  • LAYERTITLESPACE 파라미터: 레이어 제목과 그 옆에 있는 항목들 사이의 수직 여백을 밀리미터 단위로 정의합니다.

  • SYMBOLSPACE 파라미터: 심볼과 그 옆에 있는 항목 사이의 수직 여백을 밀리미터 단위로 정의합니다.

  • ICONLABELSPACE 파라미터: 심볼과 라벨 텍스트 사이의 수평 여백을 밀리미터 단위로 정의합니다.

  • SYMBOLWIDTH 파라미터: 심볼 미리보기의 너비를 밀리미터 단위로 정의합니다.

  • SYMBOLHEIGHT 파라미터: 심볼 미리보기의 높이를 밀리미터 단위로 정의합니다.

다음은 레이어 제목 및 항목 라벨의 폰트 속성을 변경하는 파라미터들입니다:

  • LAYERFONTFAMILY, ITEMFONTFAMILY 파라미터: 각각 레이어 제목 및 항목의 텍스트 용 폰트 패밀리를 정의합니다.

  • LAYERFONTBOLD / ITEMFONTBOLD ‘TRUE’ to use a bold font
  • LAYERFONTSIZE, ITEMFONTSIZE: 폰트 크기를 포인트 단위로 정의합니다.

  • LAYERFONTITALIC / ITEMFONTITALIC ‘TRUE’ to use italic font
  • LAYERFONTCOLOR / ITEMFONTCOLOR Hex color code (e.g. #FF0000 for red)
  • LAYERTITLE / RULELABEL (from QGIS 2.4) set them to ‘FALSE’ to get only the legend graphics without labels

Contest based legend. These parameters let the client request a legend showing only the symbols for the features falling into the requested area:

  • BBOX 파라미터: 범례를 생성해야 하는 지리적 영역을 정의합니다.

  • CRS, SRS 파라미터: BBOX 의 좌표를 계산하는 데 사용될 좌표계를 정의합니다.

  • WIDTH, HEIGHT 파라미터: 이 파라미터들을 설정하는 경우, QGIS 서버가 심볼의 크기를 맵 뷰 이미지 크기에 따라 조정할 수 있도록 GetMap 요청에서 정의한 너비 및 높이와 일치해야 합니다.

Contest based legend features are based on the UMN MapServer implementation:

GetProjectSettings

이 요청 유형은 GetCapabilities 요청과 비슷하게 동작하지만, 좀 더 QGIS 서버에 특화돼 있고 클라이언트가 GetCapabilities 출력물에서는 볼 수 없는 다음 추가 정보를 읽을 수 있습니다:

  • 레이어의 초기 가시성

  • 벡터 속성 및 속성 편집 유형 관련 정보

  • 레이어 순서 및 렌더링 순서 관련 정보

  • WFS에 게시된 레이어 목록

WFS(웹 피처 서비스)

GetFeature

In the WFS GetFeature request, QGIS Server accepts two extra parameters in addition to the standard parameters according to the OGC WFS 1.0.0 specification:

  • GeometryName parameter: this parameter can be used to get the extent or the centroid as the geometry or no geometry if none if used (ie attribute only). Allowed values are extent, centroid or none.
  • StartIndex parameter: STARTINDEX is standard in WFS 2.0, but it’s an extension for WFS 1.0.0 which is the only version implemented in QGIS Server. STARTINDEX can be used to skip some features in the result set and in combination with MAXFEATURES will provide for the ability to use WFS GetFeature to page through results. Note that STARTINDEX=0 means start with

모든 요청 유형이 지원하는 추가 파라미터들

  • FILE_NAME 파라미터: 이 파라미터를 설정하면, 서버가 클라이언트에게 설정한 파일명을 가진 첨부 파일로 응답을 넘깁니다.

  • MAP 파라미터: 맵서버와 비슷하게, QGIS 프로젝트 파일을 가리키는 경로를 지정하는 데 MAP 파라미터를 사용할 수 있습니다. 절대 경로를 지정할 수도 있고, 서버 실행 파일(qgis_mapserv.fcgi)의 위치를 기준으로 하는 상대 경로를 지정할 수도 있습니다. 이 파라미터를 설정하지 않으면, QGIS는 서버 실행 파일이 위치한 디렉터리에서 .qgs 파일을 검색할 것입니다.

    다음은 그 예시입니다:

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

주석

QGIS_PROJECT_FILE 파라미터를 환경 변수로 정의해서 서버 실행 파일에 QGIS 프로젝트 파일을 찾을 수 있는 위치를 알려줄 수 있습니다. 이 변수가 QGIS가 프로젝트 파일을 검색할 위치가 될 것입니다. 정의하지 않을 경우, 요청에 있는 MAP 파라미터를 이용한 다음 마지막으로 서버 실행 파일이 있는 디렉터리를 살펴볼 것입니다.

the first feature, skipping none.

REDLINING(특정 경계 지역 지정)

GetMapGetPrint 요청을 통해 이 기능을 사용할 수 있습니다.

요청 안에 있는, 서버가 반환한 표준 이미지(맵) 위를 중첩시키도록하는 도형 및 라벨을 넘기는 데 이 REDLINING 기능을 사용할 수 있습니다. 이 기능은 사용자가 표준 맵에는 없는 일부 지역 또는 위치 등을 강조하거나 또는 그런 곳에 주석(라벨)을 달 수 있도록 해줍니다.

다음과 같은 서식으로 요청합니다:

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

다음 그림은 앞의 요청을 통해 일반 맵 위에 폴리곤 및 라벨을 렌더링한 출력물을 보여주고 있습니다:

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

REDLINING 파라미터를 보유한 GetMap 요청에 대한 서버의 응답

이 요청 안에 다음 여러 파라미터들이 있다는 것을 알 수 있습니다:

  • HIGHLIGHT_GEOM 파라미터: 포인트, 멀티라인스트링, 폴리곤 등을 추가할 수 있습니다. 다중 부분 도형도 지원합니다. 이 파라미터는 HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1)) 와 같이 사용할 수 있습니다. 사용 좌표는 GetMap / GetPrint 요청의 좌표계의 좌표여야 합니다.

  • HIGHLIGHT_SYMBOL 파라미터: 이 파라미터는 도형의 외곽선을 어떻게 렌더링할지 제어하며, 사용자가 획의 너비, 색상 및 불투명도를 변경할 수 있습니다.

  • HIGHLIGHT_LABELSTRING 파라미터: 이 파라미터를 통해 사용자의 라벨 텍스트를 넘겨줄 수 있습니다.

  • HIGHLIGHT_LABELSIZE 파라미터: 이 파라미터는 라벨의 크기를 제어합니다.

  • HIGHLIGHT_LABELCOLOR 파라미터: 이 파라미터는 라벨의 색상을 제어합니다.

  • HIGHLIGHT_LABELBUFFERCOLOR 파라미터: 이 파라미터는 라벨 버퍼의 색상을 제어합니다.

  • HIGHLIGHT_LABELBUFFERSIZE 파라미터: 이 파라미터는 라벨 버퍼의 크기를 제어합니다.