Web AppBuilder で作成したアプリは、直接、URL パラメーターを使用して変更できます。URL は常に <your portal url>/apps/webappviewer/index.html? で始まり、以下のうちの 1 つ以上のパラメーターが含まれます。複数のパラメーターを含めるには、アンパサンド (&) を使ってパラメーターを区切ります。例を以下に示します。
http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d&webmap=9cf053ea602345ddae060010c470e615
ヒント:
URL パラメーターをより簡単に構築できるようになりました。アプリで共有ウィジェットを追加して [リンク オプション] をクリックします。[リンク プレビュー] に、選択したパラメーターが表示され、URL パラメーターを含むショートカット リンクが自動的に生成されます。find パラメーターを使用するには、アプリで検索ウィジェットが有効化されている必要があることに注意してください。
メモ:
現在、3D アプリは URL パラメーターをサポートしていません。
クエリ パラメーターのエンコード
すべてのクエリ パラメーターがエンコードされます。エンコーディングでは、無効な文字が、% およびそれらの文字の 16 進数表記に置き換えられます。
エンコードされていない URL パラメーターの例を次に示します。http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca
次に、エンコードされた当該パラメーターを示します。http://<your portal url>/apps/webappviewer/index.html?find=380%20new%20york%20street,%20redlands,%20ca
Web には、エンコードされた URL を生成するための無料のサイトおよびツールが多数存在します。たとえば、Albion Research Ltd. は「URLEncode and URLDecode Page」を設けています。読みやすさに配慮して、このトピックで以降に示す例はエンコードされていません。
保存したアプリを開く
Web AppBuilder で作成および保存したアプリを開くには、id= とアプリの一意の ID を使用します。次に例を示します。
http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d
Web マップの定義
Web マップを定義するには、webmap= と Web マップの一意の ID を使用します。次に例を示します。
http://<your portal url>/apps/webappviewer/index.html?webmap=9cf053ea602345ddae060010c470e615
マップの中央配置
特定の位置をマップの中心にするには、地理座標 (x,y) または投影座標 (x,y,WKID) を使用して、center= を設定します。
注意:
区切り文字としてカンマやセミコロンを使用できます。数値の小数点としてコロンを使用している場合は、セミコロンを使用します。
次に、地理座標の例を示します。
http://<your portal url>/apps/webappviewer/index.html?center=34,-50
次に、投影座標の例を示します。
http://<your portal url>/apps/webappviewer/index.html?center=500000,5500000,102100
スケール レベルの定義
マップのスケール レベルを定義するには、center= パラメーターと level= パラメーターを使用します。level パラメーターは、マップ サービスの REST エンドポイントに示されているキャッシュ スケールのレベル ID を受け入れます。例を以下に示します。
http://<your portal url>/apps/webappviewer/index.html?center=20,45&level=4
スケールの定義
マップのスケールを定義するには、center= パラメーターと scale= パラメーターを使用します。scale パラメーターは、マップ サービスの REST エンドポイントに示されているキャッシュ スケールを受け入れます。例を以下に示します。
http://<your portal url>/apps/webappviewer/index.html?center=20,45&scale=4622324
範囲の定義
マップの範囲の定義には extent= を使用します。extent パラメーターは MinX,MinY,MaxX,MaxY の形式の地理座標 (GCS)、MinX,MinY,MaxX,MaxY,WKID の形式の投影座標 (PCS)、または MinX,MinY,MaxX,MaxY,WKT の形式の WKT (Well-Known Text) 文字列を受け入れます。区切り文字としてカンマやセミコロンを使用できます。数値の小数点としてコロンを使用している場合は、セミコロンを使用します。
次に、地理座標の例を示します。
http://<your portal url>/apps/webappviewer/index.html?extent=-117.20,34.055,-117.19,34.06
次に、投影座標の例を示します。
http://<your portal url>/apps/webappviewer/index.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113
次に、WKT (Well-Known Text) 文字列の例を示します。
http://<your portal url>/apps/webappviewer/index.html?extent=1008562.1255,1847133.031,1060087.7901,1877230.7859,wkt=PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]]
レイヤーの表示設定
マップのレイヤーの表示設定を設定するために、showLayers= を使用して表示レイヤーを指定するか、非表示レイヤーに hideLayers= を使用できます。showLayers= および hideLayers= パラメーターには、単一のレイヤー ID または複数のレイヤー ID を指定できます。複数のレイヤーの場合、ID のリストをセミコロンで区切ります (&showLayers=<layerID>;<layerID>;<layerID>)。
例を示します: http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&showLayers=Census_8491;Census_8492;Census_8493。
レイヤー名も指定できます。レイヤー名は変更できるので、レイヤー ID を使用することを強くお勧めします。レイヤー ID は Web マップ アイテムのコンテンツから取得できます。http://<your portal url>/sharing/rest/content/items/<webmapItemID>/data/?f=pjson
ヒント:
マップ上でサブレイヤーを表示するには、そのすべての親レイヤーが showLayers リスト内に存在する必要があります。showLayers= または hideLayers= パラメーターの値が空の場合、それぞれ、レイヤーが表示されないか、すべてのレイヤーが表示されます。
注意:
showLayers= または hideLayers= パラメーターに設定されたレイヤー情報が多すぎる場合、URL が長すぎてサーバーが解析できない可能性があります (サーバーには URL に対して固有の長さ制限がある場合があります)。
マップを開く位置またはフィーチャの検索
マップを開くのに使用される位置またはフィーチャを検索するには、find= を使用します。マップでは、最も近い一致結果に自動的にズームし、吹出しマーカーが追加されます。find パラメーターに指定できる値は、1 行の住所、住所の一部 (たとえば、都市名のみや国名のみ)、場所名、緯度と経度の座標、および検索可能なレイヤー内のフィーチャ (たとえば、パーセル識別番号 (PIN) を表す 1916352001) です。例を以下に示します。
http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca
注意:
すべてのクエリ パラメーターがエンコードされる必要があります。また、このパラメーターを使用するには、アプリで検索ウィジェットが有効化されている必要があります。
ポイントの追加
ポイントをマップに追加するには、marker=<x>,<y> を使用します。指定の X 位置と Y 位置にポイントが追加されます。次のオプション プロパティも含めることができます。
- <wkid> - マップに追加される X,Y 座標の空間参照。WKID を含めない場合、GCS 座標が使用されます。
- <エンコードされたタイトル> - ポイントのポップアップのタイトル。タイトルを含めない場合、ポップアップは空になります。
- <エンコードされたアイコン URL> - ポイントのシンボル。シンボルを含めない場合、青のマーカー シンボルが使用されます。
- <エンコードされたラベル> - ポイント シンボルの横に表示されるラベル。
次の点を考慮します。
- <x>、<y> は必須です。
- title、icon、および label パラメーターは、必ずエンコードしなければなりません。
- プロパティは、marker=<x>,<y>,<wkid>,<エンコードされたタイトル>,<エンコードされたアイコン URL>,<エンコードされたラベル> の順序で追加する必要があります。
- 区切り文字としてカンマやセミコロンを使用できます。数値の小数点としてコロンを使用している場合は、セミコロンを使用します。
- 空の値を使用します。スペースは使用しません。たとえば、ラベルを指定し、それ以外のオプション プロパティをどれも指定しない場合は、6 番目のパラメーターとしてラベルを追加し、その他のパラメーターの値を空にします (x;y;;;;label)。
- (ポイントを中央に配置することに加えて) マップを拡大する場合は、level= パラメーターを含めます。
例を以下に示します。
http://<your portal url>/apps/webappviewer/index.html?marker=-79.234826;38.147884;;Race start and finish;;Grindstone 100 Ultra Marathon&level=7
フィーチャのクエリ
フィーチャをクエリして拡大するには、以下のいずれかのオプションを使用します。
- query=<layer name>,<field name>,<field value>
- query=<layer name>, <where clause>
- query=<layer id>,<field name>,<field value>
- query=<layer id>, <where clause>
ヒント:
対話形式で URL パラメーターを構築できるようになりました。アプリで共有ウィジェットを追加して [リンク オプション] をクリックします。[フィーチャを検索してズームします] オプションを選択した後、検索するレイヤー、フィールド、およびフィールド値を選択します。指定した URL パラメーターを含む URL を [リンク プレビュー] にコピーします。必要でない場合は、アプリから共有ウィジェットを削除します。
注意:
すべてのクエリ パラメーターは大文字と小文字を区別し、エンコードする必要があります。
WHERE 句は SQL 標準に従います。たとえば、WHERE 句に IN 演算子が含まれる場合は、下に示すように WHERE 句のレイヤー名または ID をカンマで区切る代わりに、セミコロンを使用します。これは、('A11', 'A12', 'A13) や ('Charlotte', 'Chicago') などの値のリストを作成する際、WHERE 句にカンマが使用されるためです。これにより、クエリ パラメーターを適切に解析して、レイヤーと WHERE 句の内容を区別することができます。
- query=<layer name>; <where clause>
- query=<layer id>; <where clause>
レイヤー名は変更できるので、クエリではレイヤー ID を使用することを強くお勧めします。次に示すように、レイヤー ID は Web マップ ID から取得できます。http://<your portal url>/sharing/rest/content/items/32a83775654249dcae6b8f2eff5d4072/data/?f=pjson
注意:
レイヤー ID を取得したら、Web マップがパブリックに共有されていることを確認します。
たとえば、次に示すように JSON 形式でレイヤーがマップに個別に追加されます。レイヤー ID は「Census_8491」、フィールド名は「POP2000」、フィールド値は「1211537」です。次のクエリを実行することができます。id: "Census_8491",
layerType: "ArcGISFeatureLayer",
url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3",
visibility: true,
opacity: 1,
mode: 1,
title: "Census - states",
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000=1211537
文字列または ObjectID フィールドのクエリも実行できます。
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME,California
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME='California'
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,OBJECTID,1
多くの場合、レイヤーはマップ サービスのグループとして追加されます。グループ内のサブレイヤーのクエリを実行するには、代わりに <layer id_sublayer id> をレイヤー ID として使用します。次のレイヤーを例に挙げると、レイヤー ID は「Census_3217」、サブレイヤー ID インデックスは「3」です。このサブレイヤーのレイヤー ID は「Census_3217_3」になります。次のクエリを実行することができます。
id: "Census_3217", layerType: "ArcGISMapServiceLayer", url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer", visibility: true, opacity: 1,
title: "Census"
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000=1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491;STATE_NAME in ('California', '')
ロケールの切り替え
アプリの言語を切り替えるには、locale URL パラメーターと 2 文字の ISO 639-1 言語コードを使用します。サポートされる言語コードは次のとおりです。ar、cs、da、de、en、el、es、et、fi、fr、he、it、ja、ko、lt、lv、nb、nl、pl、pt-br、pt-pt、ro、ru、sv、th、tr、zh-cn、vi、zh-hk、zh-tw。
たとえば、Web AppBuilder をフランス語で使用するには、次のように locale=fr を URL に追加します。
http://<your portal url>/apps/webappviewer/index.html?locale=fr
モバイル用のレイアウトが適用される条件の制御
アプリは、画面サイズに基づいて、2 つのレイアウト スタイルをサポートします。1 つはデスクトップ用、もう 1 つはモバイル デバイス用です。画面の高さか幅のどちらかが 600 ピクセル未満の場合は、モバイル用のレイアウトが自動的に適用されます。ただし、アプリが Web サイトに埋め込まれている場合、これによって予期しない動作が生じることがあります。たとえば、Web サイト内のポップアップがモバイル用のレイアウト スタイルになります。レイアウト スタイルを制御するには、mobileBreakPoint=<pixel number> を使用します。たとえば、次に示すように、画面サイズが 300 ピクセル未満になるまで、デスクトップ用のスタイルのままにすることができます。
http://<your portal url>/apps/webappviewer/index.html?mobileBreakPoint=300