フィーチャ入力またはテーブル入力を持つジオプロセシング タスクを定義する際、[サービス エディター] で選択できる [入力モード] の 1 つとして [ユーザー定義値] があります。この入力モードを選択すると、次の図に示すように、[スキーマ] セクションにフィールド、そのエイリアスおよびタイプのリストが表示されます。このフィールドのリストは、結果を作成したツールへの入力として使用されるレイヤーまたはテーブルと同じです。
また、タスクの出力がフィーチャクラス、フィーチャ レイヤー、またはテーブルである場合、[サービス エディター] に出力データのスキーマが表示されます。入力フィーチャおよびテーブルと同様、出力用のスキーマは、ツールで作成された出力から派生します。
クライアントは、タスクに送信するフィーチャまたは行を作成する際に、公開済みスキーマを使用します。タスクにどのようなフィールドやフィールドの値が必要かをクライアントが理解できるように、余分なフィールドを削除してからドキュメントを用意する必要があります。
スキーマについて説明するにあたって、フィーチャ入力の [ジオメトリ タイプ] 部分を検討します。その理由は Shape フィールドが常にフィーチャ入力と共に含められ、その [フィールド タイプ] が常に [ジオメトリ タイプ] と照合されるためです。
入力スキーマからフィールドを削除する
スキーマは [サービス エディター] では変更できません。公開しようとしている結果の作成に使用する入力レイヤーまたはデータセットのスキーマを変更するか、あるいは別のレイヤーまたはデータセットを使用して新規に結果を作成する必要があります。
ArcMap [コンテンツ] ウィンドウからのフィーチャ レイヤーまたはテーブル ビューをパラメーター入力として使用した場合は、次の手順に従えばフィールドを簡単に削除することができます。
- [サービス エディター] でタスクを削除します。タスクを右クリックし、[削除] をクリックします。
- ArcMap [コンテンツ] ウィンドウで、レイヤーまたはテーブルを右クリックし、[プロパティ] を選択します。
- [フィールド] タブをクリックします。
- [表示フィールドの選択] リストで、スキーマを削除する対象のフィールドをオフにします。
- [OK] をクリックします。
- [サービス エディター] で、[結果の追加] をクリックして、手順 1 で削除した結果を追加します。[サービス エディター] で結果が追加されると、先ほど変更したレイヤーからスキーマが読み取られます。
ツール パラメーター入力として ([コンテンツ] ウィンドウ内のレイヤーまたはテーブル ビューの名前を使用する代わりに) ディスク上のフィーチャクラスまたはテーブルへのパスを使用すれば、フィーチャクラスまたはテーブル上の不必要なフィールドを (たとえば、[フィールドの削除 (Delete Field)] ツールを使用して) 削除してから、再び結果の共有を続行することができます。データセットのフィールドを削除する際は、事前にそのデータセットのコピーを作成することを推奨します。さらに良い方法は、フィーチャクラスのフィーチャ レイヤーまたはテーブルのテーブル ビューを作成することです。フィーチャ レイヤーまたはテーブル ビューを ArcMap に追加し、スキーマを変更して (前述の説明を参照)、その後で対象のレイヤーまたはテーブル ビューを入力として使用してツールを再実行し、新しい結果を共有します。
フィールドの追加
フィールドをスキーマに追加する必要がある場合は、[サービス エディター] を終了し、(たとえば、[フィールドの追加 (Add Field)] ツールを使用して) 新しいフィールドをデータセットに追加して、共有する新しい結果を作成する必要があります。
フィールド エイリアス
フィールド エイリアスはフィールドの代替名であり、実際の名前より説明的でユーザーにわかりやすい名前にすることができます。クライアントは表示/編集目的にエイリアスを使用します。エイリアスは [サービス エディター] では変更できません。公開しようとしている結果の作成に使用するデータセットのエイリアスを変更する必要があります。
- [サービス エディター] を終了します。
- カタログ ウィンドウで、データセットに移動します。
- データセットを右クリックして、[プロパティ] を選択します。
- [フィールド] タブをクリックします。
- エイリアスを指定する対象のフィールドを選択します。
- [フィールド プロパティ] セクションで、フィールド用のエイリアスを入力します。
- 引き続き他のフィールドに対してもエイリアスの指定を繰り返します。
- [OK] をクリックします。
- [結果] ウィンドウで、結果を右クリックし、[共有] > [ジオプロセシング サービス] の順に選択します。ツールを再実行する必要はありません。
クライアントによる入力スキーマの使用
スキーマには、クライアント アプリケーションが使用するデフォルトのジオメトリ タイプ、空間参照、および属性を指定します。ArcGIS for Desktop でタスクを使用する際には、ジオメトリ タイプが強制的に適用されるので、別のジオメトリ タイプのフィーチャを指定することはできません。ただし、属性はさまざまなタイプのものを使用できます。
JavaScript、SilverLight、および Flex API で構築された Web クライアントは、部分的に定義されたフィーチャ セットをタスクに提供できます。指定したフィーチャ セットにジオメトリ タイプ、空間参照、またはフィールドがない場合、それらは公開済みスキーマで定義された値を使用して、欠落データが入力されます。クライアントによって指定されたフィーチャ セットが完全に定義されていた場合、そのフィーチャ セットが現状のまま使用されます。
タスク要件のドキュメント化
タスクがスキーマを順守している必要のある場合は、クライアントの要件をドキュメント化する必要があります。たとえば、タスクがポイント フィーチャとしか連携動作しない場合、特定のフィールドが必要な場合、または特定のフィールド値が予期される場合は、それらの要件をドキュメント化してください。
出力スキーマ
タスクの出力がフィーチャクラス、フィーチャ レイヤー、テーブル、またはテーブル ビューである場合、[サービス エディター] に出力用のスキーマが表示されます。
このスキーマは通常、指定された入力内容に応じて変わります。つまり、動的 (変更可能) になることもあれば静的 (変更不可) になることもあります。たとえば、[近接情報テーブルの作成 (Generate Near Table)] ツールは必要に応じて [位置] パラメーターおよび [角度] パラメーターの値に基づいて、フィールド NEAR_X、NEAR_Y、および NEAR_ANGLE を出力フィーチャ追加します。公開しようとしているタスクは、クライアントが設定した他のパラメーター値に応じて出力スキーマが異なるという点で [近接情報テーブルの作成 (Generate Near Table)] ツールに似ています。他のツール (およびそのツールから作成されたタスク) は、クライアントが設定した他のパラメーター値に応じて、それぞれ異なるジオメトリ タイプ (ポイント、ラインまたはポリゴン) を出力します。
フィーチャ セットおよびレコード セットに基づく入力スキーマ
作成したカスタム モデル ツールおよびスクリプト ツールで、入力パラメーター用のデータ タイプとして Feature Set または Record Set を使用することができます。Feature Set を使用すると、ArcMap のフィーチャを対話形式でデジタイズできます。Record Set を使用すると、行を対話形式でテーブルに追加できます。Feature Set および Record Set データ タイプにはそれぞれ、タスク パラメーターのスキーマの定義に使用される独自のスキーマがあります。タスク パラメーターのスキーマを変更するには、カスタム ツールで使用されるフィーチャ セット スキーマまたはレコード セット スキーマを変更する必要があります。フィーチャ セットとレコード セットの詳細については、下のリンクをご参照ください。
ArcGIS for Desktop クライアント
スキーマには、JavaScript、SilverLight、または Flex API で構築された Web クライアントには利用できず、ArcGIS for Desktop クライアントにのみ利用できるという特徴があります。
コード値ドメイン
属性ドメインは、属性フィールドで有効な値または使用できる値を制限するルールです。スキーマのソース データセットの属性フィールドにコード値属性ドメインが含まれている場合は、これらのコード値がその属性のフィールド値として、フィーチャ セットまたはレコード セット コントロールのドロップダウン リストに表示されます。
シンボル
フィーチャ スキーマにはシンボル情報が保存されます。このシンボル情報は、ArcMap からアクセス可能であり、フィーチャセット制御を介してフィーチャをデジタイズする際に使用されます。
デフォルト値
データセット上のフィールドには、新規にフィーチャまたは行を作成するときに使用されるデフォルト値があります。フィールド用のデフォルト値を設定するには:
- カタログ ウィンドウで、データセットに移動します。
- データセットを右クリックして、[プロパティ] を選択します。
- [フィールド] タブをクリックします。
- デフォルト値を指定する対象のフィールドを選択します。
- [フィールド プロパティ] セクションで、フィールド用のデフォルト値を入力します。
- [OK] をクリックします。