Web アプリケーション テンプレートの作成
独自のテンプレートを作成するには、既存のテンプレートの 1 つをダウンロードして変更するか、既存の Web アプリケーションを更新して ArcGIS Online のコンテンツを操作するか、ArcGIS Web API の 1 つを使用して新しい Web アプリケーションを構築します。どの方法で独自のテンプレートを作成する場合でも、URL パラメータと Web マップを操作します。グループ テンプレートを作成している場合はグループを操作します。Bing のベースマップの操作や、パブリックでないマップへのアクセス、およびプロキシや CORS(Cross-Origin Resource Sharing)が必要なリソースの操作については、他の要件を考慮しなければならない場合があります。また、アイテムを ArcGIS Online に追加し、作成したテンプレートを組織のテンプレート ギャラリーで使用する場合は、そのテンプレートをマップ テンプレートまたはグループ テンプレートで共有します。
このトピックでは、Web アプリケーション テンプレートの作成方法について説明します。アプリケーションを作成したら、それを構成可能にできます。構成可能なテンプレートを使用すると、アプリケーションの外観と構成をユーザがカスタマイズできます。構成可能なテンプレートの作成の詳細については、「構成可能なパラメータのテンプレートへの追加」をご参照ください。
URL パラメータ
テンプレートを使用する場合、webmap または group パラメータをテンプレートの URL に含めることで、表示する Web マップまたはグループを指定します。テンプレートは、URL パラメータとして ID を指定することで、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 マップ テンプレートは、ArcGIS.com マップ ビューアに現在表示されている 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 関数を使用すると、マップ オブジェクトやレイヤなどへのアクセスを提供する応答オブジェクトにアクセスできます。
グループ
グループ テンプレートは、指定されたグループからのコンテンツをアプリケーションとして表示します。ギャラリー アプリケーションの作成の詳細については、「グループを使用したアプリケーションの作成」をご参照ください。
ArcGIS Portal API は、ArcGIS Online のコンテンツへのアクセスを提供します。これを使用すると、入力グループ ID に基づいてグループ コンテンツを取得できます。ArcGIS Portal API の操作の詳細については、「ArcGIS Portal API について」をご参照ください。
次の例では、ArcGIS Online をクエリして、入力 ID を持つグループを検索しています。
var portal = new esri.arcgis.Portal('http://www.arcgis.com');
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");
また、アプリケーションをホストする Web サーバで SSL を構成する必要もあります。
プロキシおよび CORS のサポート
アプリケーションは ArcGIS Online へのドメイン間リクエストを作成するため、CORS(Cross-Origin Resource Sharing)を有効にするか、プロキシをアプリケーションに追加する必要があります。
テンプレートの ArcGIS Online への追加
テンプレートを作成してそれを Web サーバでホストしたら、構成可能な Web マッピング アプリケーション アイテムとして、そのテンプレートを ArcGIS Online に追加します。アイテムのタイプには [Web マッピング] を選択します。目的には [構成可能] を選択します。アイテムの ArcGIS Online への追加の詳細については、「アプリケーションの追加」をご参照ください。アイテムは、ArcGIS Portal API を使用して追加することもできます。
必ず説明的なタイトルとサマリを入力してください。この情報は、ユーザがテンプレート ギャラリーでテンプレート アイテムの上にポインタを置いたときに表示されます。オプションで、アプリケーション ファイルを含む *.ZIP ファイルを作成し、それをアイテムに追加してダウンロード機能を提供することができます。
組織のギャラリー内でのテンプレートの使用
組織の Web マッピング テンプレート ギャラリーやグループ テンプレート ギャラリーでテンプレートを使用する場合は、テンプレートに使用するグループでアイテムを共有します。組織サイトの管理者は、テンプレートを含んでいるグループを使用できるように、マップを構成したり、グループを構成したりできます。