10.2. Lesson: Web Feature Services
Web Feature Service (WFS)はQGISで直接読み込める形式のGISデータをユーザーに提供します。編集できない地図のみを提供するWMSとは異なり、WFSでは地物それ自体へアクセスできます。
このレッスンの目標: WFSを使用してWMSとの違いを理解します。
10.2.1. Follow Along: WFSレイヤーを読み込む
新しい地図を開始します。これはデモを目的としており保存されません。
新規 ボタンをクリックします。
表示されたダイアログで、 名前 に
nsidc.org
を、 URL にhttps://nsidc.org/cgi-bin/atlas_south?version=1.1.0
を入力します。OK をクリックすると新しい接続が サーバーコネクション に表示されます。
接続 をクリックします。利用可能なレイヤのリストが表示されます:
レイヤリストの下にある ビュー領域に重なる地物のみをリクエストする オプションのチェックを外します。現在のマップキャンバスが、私たちの関心領域: 南極大陸をカバーしていない可能性があるからです。
レイヤ antarctica_country_border を探します。上部にある Filter ボックスを使用できます。
レイヤをクリックして選択します:
レイヤ south_poles_wfs も検索して選択します。このとき Ctrl を押したままにする必要があるかもしれません。
追加 をクリックします。
レイヤを読み込むのにしばらく時間がかかるかもしれません。読み込みが完了すると、地図上に南極大陸の輪郭とその上にいくつかの地点が表示されます。
WMSのレイヤーとどう違うのでしょうか?
いずれかのレイヤを選択すると、地物選択ツールと属性テーブルツールが有効になることが確認できます。これらはベクタレイヤです。
south_poles_wfs レイヤを選択し、その属性テーブルを開いてください。このように表示されるはずです:
ポイントは属性を持つのでシンボル体系を変更し、ラベルを付けることができます。例を示します:
WMSレイヤとの違い
Web Feature Serviceはレンダリングされた地図ではなくレイヤ自体を返します。データへの直接アクセスができるので、シンボル体系を変更しデータを分析することができます。しかし、非常に多くのデータの送信にはコストがかかります。レイヤが複雑な形を持つ場合や沢山の属性、多くの地物を持つ場合に特に顕著になります。多くのレイヤをロードしている場合でも同様です。このため、WFSレイヤは一般的には読み込みに非常に長い時間がかかります。
10.2.2. Follow Along: WFSレイヤをクエリする
WFSレイヤをロードした後にクエリすることは可能ですが、ロードする前にクエリする方が多くの場合に効率的です。そのようにして必要な地物だけを要求すればはるかに少ない帯域幅の使用で済むことになります。
たとえば、現在使用しているWFSサーバーに countries (excluding Antarctica) というレイヤがあります。既に読み込まれている south_poles_wfs レイヤに対する南アフリカ共和国の位置を知りたいとしましょう(そしておそらく antarctica_country_border レイヤに対する位置も)。
これを行うには2つの方法があります。 countries ... レイヤの全体をロードしてから、いつものようにクエリを作成することができますが、世界中の国のデータを送信してから南アフリカのデータだけを使用するのは少し帯域幅の無駄と思われます。あなたの接続によっては、このデータセットの読み込みに数分かかることがあります。
別の方法は、サーバーからレイヤを読み込む前にフィルタとしてクエリを作成することです。
Data Source Manager`ダイアログで :guilabel:`WFS / OGC API - 地物 タブを有効にします
先ほど使用したサーバーに接続すると、利用可能なレイヤのリストが表示されるはずです。
countries (excluding Antarctica) レイヤを探してダブルクリックします。レイヤ名は
country_borders_excluding_antarctica
です。レイヤを選択して、ダイアログの一番下にある クエリ作成 ボタンを押すこともできます。表示されたダイアログで、次のクエリ
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. In Conclusion
レイヤの属性とジオメトリに直接アクセスする必要がある場合にはWFSレイヤはWMSレイヤより好ましいですが、ダウンロードされるデータの量(速度の問題そして容易に利用可能な公開WFSサーバーの不足へとつながります)を考慮すると、必ずしもWMSの代わりにWFSが使用できるとは限りません。
10.2.4. What's Next?
次は、QGISサーバーを使用してOGCサービスを提供する方法を説明します。