ago)Author:hayashiComment:--Legend:UnmodifiedAddedRemovedModifiedZooWorkshop/FOSS4GJapan/ja/CreatingOGRBasedWebServicesv10v111717既に述べたように、このワークショップではサービスを記述する言語はCもしくはPython(もしくは両方!)を選ぶことができます。解説はC言語に沿って行いますが、この解説はPythonを利用する方にも非常に役立つ内容になっています。どちらの言語を使用するか決めたらインストラクターに報告してください。どちらの言語を選択されても、ワークショップの結果は同じです。==2021ZOOメタデータの用意2223ZOOのサービスは、ZOOメタデータファイル(.zcfg)とZOOサービスプロバイダーと呼ばれる機能の応じたランタイム実装モジュールとの組み合わせによって成り立ちます。24まずはじめに順を追って.zcfgファイルを用意しましょう。26最初に、ファイル先頭にある括弧中に以下のようにサービス名を定義します。2728{{{29#!sh30[Boundary]31}}}3233この名前は非常に重要です。この名前はサービス名になりサービスプロバイダーの機能を表します。タイトル(Title)とこのサービスが何を行うのかについての短い要約(Abstract)は、利用者のために書いておくべきです。リクエストによって返されます。ような特定情報を追加することができます。{{{false}}}にすることで指定できます。true51}}}5253ZOOサービス・メタデータファイルのメインのセクションでは、二つの重要事項を指定します。あなたが使用する言語とあわせてください。共用ライブラリを使うことになります。ライブラリファイルはZOOカーネルと同じディレクトリに置いてください。ファイルを使うことになります。767778メインセクションでは、下記の例のように他の任意の情報を追加することもできます。Demo84</MetaData>85}}}868788これで主要なメタデータ情報が定義できました。89次はZOOサービスで使われるデータの入力方法を定義します。サービスに必要な任意の入力を定義できます。90ZOOのカーネルは.zcfgファイルに定義したデータよりも多くのデータを処理するリクエストを受け付けることに注意してください。これらのデータはフィルタリングされることなくサービスへと渡されます。91この例のBoundaryサービスでは、一つのポリゴンが入力として使用され、それに対してBoundary関数が実行されます。ブロックで行われます。94書式はサービスを定義するときと同じで、名前は括弧でくくられています。セクションに追加することができます。パラメータは必ず設定してください。これらは、どのパラメータがサービス関数で実行するのに必要なのかをZOOカーネルに通知するのに使われます。test107</MetaData>108}}}109110メタデータは、どのようなタイプのデータがサービスでサポートされるのかを定義します。このBoundary関数の例では、入力するポリゴンはGMLファイル形式またはJSON文字列形式で提供することができます。111次のステップではデフォルトのデータ形式とサポートする入力フォーマットを定義しましょう。ブロックで定義する必要があります。ブロックのみを使います。UTF-8123</Supported>124</ComplexData>125}}}126127次に、同様のメタデータ情報をサービスの出力についても定義します。ブロック内に次のように定義します。{{{/usr/lib/cgi-bin}}})へコピーしてください。.zfgファイルさえあれば完了します。