独自のカスタム Web アプリ テンプレートを作成するには、既存のテンプレートの 1 つをダウンロードして変更するか、既存の Web アプリを更新して、ポータルのコンテンツを操作するか、ArcGIS Web API を使用して新しい Web アプリを構築します。どの方法で独自のテンプレートを作成する場合でも、URL パラメーターとマップを操作します。グループ テンプレートを作成している場合はグループを操作します。Bing のベースマップの操作や、パブリックでないマップへのアクセス、およびプロキシや CORS (Cross-Origin Resource Sharing) が必要なリソースの操作については、他の要件を考慮しなければならない場合があります。また、アイテムをポータルに追加し、組織サイトがテンプレートをテンプレート ギャラリーで使用する場合は、テンプレートを組織サイトのテンプレート グループの 1 つで共有します。
Portal for ArcGIS には、ArcGIS API 3.15 for JavaScript が含まれます。独自の API をホストし、新規に作成されたアプリ テンプレートに合わせてポータルをそのローカル バージョンに紐づける必要はありません。Web アプリ テンプレートは、インストールされた API を自動的に参照します。通常、ローカルにインストールされる API は https://webadaptor.domain.com/arcgis/jsapi/jsapi で使用できます。
注意:
Portal for ArcGIS に付属している Web アプリ テンプレート ファイルは変更しないでください。これらのファイルはポータルによって管理されているため、ファイルに対して行った変更がすべて、ポータルによって上書きされる可能性があります。テンプレートをカスタマイズするには、次の手順を実行します。
- カスタマイズする既存のテンプレート ファイルのコピーを作成します。
- コピーをディスク上の別の場所に配置します。
- テンプレートのコピーをカスタマイズします。
- カスタマイズしたコピーを新しいテンプレートとしてポータルに追加します。
このトピックでは、Web アプリ テンプレートの作成方法について説明します。コンテンツを作成する権限を持っていて、コンテンツを組織のグループで共有していると仮定します。テンプレートを作成したら、それを構成可能にすることができます。構成可能なテンプレートを使用すると、アプリの外観と振舞いをユーザーがカスタマイズできます。
Web マップ
アプリ マップ テンプレートは、マップ ビューアーに現在表示されているマップを操作するように設計されています。テンプレートは通常、Web マップの URL パラメーターで指定された Web マップに基づいて、マップを作成します。それぞれの Web API は、Web マップ ID からの情報を使用してマップを作成するヘルパー メソッドを備えています。
たとえば、ArcGIS API for JavaScript の esri.arcgis.utils.createMap メソッドを使用すると、入力 ID に基づいてマップを作成できます。また、esri.arcgis.utils.createMap への同期リクエストが完了したときに実行されるコールバック関数を含めることもできます。esri.arcgis.utils.createMap(webmap,"map",{
mapOptions:{
slider:false
},
bingMapsKey:bingMapsKey
}).then(function(response){
map = response.map;
});
注意:
Web マップの中に Bing Maps ベースマップが含まれている場合は、createMap メソッドを使用する際に Bing Maps キーを指定する必要があります。他にも、スライダー、ナビゲーション、属性などを表示するかどうかなど、さまざまなマップ オプションを指定できます。
callback 関数を使用すると、マップ オブジェクトやレイヤーなどへのアクセスを提供する応答オブジェクトにアクセスできます。
アプリ テンプレートの登録
アプリ テンプレート内のセキュア アイテムを操作している場合、まずアプリ テンプレートをプラットフォームで登録します。これを行うには、新しい Web マッピング アプリケーション アイテムを追加し、Web サーバー上でホストされるアプリ テンプレートの URL を設定します。
アイテムを追加した後、アプリを登録する必要があります。これは Web アプリであるため、タイプは Browser のまま、Redirect URI がテンプレート アプリの URL を指定するように設定します。
アプリを登録すると、一意のアプリケーション ID が付与されます。
Identity Manager を操作して、登録されたアプリケーション ID を認識させるようにします。詳細については、ArcGIS API for JavaScipt に付属する「OAuth Basic」および「OAuth Popup」の OAuth サンプルをご参照ください。
グループ
グループ テンプレートは、アプリとして指定されたグループからコンテンツを表示します。
ArcGIS REST API は、ポータルのコンテンツへのアクセスを提供します。これを使用すると、入力グループ ID に基づいてグループ コンテンツを取得できます。
次の例では、入力 ID でグループを検索するクエリを実行しています。
var portal = new esri.arcgis.Portal('https://webadaptor.domain.com/arcgis/');
dojo.connect(portal, 'onLoad',function(){
portal.queryGroup(groupid).then(function(response){
var group = response.results[0];
});
});
グループが見つかった場合、そのグループからアイテムを取得するめにクエリを使用できます。 次の例では、グループにクエリを実行して、タイプが Web Map または Web Mapping Application のアイテムを 5 つ検索しています。var queryParams = {
q: 'type:"Web Map" -type:"Web Mapping Application"',
num: 5
};
group.queryItems(queryParams).then(function(response){
var groupItems = response.results;
});
その他の注意事項
通常、Web アプリはさまざまな種類のコンテンツを操作できるように設計されているため、Bing Maps ベースマップやパブリックでないコンテンツなどが含まれるマップを処理するために、テンプレートを設定しなければならない場合があります。具体的な注意事項を以下に示します。
Bing Maps キー
表示するマップが Bing Maps ベースマップを使用している場合、アプリに Bing Maps キーを含める必要があります。Bing Maps キーは、createMap メソッドのパラメーターとして提供されています。
プロキシおよび CORS のサポート
アプリでドメイン間リクエストを作成する場合、CORS (Cross-Origin Resource Sharing) を有効にするか、プロキシをアプリに追加する必要があります。
ポータルへのテンプレートの追加
テンプレートを作成してそれを Web サーバーでホストした後、Web アプリ アイテムとしてポータルにそのテンプレートを追加し、アプリへの URL を指定します。目的には、[構成可能] を選択します。API には、[JavaScript] を選択します。
必ず説明的なタイトルとサマリーを入力してください。この情報は、ユーザーがテンプレート ギャラリーでテンプレート アイテムの上にポインターを置いたときに表示されます。オプションで、アプリ ファイルを含む *.ZIP ファイルを作成し、それをアイテムに追加してダウンロード機能を提供することができます。
組織のアプリ ギャラリー内でのテンプレートの使用
組織サイトのマップ ビューアー アプリ ギャラリーやグループ アプリ ギャラリーでテンプレートを使用する場合は、そのギャラリーに使用されるグループでアイテムを共有します。組織サイトの管理者は、テンプレートを含んでいるグループを使用できるように、マップ ビューアーを構成したり、グループを構成したりできます。