Web アプリケーション テンプレートの作成

独自のカスタム Web アプリケーション テンプレートを作成するには、既存のテンプレートの 1 つをダウンロードして変更するか、既存の Web アプリケーションを更新してポータルのコンテンツを操作するか、ArcGIS Web API のを使用して新しい Web アプリケーションを構築します。どの方法で独自のテンプレートを作成する場合でも、URL パラメータと Web マップを操作します。グループ テンプレートを作成している場合はグループを操作します。Bing のベースマップの操作や、パブリックでないマップへのアクセス、およびプロキシや CORS(Cross-Origin Resource Sharing)が必要なリソースの操作については、他の要件を考慮しなければならない場合があります。また、アイテムをポータルに追加し、組織サイトがテンプレートをテンプレート ギャラリーで使用する場合は、テンプレートを組織サイトのテンプレート グループの 1 つで共有します。

Portal for ArcGIS には、ArcGIS API for JavaScript のバージョン 3.7 が含まれています。独自の API をホストして、ポータルをそのローカル バージョンに紐づける必要はありません。Web アプリケーション テンプレートは、インストールされた API を自動的に参照します。通常、ローカルにインストールされる API は https://webadaptor.domain.com/arcgis/jsapi/jsapi で使用できます。

注意注意:

Portal for ArcGIS に付属する Web アプリケーション テンプレートは変更しないでください。これらのファイルはポータルによって管理されており、変更内容はポータルによって後で上書きされる可能性があります。テンプレートをカスタマイズするには、次の手順を実行します。

  1. カスタマイズする既存のテンプレート ファイルのコピーを作成します。
  2. コピーをディスク上の別の場所に配置します。
  3. テンプレートのコピーをカスタマイズします。
  4. カスタマイズしたコピーを新しいテンプレートとしてポータルに追加します。

このトピックでは、Web アプリケーション テンプレートの作成方法について説明します。テンプレートを作成したら、それを構成可能にすることができます。構成可能なテンプレートを使用すると、アプリケーションの外観と構成をユーザがカスタマイズできます。構成可能なテンプレートの作成の詳細については、「構成可能なパラメータのテンプレートへの追加」をご参照ください。

URL パラメータ

テンプレートを使用する場合、webmap または group ID をパラメータとしてテンプレートの URL に含めることで、表示する Web マップまたはグループを指定します。Web マップ ID は、webmap パラメータを使用して指定します。グループ コンテンツは、group パラメータを使用して指定します。カスタム テンプレートで現在の Web マップまたはグループを操作するには、現在の Web マップまたはグループ ID を URL から抽出するコードをアプリケーションに含める必要があります。Web マップのパラメータの詳細については、「URL パラメータの使用」をご参照ください。

たとえば、基本ビューア テンプレートのヨーロッパ ベースマップ Web マップを表示できます。

これを行うには、まず基本ビューアの URL を使用します。

http://www.arcgis.com/apps/OnePane/basicviewer/index.html

ヨーロッパ ベースマップ URL の webmap= 部分をコピーします。

http://www.arcgis.com/home/webmap/viewer.html?webmap=5421a40574914458892efe74f0149025

これを基本ビューアの URL の最後に追加します。

http://www.arcgis.com/apps/OnePane/basicviewer/index.html?webmap=5421a40574914458892efe74f0149025

JavaScript API には、このプロセスを簡素化する esri.urlToObject というヘルパー メソッドがあります。このメソッドは、URL パラメータをオブジェクトに変換します。

var webmap;
var urlObject = esri.urlToObject(document.location.href);

URL パラメータをオブジェクトに変換すると、さまざまな入力にアクセスできます。たとえば、Web マップの URL パラメータの値を webmap_id という変数に割り当てることができます。

var webmap_id = urlObject.query.webmap;
注意注意:

アプリケーションが構成可能な場合は、構成設定を定義する appid という URL パラメータも処理する必要があります。構成ファイルを読み取るテンプレートの設定の詳細については、「構成可能なパラメータのテンプレートへの追加」をご参照ください。

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 関数を使用すると、マップ オブジェクトやレイヤなどへのアクセスを提供する応答オブジェクトにアクセスできます。

Map クラスの詳細

グループ化

グループ テンプレートは、指定されたグループからのコンテンツをアプリケーションとして表示します。ギャラリー アプリケーションの作成の詳細については、「グループを使用したアプリケーションの作成」をご参照ください。

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 マップまたは Web マッピング アプリケーションのアイテムを 5 つ検索しています。

var queryParams = {
    q: 'type:"Web Map" -type:"Web Mapping Application"',
    num: 5
 };
group.queryItems(queryParams).then(function(response){
    var groupItems = response.results;
});

その他の注意事項

通常、テンプレートはさまざまな種類のコンテンツを操作できるように設計されているため、Bing Maps ベースマップやパブリックでないコンテンツなどが含まれるマップを処理するために、テンプレートを設定しなければならない場合があります。具体的な注意事項を以下に示します。

Bing Maps キー

表示する Web マップが Bing Maps ベースマップを使用している場合、アプリケーションに Bing Maps キーを含める必要があります。Bing Maps キーは、createMap メソッドのパラメータとして提供されています。

Identity Manager

Identity Manager は、セキュリティ設定されているリソースを操作するプロセスを簡素化します。これは、認証情報のプロンプト表示、トークンの生成およびリソースへの追加のプロセスを処理します。テンプレート アプリケーションに Identity Manager クラスを含めることで、テンプレートはパブリックおよびプライベートの Web マップを処理できるようになります。

IdentityManager を有効にするには、アプリケーションに次のコードを含めます。

dojo.require("esri.IdentityManager");

Identity Manager の詳細

注意注意:

また、アプリケーションをホストする Web サーバで SSL を構成する必要もあります。

プロキシおよび CORS のサポート

アプリケーションでドメイン間リクエストを作成する場合、CORS(Cross-Origin Resource Sharing)を有効にするか、プロキシをアプリケーションに追加する必要があります。

テンプレートのポータルへの追加

テンプレートを作成してそれを Web サーバでホストしたら、Web マッピング アプリケーション アイテムとしてそのテンプレートをポータルに追加し、アプリケーションへの URL を指定します。目的には、[構成可能] を選択します。API には、[JavaScript] を選択します。アプリケーションのポータルへの追加の詳細については、「アプリケーションの追加」をご参照ください。

必ず説明的なタイトルとサマリを入力してください。この情報は、ユーザがテンプレート ギャラリーでテンプレート アイテムの上にポインタを置いたときに表示されます。オプションで、アプリケーション ファイルを含む *.ZIP ファイルを作成し、それをアイテムに追加してダウンロード機能を提供することができます。

組織サイトのギャラリー内でのテンプレートの使用

組織サイトの Web マッピング テンプレート ギャラリーやグループ テンプレート ギャラリーでテンプレートを使用する場合は、テンプレートに使用するグループでアイテムを共有します。組織サイトの管理者は、テンプレートを含んでいるグループを使用できるように、マップ ビューアを構成したり、グループを構成したりできます。

5/20/2014