フィーチャ サービスでフィーチャを編集 (または表示) するために使用できるさまざまな ArcGIS クライアントがあります。クライアントは、Web クライアントまたは ArcGIS Desktop のどちらかを使用して、フィーチャ サービスを利用できます。
標準の ArcGIS Web クライアント
ArcGIS Online および Map Viewer のPortal for ArcGISおよびテンプレートは、フィーチャ サービスを編集するための基本的な標準機能を備えています。プログラミングの必要なしに、ユーザーがデータベースのジオグラフィックス フィーチャを追加、更新、および削除できる Web 編集アプリケーションをすばやく作成できます。
たとえば、標準アプリケーションを使用して次の操作を行うことができます。
- 選択のみのレイヤーの編集。
- 編集情報の記録 (これは、データベースではなく、エンタープライズ ジオデータベースで使用できます)。
- 所有権ベースのアクセス制御の使用によるフィーチャへのアクセスの制御 (これは、データベースではなく、エンタープライズ ジオデータベースで使用できます)。
- ユーザーによるフィーチャ ジオメトリの編集の禁止。
サービスの ArcGIS Online Services Directory の URL を使用して、ArcGIS Server または Portal for ArcGIS の Web サイトにあるMap Viewerにフィーチャ サービスを追加できます。フィーチャ サービスを含むマップを作成したら、そのマップを組織内で共有したり、Web サイトに埋め込んだり、アプリケーションへのリンク (URL) を電子メール、ブログ、または Web サイトに貼り付けたりすることができます。また、ArcGIS Online からアプリケーション テンプレートをダウンロードして、作成したマップを組織の Web サーバー上に配置することもできます。これらのテンプレートは、完全にカスタマイズ可能です。
次のチュートリアルでは、フィーチャ サービスをArcGIS.com map viewerと一緒に使用して、フィーチャを編集します。
- チュートリアル: エンタープライズ ジオデータベースのデータを使用した Web 編集の実行
- チュートリアル: チュートリアル: エンタープライズ ジオデータベースから複製したデータを使用した Web 編集
- チュートリアル: データベースのデータを使用した Web 編集の実行
また、フィーチャ サービスをポータルまたは ArcGIS Online にアイテムとして追加し、組織の他のメンバーと共有することもできます。
Portal for ArcGIS の使用方法の詳細は、Portal for ArcGIS のヘルプをご参照ください。
ArcGIS API for JavaScript クライアント
ArcGIS API for JavaScript は、最も高度な Web 編集機能とカスタム オプションを提供します。この API を使用したプログラミングに習熟している場合は、編集シナリオを特定の目的、目標、または組織の戦略に合わせてカスタマイズすることで、Web 上のユーザーに洗練された操作環境を提供できます。たとえば、ArcGIS API for JavaScript を使用して次の操作を実行できます。
- 選択のみのレイヤーの編集
- 編集情報の記録 (これは、データベースではなく、エンタープライズ ジオデータベースで使用できます)。
- 所有権ベースのアクセス制御の使用によるフィーチャへのアクセスの制御
- ユーザーによるフィーチャ ジオメトリの編集の禁止
- リアルタイムでのジオデータベース バージョンの作成、削除、および変更
- カートグラフィック リプレゼンテーションの編集
フィーチャ サービスの REST エンドポイントの取得
ArcGIS Server Services Directory でサービスを参照して、フィーチャ サービスの REST エンドポイント、つまり URL を取得できます。たとえば、ArcGIS Server Services Directory にあるフィーチャ サービスのデフォルト URL は http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/FeatureServer です。この URL に 0 から始まる整数を追加して、サービス内の特定のレイヤーを参照することができます。たとえば、URL の最後に /0 を追加すると、サービスの最初のレイヤーが表示されます。
ArcGIS Desktop
ArcGIS Desktop では、フィーチャ サービス内のデータを編集できます。ArcGIS Desktop での編集のワークフローは、Web アプリケーションを使用してフィーチャ サービスを編集する場合とは基本的に異なります。詳細については、「フィーチャ サービスからのデータの編集について」をご参照ください。
フィーチャ サービスとの同期の使用
フィーチャ サービスは、オフライン編集ワークフローに対応しています。オフライン環境では、クライアント (たとえば、ランタイムやモバイル デバイス) はローカルで編集を実行し、フィーチャ サービスに再接続した時点で変更をサーバーと同期することができます。同期と呼ばれるこの機能は、ArcGIS REST API を使用して利用できます。
フィーチャ サービスとの同期の使用の詳細については、「ArcGIS Server REST API」ヘルプの同期のセクションをご参照ください。
フィーチャ サービスの表示パフォーマンスを改善する
クライアントが ArcGIS Server にリクエストを送信してフィーチャ サービスを検索するときに、通常はサーバーからの応答がブラウザーによって一定期間キャッシュされ、再利用されます。ただし、アプリケーションでのフィーチャ サービスとその関連データの使用方法に応じて、ブラウザーがキャッシュ内の応答を使用する期間を調整することを検討してください。これを行うには、cacheControlMaxAge というプロパティをサービスの JSON (JavaScript Object Notation) に追加します。
cacheControlMaxAge プロパティの使用方法
ArcGIS Server フィーチャ サービスの応答には、エンティティ タグ (ETag) ヘッダーと Cache-Control ヘッダーが含まれています。ETag ヘッダーの値は、応答の一意の識別子です。Cache-Control ヘッダーには、キャッシュから応答を再利用できる最大期間に関する情報をブラウザーに提供する max-age 値が含まれています。この値は、cacheControlMaxAge プロパティによって制御されます。
前に受けたリクエストが繰り返された場合、キャッシュの最大期間の期限が切れていなければ、ブラウザーは、サーバーにリクエストを送信しないで、キャッシュされている応答を使用します。キャッシュの最大期間の期限が切れている場合、ブラウザーは、リクエストをサーバーに送信し、キャッシュ内の応答に対応する ETag 値を使用して IF-NONE-MATCH ヘッダーを設定する必要があります。ArcGIS Server は、リクエストを評価し、ETag 値を使用して、応答が変更されているかどうかを判定します。サーバーからの応答がブラウザー上のコピーと異なる場合、サーバーはまったく新しい応答をブラウザーに送信します。応答がブラウザー上のコピーと同一である場合、サーバーは、キャッシュ内の応答を引き続き使用するようにブラウザーに警告します。
cacheControlMaxAge プロパティの値の定義
ブラウザーで、キャッシュされた応答を使用できる期間を指定するには、cacheControlMaxAge プロパティを定義します。このプロパティは、個別のサービス キャッシュに対して設定できます。ArcGIS Server が完全な応答を送信する必要性を軽減することによって、ブラウザーのキャッシュを効率化し、アプリケーションを最適化し、ネットワーク帯域幅を節約することができます。
フィーチャ サービスの場合、デフォルトは 0 秒です。これは、ブラウザーが必ずリクエストを再送し、ArcGIS Server がそのリクエストを処理して、コンテンツが変更されている場合に完全な応答をブラウザーに送信するということを意味します。このデフォルト値は、ほとんどのアプリケーションで有効に機能します。
データが頻繁に変更されないフィーチャ サービスの場合、ネットワーク トラフィックを最小限に抑えるために、デフォルト値を 30 日 (2,592,000 秒) 以上に増やすことをお勧めします。
cacheControlMaxAge プロパティをサービスに追加してデフォルト値を指定するには、以下の手順を実行します。
- Web ブラウザーで ArcGIS Server Administrator Directory を開き、管理者権限を持つユーザーでログインします。URL の形式は、http://gisserver.domain.com:6080/arcgis/admin です。
- [サービス] をクリックして、変更するフィーチャ サービスを [サービス] リストから選択します。サービスがリストに表示されない場合は、[Root] フォルダーの下のディレクトリに配置されている可能性があります。
- ターゲットのフィーチャ サービス ページで下までスクロールし、[編集] をクリックします。
- [サービス プロパティ] ダイアログ ページが表示されます。JSON ファイルの cacheControlMaxAge プロパティを挿入する場所に移動します。これは、フィーチャ サービスを公開する場所によって異なります。
- フィーチャ サービスがフェデレーション またはスタンドアロン ArcGIS Server に公開されている場合は、JSON の "extensions" セクションを探します。"typeName": "FeatureServer" を含むサブセクションに移動します。cacheControlMaxAge プロパティは、このサブセクションの properties パラメーターに属しています。
- フィーチャ サービスが ArcGIS Enterprise ポータルに公開されている場合は、サービス プロパティ JSON の "jsonProperties" セクションを探します。cacheControlMaxAge プロパティをこのセクションに追加します。
- cacheControlMaxAge プロパティをそのセクションに追加して、そのプロパティの値 (秒単位) を指定します。たとえば、max-age プロパティを 30 日に設定するには、"properties": { "cacheControlMaxAge": "2592000", } を挿入します。
フィーチャ サービスがフェデレーション またはスタンドアロン ArcGIS Server に公開されている場合:
{ "typeName": "FeatureServer", "capabilities": "Query,Create,Update,Delete,Uploads,Editing", "enabled": "true", "maxUploadFileSize": 0, "allowedUploadFileTypes": "", "properties": { "cacheControlMaxAge": "2592000",} }
フィーチャ サービスが ArcGIS Enterprise ポータルに公開されている場合:
"jsonProperties": {** "currentVersion": 10.6, "serviceDescription": "", "maxRecordCount": 2000, "cacheControlMaxAge": "2592000", }
- [編集の保存] をクリックします。
- フィーチャ サービス ページの [プロパティ] セクションで、cacheControlMaxAge プロパティと、それに指定した値が表示されていることを確認します。
テキスト フィールドへの HTML の入力
クライアント アプリケーションでフィーチャ サービスを編集するときは、テキスト フィールドに HTML を入力できます。たとえば、Web クライアントでフィーチャを編集しているときには、スタイル付き HTML をコメント フィールドに入力できます。デフォルトでは、下の表に示す HTML エンティティと属性をフィーチャ サービスのテキスト フィールド内に入力できます。サポートされていないエンティティや属性を追加しようとするとエラーが返されます。
フィーチャ サービス ワークフローで、サポートされていない HTML エンティティや属性が必要な場合は、[Web コンテンツのフィルター] プロパティを無効にする必要があります。このプロパティには、ArcGIS Desktop または ArcGIS Server Manager のフィーチャ サービスの [高度な設定] ダイアログ ボックスを使用してアクセスできます。詳細については、次のリンクをご参照ください。
HTML エンティティ | HTML 属性 (該当する場合) |
---|---|
<a> | href、target、style |
<b> | |
<br> | |
<div> | style、align |
<em> | |
<font> | size、color、style、face |
http、https protocol | src、href |
<i> | |
<img> | src、width、height、alt、border、style |
<li> | |
mailto: protocol | src、href |
<ol> | |
<span> | style |
<strong> | |
<table> | width、height、cellpadding、cellspacing、border、style |
<tbody> | |
<td> | height、width、valign、align、colspan、rowspan、nowrap、style |
<tr> | height、valign、align、style |
<u> | |
<ul> |