マップを作成してフィーチャ サービスとして公開する際は、フィーチャ サービスの目的およびフィーチャ サービス データの格納場所を考慮する必要があります。これらは、フィーチャ サービスの作成、管理、および使用方法に影響します。
このトピックでは、スタンドアロンまたはフェデレーション ArcGIS GIS Server サイトに公開されるフィーチャ サービスの作成について説明します。フィーチャ サービスは、GIS Server サイトに登録したジオデータベースまたはデータベース内のデータを参照します。
マップを作成する前に、フィーチャ サービスの要件を満たすデータを準備し、GIS Server サイトにデータ ストアを登録してください。データの準備ができたら、公開するデータを含むマップを作成および構成し、マップ内のシンボルやその他のデータ プロパティを定義し、編集環境用のフィーチャ テンプレートを定義 (フィーチャ サービスを編集可能にする場合) します。
マップの構成
データの準備と登録が済んだら、ArcMap ドキュメントにそのデータを追加し、レイヤーとテーブルに関するプロパティを設定します。 これらのプロパティは、データがどのように表示されるか、およびクライアントがデータを使用して何を実行できるかを定義します。
ArcMap でのマップ ドキュメントの構成
データを定義した場合、そのデータを、公開する ArcMap マップに追加して、レイヤーとテーブルのプロパティを設定します。これらのプロパティは、データがどのように表示されるか、およびクライアントがデータを使用して何を実行できるかを定義します。
マップ ドキュメントの構成は、データベースおよびジオデータベース データのいずれの場合でも同様です。ただし、マップ ドキュメントにジオデータベース データが含まれている場合、ジオデータベースでのみ利用可能な機能を活用できるようにマップを構成してから公開できます。
レイヤー名の設定
フィーチャクラスまたはテーブルをマップに追加する場合、デフォルト名はデータベース内のテーブルの完全修飾名になります。少なくともレイヤー名を変更し、データベース名とユーザー名を含まないようにする必要があります。[コンテンツ] ウィンドウで各レイヤーを右クリックし、[プロパティ] をクリックします。[一般] タブで、レイヤーのコンテンツを表す実用的な名前を入力し、データベース名とユーザー名を含めないようにします。
たとえば、エンタープライズ ジオデータベース mygdb からマップにフィーチャクラス rivers を追加し、フィーチャクラスがユーザー gdbdata によって所有されている場合、マップのデフォルトのレイヤー名は mygdb.gdbdata.rivers になります。レイヤー名を rivers に変更します。
マップに表示されるフィーチャを変更するフィルター設定をレイヤーに設定した場合、レイヤー名をさらに変更するとよいでしょう。たとえば、鉱山の 5 マイル以内の河川だけが表示されるようにフィルター設定を行った場合、レイヤー名を変更してその内容を反映すると便利です。たとえば、レイヤー名を rivers near mines に設定します。フィーチャクラスがリレーションシップ クラスに属しており、関連データが公開するサービスに含まれている場合は、レイヤー名を変更してその内容を反映させることができます。たとえば、rivers フィーチャクラスが集水域情報を含むテーブルに結合するリレーションシップ クラスに属している場合、レイヤー名を rivers and watersheds に変更するとよいでしょう。
シンボルの定義
フィーチャ サービスでは、フィーチャを検索する他に、フィーチャのシンボルを取得することもできます。クライアントはこの情報を使用して、サービスに定義されているのと同じシンボルを使ってフィーチャを描画することができます。
サービスによって返されるシンボルは、ArcMap ドキュメントのレイヤーのシンボルに基づいています。レイヤーごとの各シンボルは、タイプと呼ばれます。たとえば、シンプル レンダラー (1 つのシンボル) を使用してシンボル表示されるレイヤーには、1 つのタイプがあります。個別値レンダラーが使用されている場合、レンダラーの個別値ごとに 1 つのタイプが返されます。
フィーチャ サービスは、シンプル レンダラー、個別値レンダラー、クラス閾値レンダラー、およびカートグラフィック リプレゼンテーション レンダラーをサポートします。サポートされていないレンダラーを使用すると、サービスが起動しません。ArcGIS Server ログを使用して、どのレイヤーにサポートされていないレンダラーがあるのかを特定します。
フィーチャ サービスでは多くのシンボル タイプを使用できますが、シンボルがダウングレードされる場合もあります。
ライン レイヤーの場合、シンプル ライン シンボルがサポートされています。他のシンボルが使用されている場合、フィーチャ サービスはそのシンボルを元のシンボルに最も近いシンプルなライン シンボルに変換します。たとえば、マップ ドキュメントにカートグラフィック ライン シンボルを使用した場合、フィーチャ サービス クライアントではシンプル ソリッド ラインとして描画されます。ライン シンボルが複雑な場合や、ライン シンボルに複数のレイヤーが存在している場合、フィーチャ サービスはそのラインを元のライン シンボルに最も近くなるようにダウングレードします。
ポリゴン レイヤーの場合、シンプル塗りつぶしシンボルとピクチャ塗りつぶしシンボルだけがサポートされます。その他のシンボルが使用されている場合、フィーチャ サービスはそれをシンプル塗りつぶしシンボルにダウングレードします。マルチレイヤー塗りつぶしシンボルの場合、フィーチャ サービスは最上位レイヤーだけを考慮します。また、塗りつぶしシンボルのアウトライン シンボルは、上記のライン レイヤーの説明と同じレベルでサポートされます。
ポイント レイヤーの場合、シンプル マーカー シンボルとピクチャ マーカー シンボルがサポートされます。その他のシンボルが使用されている場合、フィーチャ サービスはそれをピクチャ マーカー シンボルにダウングレードします。マルチレイヤー マーカー シンボルの場合も、レイヤーが単一レイヤーにマージされるピクチャ マーカー シンボルにダウングレードされます。ハローをマーカー シンボルに設定できるマスク プロパティはサポートされません。
フィーチャ アクセスのあるマップ サービスを開始すると、シンボルが確認されて、必要に応じてダウングレードされます。ダウングレードが必要な場合、どのシンボルがダウングレードされたかを示す警告がサーバー ログに追加されます。
マップ ドキュメントにカートグラフィック表現レンダラーを使用するレイヤーが含まれている場合に、クライアントが REST を利用してサービスにアクセスすると、レンダラーは個別値レンダラーとして報告されることにも注意が重要です。
フィーチャ テンプレートの定義
フィーチャ サービスを介した新しいフィーチャの挿入には、マップ ドキュメントのフィーチャ テンプレートを使用します。テンプレートを使用すると、新しいフィーチャをデジタイズして、属性のデフォルト値を設定することができます。フィーチャ サービスでは、各フィーチャ タイプにテンプレートが存在する必要があります。編集セッションを開始するかまたはサービスを公開すると、各タイプにデフォルトのテンプレートが作成されます。
デフォルトのテンプレートは、常にデータベース データで使用されます。ジオデータベース データで使用するカスタマイズしたテンプレートを作成できます。詳細については、「フィーチャ テンプレートのカスタマイズ」をご参照ください。
縮尺範囲の設定
フィーチャ サービスで表示されるのは、デフォルトで 1,000 フィーチャのみです。フィーチャが最大数を超えて表示されるような縮尺でレイヤーが表示されないようにするには、公開するマップでフィーチャ レイヤーの縮尺範囲を設定します。
フィーチャ レイヤーの縮尺範囲を設定するには、ArcMap の [コンテンツ] ウィンドウ上でレイヤーを右クリックし、[プロパティ] をクリックします。[レイヤー プロパティ] ダイアログ ボックスの [一般] タブで、[縮尺範囲] を設定します。
フィールド プロパティ
ArcMap で設定されるフィールド プロパティは、フィーチャ サービスを使用して提供されます。これには、フィールド エイリアス、フィールド表示設定、およびフィールドの読み取り専用プロパティがあります。読み取り専用フィールドには、ObjectID や GlobalID などのシステムで管理されるフィールド、編集情報を記録するフィールド (ジオデータベースのみ)、およびマップ ドキュメントに読み取り専用として設定されるフィールドが含まれます。
更新を適用すると、読み取り専用フィールドに値が設定されていても、フィーチャ サービスはその値を無視します。挿入を適用すると、読み取り専用フィールドと非表示フィールドにはデフォルト値が適用されます。デフォルト値が定義されていない場合は、NULL が適用されます。フィールドが NULL 値を格納できない場合、挿入は失敗します。
フィールド プロパティ タブから、マップ内のレイヤーのフィールドの順序を変更することもできます。公開したフィーチャ サービスのレイヤーは、定義されたフィールドの順序を維持します。
レイヤー説明と著作権情報
マップ ドキュメントに指定されたレイヤー説明とクレジット (著作権) は、それぞれフィーチャ サービスの各レイヤーにレイヤー説明と著作権情報として提供されます。
HTML ポップアップ
フィーチャ サービスは ArcMap で構成された HTML ポップアップをサポートします。HTML ポップアップは、フィーチャに関する HTML 形式の情報を共有するための簡単な方法です。カスタマイズされた HTML を使用して情報を表示できることを除けば、これらは [個別属性] ツールとほぼ同じように動作します。ArcMap での HTML ポップアップの設定方法の詳細については、「フィーチャ レイヤーに関する HTML ポップアップ プロパティの設定」をご参照ください。
フィーチャ サービスを Web で使用しているときにポップアップを利用できるようにする場合は、これらを Map Viewer Classic で定義することを検討してください。または、クライアント API 自体を使用して、開発者がポップアップ スタイルを定義することもできます。
時間のサポート
フィーチャ サービスでは時系列データ (ある一時期の状態を表すデータ) がサポートされます。時間の情報は 1 つまたは複数の属性フィールドに格納し、この情報を使用して、特定の時間や時間間隔のデータを視覚化します。フィーチャ サービスを通してレイヤーの時系列データを公開するには、[レイヤー プロパティ] ダイアログ ボックスの [時間] タブで時間を有効にします。レイヤーの時間を有効にする方法については、「データの時間対応化」をご参照ください。
座標系
フィーチャ サービスとして公開するマップ ドキュメントには、座標系が異なるレイヤーを含むことができます。クライアントがフィーチャ サービスにアクセスしたときに、必要に応じてフィーチャ サービスが座標系を変換します。たとえば、クライアントがレイヤーの座標系とは異なる座標系を使用してフィーチャ サービスを通じてフィーチャを挿入する場合、新しいフィーチャを格納する前に、フィーチャ サービスがそのフィーチャの座標系をレイヤーの座標系と一致するように変換します。ジオメトリに関する空間検索でも、正しい結果を返すために、適用される前にレイヤーの座標系に変換されます。
フィーチャ サービスは、必要に応じてジオグラフィック (測地基準系) 変換も使用します。たとえば、レイヤーが NAD27 に格納されて、WGS84 の座標系を持つサービスを介してフィーチャが挿入される場合、フィーチャが格納される前に WGS84 から NAD27 への測地座標変換が実行されます。公開前にマップ ドキュメントのデータ フレーム プロパティで変換を設定することにより、変換方法を制御できます。変換方法がマップに定義されていない場合は、デフォルトの変換が実行されます。
結合されたデータ
マップ ドキュメントのレイヤーまたはテーブルの属性結合を定義できます。フィーチャ アクセス機能を有効化してマップ サービスを GIS Server サイトに公開する場合、マップ サービスには結合された列が含まれますが、フィーチャ サービスには含まれません。フィーチャ サービスには、結合テーブル (結合が定義されたテーブルまたはフィーチャクラス) の列のみが含まれます。レイヤーのシンボルが結合された列に基づく場合、マップ サービスにはフィーチャのシンボル化に使用したレンダラーが含まれますが、フィーチャ サービスではシンプル レンダラーに戻されます。レイヤー内のレンダラーが結合内の左端のフィーチャクラスの列に基づく場合、マップ サーバーとフィーチャ サーバーにはレンダラーが含まれます。
結合されたデータを ArcGIS Enterprise ポータルまたは ArcGIS Online に公開することはできません。これらいずれかのアプリケーションにフィーチャ サービス (ホスト フィーチャ レイヤー) を公開する前に、結合を削除します。ホスト フィーチャ レイヤーに関連データを含める必要があり、ソース データがジオデータベースにある場合は、リレーションシップ クラスを作成できます。
その他のジオデータベース機能
データがジオデータベースに格納されている場合は、他にも利用できる機能がいくつかあります。これらの機能は、フィーチャ サービスを公開する前に構成します。
サブタイプと属性ドメインの定義
公開するデータがジオデータベースにある場合、データセットを構成して、適切にサブタイプおよび属性ドメインを使用すると、フィーチャ サービスのユーザー体験が向上し、データの入力エラーを防ぐことができます。これにより、データの分類が可能となり、データの編集時に適切な値が入力されるようになります。フィーチャ サービスは、サブタイプとドメインを検出して使用できます。たとえば、消火栓の色を、赤、黄、青のいずれかに制限するドメインがある場合、Web アプリケーションに表示されるドロップダウン リストでは、これら 3 色のいずれかしか選択できません。
カスタム フィーチャ テンプレートについて
ArcMap 内で、フィーチャ サービスを通じてテンプレートを作成したり、既存のテンプレートを変更して編集内容をカスタマイズすることができます。これには、そのタイプのフィーチャを作成するのに使用される、デフォルトの作成ツールの設定が含まれます。特定のフィーチャ タイプのテンプレートを削除すると、公開時にデフォルトのテンプレートが作成されます。
テンプレートが作成するフィーチャのタイプに応じた、さまざまなタイプの作図ツールが用意されています。たとえば、ライン テンプレートがある場合は、ライン フィーチャの作成に使用できるツールを選択できます。テンプレートに保存されている作成ツールは、フィーチャ サービスを通じて使用できます。例外は [ラインの終点] と呼ばれるポイント ツールで、これはフィーチャ サービスによってサポートされません。テンプレートの詳細については、「フィーチャ テンプレートのプロパティの設定」をご参照ください。
マップ ドキュメントが保存されると、テンプレートはマップのレイヤーとともに保存されます。マップ ドキュメントが公開されると、フィーチャ サービス クライアントでこれらのテンプレートを利用できます。レイヤー、タイプ、およびテンプレートをマップ ドキュメントに定義したら、サービスを公開できます。
添付ファイル
フィーチャ サービスによって、アタッチメントの検索と編集を実行できます。アタッチメントとは、ジオデータベース内のフィーチャまたはオブジェクトに関連付けられるメディア ファイルです。たとえば、アタッチメントを使用すると、野鳥観察に写真やビデオを追加して、観測点をクリックすると表示できるようになります。この機能を使用するには、最初にジオデータベース内のデータセットを、アタッチメントをサポートするように設定する必要があります。これらのデータセットがマップ ドキュメントに追加され、公開されると、クライアントはフィーチャ サービスを通じてアタッチメントを検索、挿入、および削除することができます。
フィーチャ サービスにアタッチできるサイズとファイル タイプには制限があります。これらの制限とアタッチメント設定の変更方法の詳細については、ArcGIS REST API ヘルプの「Uploads」をご参照ください。
アタッチメントをサポートするようにデータセットを設定する方法の詳細については、「アタッチメントの有効化」をご参照ください。
リレーションシップ クラス
フィーチャ サービスまたはホスト フィーチャ レイヤーに関連データを含めるには、フィーチャクラスと関連テーブルまたはフィーチャクラスの間にリレーションシップ クラスを定義します。リレーションシップ クラスを介してアクセスした関連データが、公開するフィーチャ サービスに含まれます。
ArcMap ワークフローの例: 野鳥観察フィーチャ サービス
次のセクションでは、マップ ドキュメントの設定、データの定義、および野鳥観察フィーチャ サービスを通じて提供されるシンボルの定義を行う方法の例を示します。このフィーチャ サービスでは、野鳥観察コミュニティのメンバーが野鳥観察の結果をマップ上に直接ポストし、写真、音声ファイル、ビデオ ファイルなどのメディア ファイルを特定の観測点に追加することができます。
データの定義
フィーチャ サービスのオーサリングの最初のステップは、サービスを通じて使用可能なデータの定義です。この例では、ジオデータベースの Bird_Sightings という名前のフィーチャクラスから始めます。このフィーチャクラスにアタッチメントを関連付けるには、アタッチメントを ArcCatalog または ArcMap の [カタログ] ウィンドウに追加する必要があります。これには、データベースに接続し、フィーチャクラスを右クリックして、[管理] > [アタッチメントの作成] の順に選択します。これによって、アタッチメントとフィーチャクラスをアタッチメント テーブルに関連付けるリレーションシップ クラスを格納するテーブルが作成されます。アタッチメントをフィーチャクラスに追加する方法の詳細については、「アタッチメントの有効化」をご参照ください。
シンボルの定義
データを設定したら、次の手順はデータの ArcMap への追加とシンボルの定義です。フィーチャ サービスによって返されるシンボルは、ArcMap ドキュメントのレイヤーのシンボルに基づいています。レイヤーごとの各シンボルは、タイプと呼ばれます。この例では、Bird_Sightings レイヤーはデフォルトでシンプル レンダラー (1 つのシンボル) でシンボル表示されています。
しかしながら、ここでは、観察のタイプに基づいて野鳥観察レイヤーをシンボル表示することにします。これには、個別値レンダラーを使用できます。レイヤーをレンダリングする方法を変更するには、レイヤーを右クリックして [プロパティ] を選択します。[レイヤー プロパティ] ダイアログ ボックスで [シンボル] タブをクリックし、[カテゴリ] で [個別値] を選択します。次に、レイヤーのシンボル表示に使用したいフィールドを選択します。この場合、観察に関する 3 つの固有のタイプ (野鳥観察、巣の観察、希少な鳥の観察) があるため、3 つのタイプ (観察タイプごとに 1 つ) がサービスによって返されます。
レンダラーが選択されたため、次のステップでは各観察タイプを表すシンボルを選択します。この例では、鳥のシンボルは Esri のシンボル選択から選択されています。前景および背景には観察のタイプごとに異なる色が設定され、フィーチャ サービス内で簡単に区別できるようになっています。マップ ドキュメントを公開すると、シンボルは PNG グラフィックスに変換され、クライアントに返されます。
シンボルを設定したら、次のステップはフィーチャ サービスを通じて利用できる編集環境の定義です。
編集環境の定義
このフィーチャ サービスの目的は、野鳥愛好家が野鳥観察とそのすべての関連情報をマップに入力できるようにすることです。フィーチャ サービスを介した編集には、マップ ドキュメントのフィーチャ テンプレートを使用します。テンプレートを作成しない場合には、サービスの公開時にデフォルトのテンプレートがタイプごとに作成されます。ただし、テンプレートを作成したり、既存のテンプレートを変更して編集内容をカスタマイズすることもできます。
この例では、このフィーチャ サービスのテンプレートを作成します。これを行うには、フィーチャクラスを右クリックし、[フィーチャの編集] を選択して [フィーチャ テンプレートの整理] を選択します。[レイヤー] でレイヤーを選択して、[新規テンプレート] をクリックします。表示される [テンプレート] ウィザードで、テンプレートを作成できます。野鳥観察のすべてのタイプのテンプレートを作成するように選択します。テンプレートを作成したら、追加のテンプレートを作成するためにテンプレートをコピーします。
このフィーチャ サービスに、希少な鳥の観察タイプのテンプレートをもう 1 つ追加したいとします。希少な鳥の観察とは、季節外れの鳥や、絶滅寸前の鳥の観察です。テンプレートのコピーを作成するには、コピー元のテンプレートを選択して [コピー] をクリックします。この例では、希少な鳥の観察テンプレートのコピーを作成し、2 つのタイプの希少な鳥の観察を表すように各テンプレートをカスタマイズします。テンプレートをカスタマイズするには、[フィーチャ テンプレートの整理] ウィンドウでそのテンプレートをダブルクリックします。テンプレート プロパティが表示され、テンプレートの名前とデフォルトのフィールド値を編集できます。
絶滅寸前の希少な鳥の観察用テンプレートでは、観察タイプが [希少種観察] に、説明が [絶滅寸前] に設定されています。季節外れの希少な鳥の観察用テンプレートでは、観察タイプが [希少種観察] に、説明が [季節外れ] に設定されています。
残りの属性も、各テンプレート内で適切なデフォルト値に設定できます。この例では、絶滅寸前の希少な鳥の観察には追跡調査が必要であるため、[追跡調査] 属性のデフォルトを [はい] に設定できます。季節外れの希少な鳥の観察には追跡調査は不要であるため、[追跡調査] 属性は [いいえ] に設定できます。
テンプレートの一部の属性をデフォルト値に設定すると、エンド ユーザーはフィーチャのタイプを選択してデジタイズするだけで済むため、編集作業が簡素化されます。レイヤー、タイプ、およびテンプレートをマップ ドキュメントに定義したら、サービスを公開できます。サービスが公開されると、エンド ユーザーは Web クライアントまたは ArcGIS Desktop を通じてサービスにアクセスし、検索や編集を行うことができます。
詳細については、「ArcMap でのフィーチャ サービスの公開」をご参照ください。
その他の例のチュートリアル
フィーチャ サービスの設定方法および使用方法についてさらにガイドが必要な場合は、次のチュートリアルより、Web 編集を実行するためにフィーチャ サービスを使用して公開するマップ ドキュメントの設定方法、データの定義方法、およびシンボルの定義方法の手順の例をご参照ください。チュートリアルは、データをエンタープライズ ジオデータベースに格納しているか、データベースに格納しているかによって異なります。
エンタープライズ ジオデータベース
データをエンタープライズ ジオデータベースに格納している場合、次のエンタープライズ ジオデータベース チュートリアルをご参照ください。
チュートリアル: エンタープライズ ジオデータベースのデータを使用した Web 編集の実行
データベース
データをデータベースに格納している場合、次のデータベース チュートリアルをご参照ください。