3.2. Webマップサービス (WMS)
QGISサーバに実装された 1.1.1 と 1.3.0 のWMS標準は、QGISプロジェクトから作成された地図又は凡例画像を要求するためのHTTPインターフェースを提供します。典型的なWMSリクエストは、使用するQGISプロジェクト、レンダリングするレイヤ、生成する画像の形式を決定します。Styled Layer Descriptor (SLD) ではベーシックサポートも利用できます。
仕様:
QGIS Serverが提供する標準リクエスト
リクエスト |
説明 |
---|---|
サーバーに関する情報を含むXMLメタデータを返します |
|
マップを返します |
|
ピクセル位置のデータ(ジオメトリと値)を取得します |
|
凡例シンボルを返します |
|
SLD によるスタイル記述の XML 文書を返します |
|
ベクタレイヤとラスタレイヤについて、それぞれWFSとWCSの有無に関する情報を返します |
QGIS Serverが提供するベンダーのリクエスト:
リクエスト |
説明 |
---|---|
QGISのレイアウトを返します |
|
QGIS Server に関する特定の情報を返します |
|
オプションの拡張機能に関する XML メタデータを返します |
3.2.1. GetCapabilities
OGC WMS 1.1.1 及び 1.3.0 仕様に従った GetCapabilities リクエストの標準パラメータ:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetCapabilities) |
|
No |
サービスのバージョン |
GetCapabilities リクエストは以下のベンダーパラメータもサポートしています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetCapabilities
3.2.2. GetMap
OGC WMS 1.1.1 及び 1.3.0 仕様に従った GetMap リクエストの標準パラメータ:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetMap) |
|
Yes |
サービスのバージョン |
|
No |
表示するレイヤ |
|
No |
レイヤのスタイル |
|
Yes |
座標参照系 |
|
Yes |
マップの範囲 |
|
Yes |
ピクセル単位の画像の幅 |
|
Yes |
ピクセル単位の画像の高さ |
|
No |
画像の形式 |
|
No |
透明な背景 |
|
SLD |
No |
スタイリングに使用するSLDのURL |
SLD_BODY |
No |
スタイリングに使用するインラインSLD(XML) |
QGIS Serverでは、標準的なものに加えて、 redlining、 external WMS layers、および以下の追加パラメータがサポートされています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
|
No |
背景色を指定します |
|
No |
出力解像度を指定します |
|
No |
JPEG圧縮 |
|
No |
レイヤまたはグループの不透明度 |
|
No |
地物のサブセット |
|
No |
地物を強調します |
|
FILE_NAME |
No |
ダウンロードするファイルのファイル名
|
No |
指定されたファイル形式のオプション
|
|
No |
tiledモード での作業 |
URLの例:
http://localhost/qgisserver?
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
VERSION
このパラメータでは、使用するサービスのバージョンを指定することができます。VERSION
パラメータに指定できる値は以下の通りです:
1.1.1
1.3.0
バージョン番号によって、次のパラメータで説明するように、若干の違いがあることが予想されます:
CRS
/SRS
BBOX
LAYERS
マップ上に表示するレイヤーを指定するパラメータです。名前はカンマで区切る必要があります。
さらに、QGIS Serverでは、レイヤを選択するためのオプションがいくつか導入されています:
レイヤid
レイヤIDで選択できるようにするプロジェクトオプションは、 レイヤIDを名前に使う チェックボックスをチェックします。
ダイアログの タブにあります。このオプションを有効にするには、http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayerid1,mylayerid2
&...
STYLES
このパラメータは、レンダリングステップのレイヤのスタイルを指定するために使用されます。スタイルはカンマで区切る必要があります。デフォルトのスタイル名は default
です。
SRS / CRS
このパラメータは、WMS 1.1.1 におけるマップ出力の空間参照系を示すもので、EPSG:XXXX
のような形式で指定する必要があります。なお、現在のバージョンが 1.1.1 の場合は CRS
もサポートされます。
WMS 1.3.0 では、CRS
パラメータが望ましいですが、SRS
もサポートされています。
もし CRS
と SRS
の両方のパラメータがリクエストに含まれていた場合、 VERSION
パラメータで示される現在のバージョンが決定的に重要であることに注意してください。
次のケースでは、CRS
が指示されていないため、SRS
パラメータは VERSION
パラメータが何であろうと保持されます:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&SRS=EPSG:2854
&...
次のケースでは、VERSION
パラメータのため、CRS
の代わりに``SRS``パラメータが保持されます:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&CRS=EPSG:4326
&SRS=EPSG:2854
&...
次のケースでは、VERSION
パラメータのため、SRS
の代わりに CRS
パラメータが保持されます:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=EPSG:4326
&SRS=EPSG:2854
&...
BBOX
このパラメータを使用すると、現在のCRSに従った単位でマップの範囲を指定することができます。座標はカンマで区切る必要があります。
BBOX
パラメータは min_a,min_b,max_a,max_b
のように形成されますが、a
と b
の軸の定義は、現在の VERSION
パラメータによって異なります:
WMS 1.1.1 において、軸の順序は常に東/北です
WMS 1.3.0 において、軸の順序はCRSの権限に依存します
例えば EPSG:4326
と WMS 1.1.1 の場合、a
は経度(東)、b
は緯度(北)で、次のようなリクエストとなります:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&SRS=epsg:4326
&BBOX=-180,-90,180,90
&...
しかし、WMS 1.3.0 の場合、EPSGデータベースで定義されている軸の順序は北/東なので、a
は緯度、b
は経度です:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=epsg:4326
&BBOX=-90,-180,90,180
&...
WIDTH
出力画像の幅をピクセル単位で指定することができるパラメータです。
HEIGHT
出力画像の高さをピクセル単位で指定することができるパラメータです。
FORMAT
このパラメータは、マップ画像の形式を指定するために使うことができます。使用可能な値は次の通りです:
jpg
jpeg
image/jpeg
image/png
image/png; mode=1bit
image/png; mode=8bit
image/png; mode=16bit
image/webp
application/dxf
: WFSサービスで読み取り権限を持つレイヤーのみがDXF形式でエクスポートされますURLの例:
http://localhost/qgisserver? SERVICE=WMS&VERSION=1.3.0 &REQUEST=GetMap &FORMAT=application/dxf &LAYERS=Haltungen,Normschacht,Spezialbauwerke &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
TRANSPARENT
この ブール型パラメータを使って、背景の不透明度を指定することができます。使用可能な値は以下の通りです(大文字と小文字は区別されません):
TRUE
FALSE
ただし、FORMAT
で示される画像の形式がPNGと異なる場合、このパラメータは無視されます。
BGCOLOR
このパラメータはマップ画像の背景色を指定することができます。ただし、PNG画像の場合は TRANSPARENT
パラメータと組み合わせることができません(透明度が優先されます)。色はリテラルでも16進数でもかまいません。
リテラル表記によるURLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=green
&...
16進数表記によるURLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=0x00FF00
&...
DPI
このパラメータを使って、要求される出力分解能を指定することができます。
IMAGE_QUALITY
このパラメータは、JPEG画像に対してのみ使用されます。デフォルトでは、JPEGの圧縮率は -1
です。
QGISプロジェクトごとのデフォルトは、 GetMap
リクエストでオーバーライドしたい場合は、IMAGE_QUALITY
パラメータを使用することができます。
OPACITIES
不透明度の値をカンマで区切ったリストです。不透明度は、レイヤまたはグループレベルで設定することができます。設定可能な値は、0
(完全に透明)から 255
(完全に不透明)までの範囲です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=200
&CRS=EPSG:4326
&LAYERS=countries,places
&BBOX=42,-6,52,15
&OPACITIES=255,0
FILTER
FILTER
パラメータを使用すると、レイヤーのサブセットを選択することができます。構文は基本的にQGISのサブセット文字列と同じです。ただし、QGIS Serverを介したデータベースへのSQLインジェクションを避けるために、いくつかの制限があります。パラメータに危険な文字列が見つかった場合、QGIS Serverは次のエラーを返します:
<ServiceExceptionReport>
<ServiceException code="Security">The filter string XXXXXXXXX has been rejected because of security reasons.
Note: Text strings have to be enclosed in single or double quotes. A space between each word / special character is mandatory.
Allowed Keywords and special characters are IS,NOT,NULL,AND,OR,IN,=,<,=<,>,>=,!=,',',(,),DMETAPHONE,SOUNDEX.
Not allowed are semicolons in the filter expression.</ServiceException>
</ServiceExceptionReport>
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=300
&CRS=EPSG:4326
&BBOX=41,-6,52,10
&LAYERS=countries_shapeburst,countries,places
&FILTER=countries_shapeburst,countries:"name" = 'France';places: "name" = 'Paris'
この例では、同じフィルター "name" = 'France'
がレイヤ countries
と countries_shapeburst
に適用され、フィルター "name" = 'Paris'
が places
にのみ適用されています。
注釈
FILTERがある場合は、GetFeatureInfoで属性検索を行い、X/Yパラメータを省略することが可能です。QGIS Serverは、マッチした地物の情報を返し、XML出力に結合バウンディングボックスを生成します。
SELECTION
SELECTION
パラメータは、1つまたは複数のレイヤから地物をハイライトすることができます。ベクタ地物は、地物IDをカンマで区切ったリストを渡すことで選択することができます。
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2
&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6
&...
次の画像は、SELECTION
オプションを使ったGetMapリクエストの応答を示しています 例 http://myserver.com/...&SELECTION=countries:171,65
。
これらの地物IDは、ソースデータセットでは France と Romania に対応しているので、黄色でハイライトされています。
FORMAT_OPTIONS
このパラメータは、選択された形式に関するオプションを指定するために使うことができます。FORMAT=application/dxf
の場合のみです。セミコロンで区切られたキー:値のペアのリストです:
SCALE: シンボロジルール、フィルター、スタイルに使用されます(データの実際のスケーリングではありません - データは元の縮尺のままです)。
MODE: QGIS DesktopのDXFエクスポートダイアログで提供されるエクスポートオプションに対応します。可能な値は
NOSYMBOLOGY
、FEATURESYMBOLOGY
、SYMBOLLAYERSYMBOLOGY
です。LAYERSATTRIBUTES: DXFレイヤー名の値を含むフィールドを指定します - 指定しない場合、元のQGISレイヤー名が使用されます。
USE_TITLE_AS_LAYERNAME: 有効にすると、レイヤのタイトルがレイヤ名として使用されるようになります。
CODEC: エンコードに使用するコーデックを指定します。デフォルトはISO-8859-1です。有効な値については、QGISデスクトップのDXFエクスポートダイアログを確認してください。
NO_MTEXT: ラベルに MTEXT の代わりに TEXT を使用します。
FORCE_2D:2D出力を強制します。ポリライン幅に必要です。
TILED
パフォーマンス上の理由から、QGIS Serverはタイルモードで使用することができます。このモードでは、クライアントが複数の小さな固定サイズのタイルを要求し、それらを組み立ててマップ全体を形成します。この場合、2つのタイルの境界付近のシンボルは、どちらかのタイルにしか存在しないため、カットされて表示されることがあります。
TILED
パラメータを TRUE
に設定すると、QGIS Serverに タイル モードで動作し、QGISプロジェクトで設定された タイルバッファ を適用するように指示します( プロジェクトを設定する を参照)。
TILED
が TRUE
で、かつ QGIS プロジェクトで非ゼロのタイルバッファが設定されている場合、タイル境界でのカットシンボルを避けるために、タイル範囲外の地物が描画されます。
TILED
のデフォルトは FALSE
です。
3.2.3. GetFeatureInfo
OGC WMS 1.1.1 および 1.3.0 仕様に従った GetFeatureInfo リクエストの標準パラメータ:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetFeatureInfo) |
|
No |
サービスのバージョン |
|
Yes |
クエリするレイヤ |
|
Yes |
表示するレイヤ(QUERY_LAYERS と同じ) |
|
No |
レイヤのスタイル |
|
Yes |
座標参照系 |
|
No |
マップの範囲 |
|
Yes |
ピクセル単位の画像の幅 |
|
Yes |
ピクセル単位の画像の高さ |
|
No |
透明な背景 |
|
No |
出力形式 |
|
No |
返す地物の最大数 |
|
No |
クエリする点のピクセル列 |
|
No |
I パラメータと同じだが、WMS 1.1.1 の場合 |
|
No |
クエリする点のピクセル行 |
|
No |
J パラメータと同じだが、WMS 1.1.1 の場合 |
|
WMS_PRECISION |
No |
ジオメトリを返す際に使用する精度(桁数)( how to add geometry to feature response を参照してください)。デフォルト値は |
QGIS Serverは、標準的なものに加えて、以下の追加パラメータをサポートしています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
|
No |
地物のサブセット |
|
No |
ポイントレイヤに対するピクセル単位の許容範囲 |
|
No |
ラインレイヤに対するピクセル単位の許容範囲 |
|
No |
ポリゴンレイヤに対するピクセル単位の許容範囲 |
|
No |
ジオメトリのフィルタリング |
|
No |
出力にマップチップを追加します |
|
No |
出力にジオメトリを追加します |
URLの例:
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
INFO_FORMAT
このパラメータは結果のフォーマットを指定するために使用されます。利用可能な値は以下のとおりです:
text/xml
text/html
text/plain
application/vnd.ogc.gml
application/json
QUERY_LAYERS
このパラメータは、マップ上に表示するレイヤを指定します。名前はカンマで区切られます。
さらに、QGIS Serverでは、レイヤーを選択する以下のオプションを導入しています:
短い名前
レイヤid
詳しくは GetMap で定義されている LAYERS
パラメータを参照してください。
FEATURE_COUNT
このパラメータは、レイヤーごとに返す地物の最大数を指定します。例えば、 QUERY_LAYERS
が layer1,layer2
で、 FEATURE_COUNT
が 3
の場合、レイヤ1から最大3つの地物が返されることになります。同様に、レイヤ2からは最大3つの地物が返されます。
デフォルトでは1つの地物だけが返されます。
I
WMS 1.3.0で定義されたパラメータで、クエリポイントのピクセル列を指定することができます。
X
I
と同じパラメータですが、WMS 1.1.1 で定義されています。
J
WMS 1.3.0で定義されたパラメータで、クエリポイントのピクセル行を指定することができます。
Y
J
と同じパラメータですが、WMS 1.1.1 で定義されています。
FI_POINT_TOLERANCE
このパラメータではラインレイヤでの許容誤差(ピクセル)を指定します。
FI_LINE_TOLERANCE
ラインレイヤの許容範囲をピクセル単位で指定するパラメータです。
FI_POLYGON_TOLERANCE
ポリゴンレイヤの許容範囲をピクセル単位で指定するパラメータです。
FILTER_GEOM
このパラメータは、地物が交差しなければならないWKTジオメトリを指定します。
WITH_MAPTIP
このパラメータは、出力にマップチップを加えるかどうかを指定します。
利用可能な値は次の通りです(大文字と小文字は区別されません):
TRUE
FALSE
WITH_GEOMETRY
このパラメータは、出力にジオメトリを追加するかどうかを指定します。この機能を使用するには、まずQGISプロジェクトで Add geometry to feature response オプションを有効にする必要があります。Configure your project を参照してください。
利用可能な値は次の通りです(大文字と小文字は区別されません):
TRUE
FALSE
3.2.4. GetLegendGraphic
OGC WMS 1.1.1および1.3.0仕様に従った GetLegendGraphic リクエストの標準パラメータ
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetLegendGraphic) |
|
No |
サービスのバージョン |
|
Yes |
表示するレイヤ |
|
No |
レイヤのスタイル |
|
No |
座標参照系 |
|
No |
マップの範囲 |
|
No |
ピクセル単位の画像の幅 |
|
No |
ピクセル単位の画像の高さ |
|
No |
凡例の形式 |
|
No |
透明な背景 |
QGIS Serverでは、標準的なパラメータに加えて、凡例要素のサイズやレイヤタイトルやアイテムラベルのフォントプロパティを変更するための追加パラメータをサポートしています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
|
No |
マップの幅 |
|
No |
マップの高さ |
|
No |
地物の地物数を追加します |
|
No |
ルールシンボルをレンダリング |
|
No |
アイテムラベルをレンダリング |
|
No |
凡例フレームと内容の間隔 (mm) |
|
No |
レイヤの垂直間隔 (mm) |
|
No |
レイヤタイトルとアイテムの垂直間隔 (mm) |
|
No |
シンボルとアイテムの垂直間隔 (mm) |
|
No |
シンボルとラベルの水平間隔 (mm) |
|
No |
シンボルプレビューの幅 (mm) |
|
No |
シンボルプレビューの高さ (mm) |
|
No |
レイヤタイトルをレンダリング |
|
No |
レイヤのフォントファミリー |
|
No |
レイヤタイトルを太字でレンダリング |
|
No |
レイヤタイトルのフォントサイズ (pt) |
|
No |
レイヤタイトルを斜体でレンダリング |
|
No |
レイヤタイトルの色 |
|
No |
アイテムのフォントファミリー |
|
No |
アイテムラベルを太字でレンダリング |
|
No |
アイテムラベルのフォントサイズ (pt) |
|
No |
アイテムラベルを斜体でレンダリング |
|
No |
アイテムラベルの色 |
BBOX
このパラメータは凡例が作成される地理的な区域を指定するために使用することができます(その形式の説明は ここ にあります)が、 RULE
パラメータと組み合わせることはできません。SRS
/CRS
パラメータは BBOX
パラメータを使用する際に必須となります。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
注釈
BBOX
パラメータが定義されている場合、凡例は 内容型の凡例 として参照されます。
WIDTH
このパラメータはデフォルトでは使用されませんが、 RULE
パラメータが設定された場合には必須となります。この場合、出力画像の幅をピクセル単位で指定することができます。
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=getlegendgraphic
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30
HEIGHT
このパラメータはデフォルトでは使用されませんが、 RULE
パラメータが設定されている場合は必須となります。この場合、出力画像の高さをピクセル単位で指定することができます。
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30
FORMAT
このパラメータを使用して、凡例画像の形式を指定することができます。使用可能な値は以下の通りです:
image/jpeg
image/png
application/json
JSONの場合、シンボルはBase64でエンコードされ、レイアウトやフォントに関するその他のオプションは、凡例がクライアント側で構築される必要があるため、考慮されません。RULE
パラメータはこの形式と組み合わせることができません。
URLの例とそれに対応するJSONの出力:
http://localhost/qgisserver?
SERVICE=WMS&
REQUEST=GetLegendGraphic&
LAYERS=airports&
FORMAT=application/json
そして、それに対応するJSONの出力:
{
"nodes":[
{
"icon":"<base64 icon>",
"title":"airports",
"type":"layer"
}
],
"title":""
}
SRCWIDTH
このパラメータは RULE
パラメータが設定されているときに定義することができます。この場合、SRCWIDTH
の値は WIDTH
パラメータとして基となる GetMap
リクエストに転送され、WIDTH
パラメータは GetLegendGraphics
の画像凡例の大きさに使われます。
SRCHEIGHT
このパラメータは RULE
パラメータが設定されているときに定義することができます。この場合、SRCHEIGHT
の値は HEIGHT
パラメータとして基となる GetMap
リクエストに転送され、HEIGHT
パラメータは GetLegendGraphics
の画像凡例の大きさに使われます。
SHOWFEATURECOUNT
このパラメータは、凡例で地物カウントを有効にするために使用することができます。使用可能な値は以下の通りです(大文字と小文字は区別されません):
TRUE
FALSE
例:
RULE
このパラメータは Rule-based レンダリングを持つレイヤで使用でき、指定したルールシンボルだけで凡例を作成することができるようになります。このパラメータは BBOX
パラメータや JSON形式と組み合わせることはできません。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=mylayer,
&RULE=myrulename
RULELABEL
このパラメータは、アイテムラベルの描画を制御することができます。使用可能な値は次の通りです(大文字と小文字は区別されません):
TRUE
: アイテムラベルを表示しますFALSE
: アイテムラベルを隠しますAUTO
: 単一のシンボル レンダリングのレイヤのアイテムラベルを隠します
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&RULELABEL=AUTO
BOXSPACE
このパラメータでは、凡例フレームと内容の間隔をミリメートル単位で指定することができます。デフォルトの間隔は 2
mm です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&BOXSPACE=0
LAYERSPACE
このパラメータでは、レイヤ間の垂直間隔をミリメートル単位で指定することができます。デフォルトの間隔値は、3
mmです。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERSPACE=0
LAYERTITLESPACE
このパラメータでは、レイヤのタイトルとそれに続くアイテムの間の垂直間隔をミリメートル単位で指定することができます。デフォルトの間隔は 3
mm です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERTITLESPACE=0
SYMBOLSPACE
このパラメータでは、シンボルとそれに続くアイテムの間の垂直間隔をミリメートル単位で指定します。デフォルトの間隔は 2
mm です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLSPACE=0
ICONLABELSPACE
このパラメータでは、シンボルとラベルテキストの間の水平間隔をミリメートル単位で指定することができます。デフォルトの間隔は 2
mm です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=getlegendgraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ICONLABELSPACE=0
SYMBOLWIDTH
このパラメータでは、シンボルプレビューの幅をミリメートル単位で指定することができます。デフォルトの幅は 7
mm です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLWIDTH=2
SYMBOLHEIGHT
このパラメータでは、シンボルプレビューの高さをミリメートル単位で指定することができます。デフォルトでは、高さは 4
mm です。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLHEIGHT=2
LAYERTITLE
このパラメータは、レイヤのタイトルを描画するかどうかを指定します。
利用可能な値は次の通りです(大文字と小文字は区別されません):
TRUE
(デフォルト値)FALSE
LAYERFONTFAMILY
このパラメータは、レイヤタイトルの描画に使用するフォントファミリーを指定します。
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&LAYERFONTFAMILY=monospace
LAYERFONTBOLD
このパラメータは、レイヤのタイトルを太字で描画するかどうかを指定します。使用可能な値は以下の通りです(大文字と小文字は区別されません):
TRUE
FALSE
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTBOLD=TRUE
LAYERFONTSIZE
このパラメータは、レイヤのタイトルを描画する際のフォントサイズをポイント単位で指定します。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTSIZE=20
LAYERFONTITALIC
このパラメータは、レイヤーのタイトルを斜体で描画するかどうかを指定します。使用可能な値は以下の通りです(大文字と小文字は区別されません):
TRUE
FALSE
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTITALIC=TRUE
LAYERFONTCOLOR
このパラメータはレイヤタイトルの色を指定します。色はリテラル(red
, green
, ...)または16進数表記(0xFF0000
, 0x00FF00
, ...)で指定できます。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTCOLOR=0x5f9930
ITEMFONTFAMILY
このパラメータは、アイテムラベルを描画するのに使うフォントファミリーを指定します。
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&ITEMFONTFAMILY=monospace
ITEMFONTBOLD
このパラメータは、アイテムラベルを太字で描画するかどうかを指定します。使用可能な値は次の通りです(大文字と小文字は区別されません):
TRUE
FALSE
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTBOLD=TRUE
ITEMFONTSIZE
このパラメータは、レイヤのタイトルを描画する際のフォントサイズをポイント単位で指定します。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTSIZE=20
ITEMFONTITALIC
このパラメータは、アイテムラベルを斜体で描画するかどうかを指定します。利用可能な値は次の通りです(大文字と小文字は区別されません):
TRUE
FALSE
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTITALIC=TRUE
ITEMFONTCOLOR
このパラメータは、アイテムラベルの色を指定します。色はリテラル(red
, green
, ...)または16進数表記(0xFF0000
, 0x00FF00
, ...)で指定することができます。
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTCOLOR=0x5f9930
3.2.5. GetStyle(s)
OGC WMS 1.1.1 仕様に準拠した GetStyle (または GetStyles) リクエストの標準パラメータ:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称(GetStyle 又は GetStyles) |
|
Yes |
クエリするレイヤ |
GetStyle リクエストは、以下のベンダーパラメータもサポートしています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetStyles
&LAYERS=mylayer1,mylayer2
3.2.6. DescribeLayer
OGC WMS 1.1.1 及び 1.3.0 仕様に従った DescribeLayer リクエストの標準パラメータ:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (DescribeLayer) |
|
Yes |
説明するレイヤ |
|
Yes |
SLDのバージョン |
DescribeLayer リクエストは次のベンダーパラメータもサポートしています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=DescribeLayer
&SLD_VERSION=1.1.0
&LAYERS=mylayer1
XML文書は次のようになります:
<DescribeLayerResponse xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://www.opengis.net/se" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/DescribeLayer.xsd">
<Version>1.1.0</Version>
<LayerDescription>
<owsType>wfs</owsType>
<se:OnlineResource xlink:href="http://localhost/qgisserver" xlink:type="simple"/>
<TypeName>
<se:FeatureTypeName>my_vector_layer</se:FeatureTypeName>
</TypeName>
</LayerDescription>
<LayerDescription>
<owsType>wcs</owsType>
<se:OnlineResource xlink:href="http://localhost/qgisserver" xlink:type="simple"/>
<TypeName>
<se:FeatureTypeName>my_raster_layer</se:FeatureTypeName>
</TypeName>
</LayerDescription>
</DescribeLayerResponse>
SLD_VERSION
このパラメータでは、SLDのバージョンを指定することができます。値 `11.0` のみが利用できます。
3.2.7. GetPrint
QGISサーバには、PDFまたはピクセル形式のプリントレイアウト出力を作成する機能があります。公表されたプロジェクトでのプリントレイアウトがテンプレートとして使用されます。GETPRINT要求では、クライアントは含まれているレイアウト地図とラベルのパラメータを指定する可能性があります。
GetPrint リクエストは、 redlining、 external WMS layers のほか、次のパラメータをサポートします:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetPrint) |
|
No |
サービスのバージョン |
|
No |
表示するレイヤ |
|
Yes |
使用するレイアウトのテンプレート |
|
Yes |
座標参照系 |
|
No |
出力形式 |
|
No |
地図帳機能 |
|
No |
レイヤのスタイル |
|
No |
透明な背景 |
|
No |
レイヤまたはグループの不透明度 |
|
No |
地物を強調します |
|
No |
map X の範囲 |
|
No |
map X のレイヤ |
|
No |
map X のレイヤのスタイル |
|
No |
map X のレイヤの縮尺 |
|
No |
map X の角度 |
|
No |
map X のx軸のグリッド間隔 |
|
No |
map X のy軸のグリッド間隔 |
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=png
&TEMPLATE=Layout%201
&map0:EXTENT=-180,-90,180,90
&map0:LAYERS=mylayer1,mylayer2,mylayer3
&map0:OPACITIES=125,200,125
&map0:ROTATION=45
レイアウトテンプレートには複数のマップが含まれている可能性があることに注意してください。このとき、特定のマップを設定したい場合は、 mapX:
パラメータを使う必要があります。ここで、 X
は GetProjectSettings リクエストのおかげで取得できる正の数です。
例:
<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>
TEMPLATE
このパラメータを使って、印刷に使うレイアウトテンプレートの名前を指定することができます。
FORMAT
このパラメータは、マップ画像の形式を指定します。使用可能な値は以下の通りです:
png
(デフォルト値)image/png
jpg
jpeg
image/jpeg
svg
image/svg
image/svg+xml
pdf
application/pdf
もし FORMAT
パラメータがこれらの値のいずれとも異なる場合は、例外が返されます。
ATLAS_PK
このパラメータは、印刷したい地物を指定することで、地図帳レンダリングを有効化することができます。すべての地物を含む地図帳を取得するには、*
シンボルを使用することができます(プロジェクト設定で許されている地物の最大数に従います)。
FORMAT
が pdf
の場合、地物ページを組み合わせた1つのPDFドキュメントが返されます。それ以外の形式の場合は、1つのページが返されます。
mapX:EXTENT
このパラメータは、レイアウトマップアイテムの範囲をxmin,ymin,xmax,ymaxで指定します。
mapX:ROTATION
このパラメータは、マップの角度を度で指定します。
mapX:GRID_INTERVAL_X
このパラメータは、X 方向のグリッド線密度を指定します。
mapX:GRID_INTERVAL_Y
このパラメータは、Y 方向のグリッド線密度を指定します。
mapX:SCALE
このパラメータは、レイアウト地図アイテムの地図縮尺を指定します。これは、クライアントとサーバーで縮尺分母を計算するアルゴリズムが異なる場合でもレイヤとラベルの縮尺に基づく可視性を確保するのに役立ちます。
mapX:LAYERS
このパラメータは、レイアウトマップアイテムのレイヤを指定します。このパラメータの詳細については GetMap Layers を参照してください。
mapX:STYLES
このパラメータは、特定のレイアウトマップアイテムに定義されているレイヤのスタイルを指定します。このパラメータの詳細については GetMap Styles を参照してください。
3.2.8. GetProjectSettings
このリクエストタイプは GetCapabilities と同様に動作しますが、よりQGIS Serverに特化しており、 GetCapabilities の出力では得られない追加情報をクライアントが読み取ることができるようになっています:
レイヤーの初期可視性
ベクターの属性とその編集タイプに関する情報
レイヤーの順序と描画順序に関する情報
WFSに掲載されたレイヤのリスト
レイヤツリー内のグループが mutually exclusive であるかどうかを表示します
GetProjectSettings リクエストは次のパラメータをサポートしています:
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetProjectSettings) |
3.2.9. GetSchemaExtension
GetSchemaExtension リクエストは、QGIS Serverが実装するようなWMSサービスのオプションの拡張機能および操作を取得することができます。
パラメータ |
必須 |
説明 |
---|---|---|
Yes |
QGISプロジェクトファイル |
|
Yes |
サービスの名称 (WMS) |
|
Yes |
リクエストの名称 (GetSchemaExtension) |
URLの例:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetSchemaExtension
XML文書は次のようになります:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wms="http://www.opengis.net/wms" xmlns:qgs="http://www.qgis.org/wms" targetNamespace="http://www.qgis.org/wms" elementFormDefault="qualified" version="1.0.0">
<import namespace="http://www.opengis.net/wms" schemaLocation="http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd"/>
<element name="GetPrint" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
<element name="GetStyles" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
</schema>
3.2.10. 外部WMSレイヤ
QGIS Serverでは、WMS GetMap およびWMS GetPrint リクエストに外部のWMSサーバーからのレイヤを含めることができます。これは、ウェブクライアントがウェブマップで外部の背景レイヤを使用する場合に特に便利です。パフォーマンス上の理由から、このようなレイヤはWebクライアントから直接リクエストされるべきです(QGISサーバーを経由してカスケードせずに)。しかし、印刷では、これらのレイヤは、印刷されたマップに表示されるように、QGISサーバー経由でカスケードされるべきです。
外部レイヤは、LAYERSパラメータにEXTERNAL_WMS: <layername>として追加することができます。外部WMSレイヤのパラメータ(url, format, dpiMode, crs, layers, stylesなど)は,後でサービスパラメータ <layername>: <parameter>として与えることができます。GetMap リクエストでは、次のようになります:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&OPACITIES=100,200,255
&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
同様に、外部レイヤーは GetPrint リクエストで使用することができます:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetPrint
&TEMPLATE=A4
&map0:layers=EXTERNAL_WMS:basemap,layer1,layer2
&map0:EXTENT=<minx,miny,maxx,maxy>
&OPACITIES=100,200,255
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default
3.2.11. 赤線引き
この機能は GetMap と GetPrint のリクエストで使用することができます。
赤線引き機能は、サーバーが返す標準的な画像(マップ)の上に重ねるジオメトリとラベルをリクエストに渡すために使用されます。ユーザーはこれにより、標準的なマップにはない領域や場所などを強調したり、コメント(ラベル)を追加したりすることができます。
GetMap リクエストは、以下の形式です:
http://localhost/qgisserver?
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
GetPrint <wms_getprint>`と同等の形式です(どのマップに赤線が引かれているかを知るために ``mapX:` パラメータが追加されていることに注意してください):
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&map0:HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&map0: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>
&map0:HIGHLIGHT_LABELSTRING=Write label here
&map0:HIGHLIGHT_LABELSIZE=16
&map0:HIGHLIGHT_LABELCOLOR=%23000000
&map0:HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&map0:HIGHLIGHT_LABELBUFFERSIZE=1.5
上記のリクエストによって出力された画像は次のとおりです、ポリゴンとラベルが通常のマップの上に描かれています:
このリクエストには、赤線引き機能を制御するためのいくつかのパラメータがあることがわかります。その全リストは以下の通りです:
highlight_geom: POINT、MULTILINESTRING、POLYGONなどを追加することができます。マルチパートジオメトリをサポートしています。以下はその例です:
HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1))
. 座標はGetMap/GetPrintリクエストのCRSにあるはずです。HIGHLIGHT_LABELBUFFERCOLOR: このパラメーターは、ラベルバッファの色を制御します。
HIGHLIGHT_LABELBUFFERSIZE: このパラメーターは、ラベルバッファのサイズを制御します。
HIGHLIGHT_LABELCOLOR: このパラメーターは、ラベルの色を制御します。
HIGHLIGHT_LABEL_DISTANCE: 地物(例 point又はライン)とラベルの間の距離をmmで制御します
highlight_labelfont: このパラメータは、ラベルのフォントを制御します(例:Arial)。
HIGHLIGHT_LABEL_HORIZONTAL_ALIGNMENT: ラベルを水平方向に指定された整列(例:'left', 'center', 'right' )で配置します。
HIGHLIGHT_LABEL_ROTATION: ラベルの角度を度で制御します
HIGHLIGHT_LABELSIZE: このパラメーターは、ラベルのサイズを制御します。
HIGHLIGHT_LABELSTRING :ラベルのテキストをこのパラメーターに渡すことができます。
HIGHLIGHT_LABEL_VERTICAL_ALIGNMENT: 指定された整列(例:'top', 'half', 'bottom')でラベルをポイント上に垂直に配置します。
HIGHLIGHT_SYMBOL :ジオメトリの輪郭をどのように表示するかを制御し、ストロークの幅、色、不透明度を変更できます。