重要
翻訳は あなたが参加できる コミュニティの取り組みです。このページは現在 87.50% 翻訳されています。
10.2. レッスン: Web Feature Service
Web Feature Service (WFS)はQGISで直接読み込める形式のGISデータをユーザーに提供します。編集できない地図のみを提供するWMSとは異なり、WFSでは地物それ自体へアクセスできます。
このレッスンの目標: WFSを使用してWMSとの違いを理解します。
10.2.1. ★☆☆ (初級レベル) 理解しよう: WFSレイヤを読み込む
新しい地図を開始します。これはデモを目的としており保存されません。
新規 ボタンをクリックします。
表示されたダイアログで、 名前 に
nsidc.orgを、 URL にhttps://nsidc.org/cgi-bin/atlas_south?version=1.1.0を入力します。
OK をクリックすると新しい接続が サーバーコネクション に表示されます。
接続 をクリックします。利用可能なレイヤのリストが表示されます:
レイヤリストの下にある ビュー領域に重なる地物のみをリクエストする オプションのチェックを外します。現在のマップキャンバスが、私たちの関心領域: 南極大陸をカバーしていない可能性があるからです。
Find the layer
antarctica_country_border. You can use the Filter box at the top.レイヤをクリックして選択します:
Find and select also the layer
south_poles_wfs. You might need to hold Ctrl.
追加 をクリックします。
レイヤを読み込むのにしばらく時間がかかるかもしれません。読み込みが完了すると、地図上に南極大陸の輪郭とその上にいくつかの地点が表示されます。
WMSのレイヤーとどう違うのでしょうか?
いずれかのレイヤを選択すると、地物選択ツールと属性テーブルツールが有効になることが確認できます。これらはベクタレイヤです。
Select the
south_poles_wfslayer and open its attribute table. You should see this:
ポイントは属性を持つのでシンボル体系を変更し、ラベルを付けることができます。例を示します:
WMSレイヤとの違い
Web Feature Serviceはレンダリングされた地図ではなくレイヤ自体を返します。データへの直接アクセスができるので、シンボロジの変更やデータを分析することができます。しかし、その代償として、送信されるデータ量は格段に多くなります。レイヤが複雑な形を持つ場合や沢山の属性、多くの地物を持つ場合に特に顕著になります。多くのレイヤをロードしている場合でも同様です。このため、WFSレイヤは一般的には読み込みに非常に長い時間がかかります。
10.2.2. ★★☆ (中級レベル) 理解しよう: WFSレイヤをクエリする
WFSレイヤをロードした後にクエリすることは可能ですが、ロードする前にクエリする方が多くの場合に効率的です。そのようにして必要な地物だけを要求すればはるかに少ない帯域幅の使用で済むことになります。
For example, on the WFS server we're currently using, there is a layer called
countries (excluding Antarctica). Let's say that we want to know
where South Africa is relative to the south_poles_wfs layer (and
perhaps also the antarctica_country_border layer) that's already
been loaded.
There are two ways to do this. You can load the whole countries ...
layer, and then build a query as usual once it's loaded. However, transmitting
the data for all the countries in the world and then only using the data for
South Africa seems a bit wasteful of bandwidth. Depending on your connection,
this dataset can take several minutes to load.
別の方法は、サーバーからレイヤを読み込む前にフィルタとしてクエリを作成することです。
データソースマネージャ ダイアログで WFS / OGC API - 地物 タブを有効にします
先ほど使用したサーバーに接続すると、利用可能なレイヤのリストが表示されるはずです。
Find and double-click the
countries (excluding Antarctica)layer. The layer name iscountry_borders_excluding_antarctica. You can also select the layer and press Build query button at the bottom of the dialog:
表示されたダイアログで、次のクエリ
SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa'を SQL文 ボックスに入力します。
OK を押します。
使用された式はターゲットレイヤの SQL の値として表示されます:
上記のようにレイヤを選択した状態で、 追加 をクリックします。そのレイヤから、
Countryengの値がSouth Africaである国だけが読み込まれます:
country_borders_excluding_antarcticaレイヤの横にある
アイコンに気づきましたか?これは、読み込まれたレイヤはフィルタされており、プロジェクトにすべての地物が表示されていないことを示しています。実際にやる必要はありませんが、もし両方の方法を試してみたらフィルタする前にすべての国をロードする方法に比べてはるかに早いことがわかります!
WFSの有用性に関するノート
ニーズが非常に具体的である場合、必要とする地物を持っているWFSサーバーが見つかることは稀です。Web Feature Servicesが比較的まれである理由は、地物全体を表現するには大量のデータを送信する必要があるからです。それゆえに画像だけを送信するWMSではなくWFSをホストすることは費用対効果があまりよくありません。
したがって、あなたが出合うであろうWFSの最も一般的なタイプはおそらくインターネット上ではなく、ローカルネットワーク上か自分のコンピュータ上にあるでしょう。
10.2.3. 結論
レイヤの属性とジオメトリに直接アクセスする必要がある場合にはWFSレイヤはWMSレイヤより好ましいですが、ダウンロードされるデータの量(速度の問題そして容易に利用可能な公開WFSサーバーの不足へとつながります)を考慮すると、必ずしもWMSの代わりにWFSが使用できるとは限りません。
10.2.4. 次は?
次は、QGISサーバーを使用してOGCサービスを提供する方法を説明します。
