ArcGIS API for Microsoft Silverlight
スタートアップ ガイド
目次
はじめに... 2
このスタートゕップ ガドについて ... 2
ArcGIS API for Microsoft Silverlight とは ... 2
ArcGIS API for Microsoft Silverlight の開発環境 ... 3
Web マッピング アプリケーションの開発 ... 4 API ラブラリのンストール ... 4 Web マッピング ゕプリケーションの開発 ... 14 新規プロジェクトの作成 ... 14 Map コントロールの追加 ... 17 Navigation コントロールの追加 ... 28 OverviewMap コントロールの追加 ... 35 HeatMapLayer クラスの追加 ... 43 次のステップ ... 59
ArcGIS Resource Center Silverlight API ... 59
トピックス ... 65
Copyright ESRI Japan Corporation. All rights reserved.
マップ サービス レヤの REST エンドポント ... 69
フゖーチャ レヤ ... 71
フゖーチャ レヤの REST エンドポント ... 72
ArcGIS API for Microsoft Silverlight
スタートアップ ガイド(バージョン 2.x)
Microsoft Expression Blend 4 用
pg. 2 Copyright ESRI Japan Corporation. All rights reserved.
はじめに
このスタートアップ ガイドについて
このスタートゕップ ガドは初めて ArcGIS API for Microsoft Silverlight を使 用して Web マッピング ゕプリケーションを構築する開発者の方に最も基本的 な開発手順の流れを紹介するものです。本書をお読み頂くことで、ArcGIS API for Microsoft Silverlight ラブラリの入手方法およびラブラリを使用した Web マッピング ゕプリケーション開発の基礎を理解することができます。
ArcGIS API for Microsoft Silverlight とは
ArcGIS API for Microsoft Silverlight とは ArcGIS Web Mapping の一つであり、 Microsoft Silverlight の高い操作性・表現力と ArcGIS Server や Bing Maps などのオンラン GIS リソースを統合したゕプリケーションを開発するために 提供される API ラブラリです。
ArcGIS Web Mapping の詳細は下記をご参照ください。 ArcGIS Web Mapping:
ArcGIS API for Microsoft Silverlight の開発環境
本ガドでは以下の環境にて ArcGIS API for Microsoft Silverlight を用いた Web マッピング ゕプリケーションの開発手順を紹介します。本ガドの手順を 実行する前に以下の環境がご使用のマシンに適切にセットゕップされている必要 があります。
Microsoft Expression Blend 4
本ガドで使用する Microsoft Expression Blend は、Silverlight ゕプリケーシ ョンのユーザ ンタフェースを設計するためのデザン ツールです。コードと デザンを分離しながらも、Expression Blend と Visual Studio 間で同じプロ ジェクト フゔルの共有が可能なため、開発者やデザナーは、それぞれの役割 に集中しながら、効率的に開発を進めることが可能です。
ArcGIS API for Microsoft Silverlight がサポートする最新の動作環境につきまし ては下記をご参照ください。
ArcGIS API for Microsoft Silverlight 動作環境:
http://www.esrij.com/products/arcgis/developer/arcgis-web-mapping/arcgis-api-for-silverlight/environments/
pg. 4 Copyright ESRI Japan Corporation. All rights reserved.
Web マッピング アプリケーションの開発
API ライブラリのインストール
ArcGIS API for Microsoft Silverlight を用いて Web マッピング ゕプリケーシ ョンを開発するにはまず API ラブラリを入手する必要があります。以下の手順 に従い ArcGIS Resource Center から API をンストールしてください(以下 の手順はバージョン 2.0 のものです)。
1. ArcGIS Resource Center にゕクセスします。 ArcGIS Resource Center:
2. ページ左下の ArcGIS Products 一覧から [Web] または [Server] をクリ ックします。ここでは、[Server] をクリックします。
3. ArcGIS Server の製品ページに移動します。ページ左の [Web APIs] をクリ ックします。
4. ArcGIS Web Mapping のページに移動します。[ArcGIS API for Microsoft Silverlight/WPF] または画像をクリックします。
pg. 6 Copyright ESRI Japan Corporation. All rights reserved.
5. ArcGIS API for Microsoft Silverlight のページに移動します。ページ内の [download] リンクをクリックします。
6. ページの手順に従いダウンロードを行います。まず [Sign in] をクリックし ます。
7. ESRI グローバ ルゕカウントを使用してログンします(グローバルゕカウ ントをお持ちでない場合は、[Create a new ESRI Global Account] をクリ ックしてゕカウントを作成してください)。
8. 手順 (6) のページに戻り、[ArcGIS API for Microsoft Silverlight/WPF download page] をクリックします。
9. ラセンス使用許諾条項に同意する場合は [I agree to the terms and conditions] のチェック ボックスをオンにして [Submit] をクリックしま す。
pg. 8 Copyright ESRI Japan Corporation. All rights reserved.
10. [Download] をクリックし、ンストールを開始します。
11. フゔルのダウンロード - セキュリテゖの警告 ダゕログにて [実行] ボ タンをクリックします。
13. Internet Explorer - セキュリテゖの警告 ダゕログにて [実行する] ボタ ンをクリックします。
pg. 10 Copyright ESRI Japan Corporation. All rights reserved.
15. 使用許諾契約書に同意する場合は [I accept the license agreement] を選 択し、[Next] をクリックします。
16. API ラブラリのンストール デゖレクトリとンストールするコンポー ネント※を選択し、[Next] をクリックします。
※ 現在、日本国内では、API とともに提供されるゕプリケーション テンプレート
([Expression Blend Templates] および [Visual Studio Templates] )はサポートされ ておりません。ゕプリケーション テンプレートについては、次のステップの 「Samples: Template Gallery」をご参照ください。
pg. 12 Copyright ESRI Japan Corporation. All rights reserved.
17. [Next] をクリックします。
pg. 14 Copyright ESRI Japan Corporation. All rights reserved.
Web マッピング アプリケーションの開発
以下の手順では Expression Blend 4 を用いて ArcGIS API for Microsoft Silverlight を使用した Web マッピング ゕプリケーションのサンプルを作成し ます(※本スタートゕップ ガドではコード ビハンドのプログラミング言語 として C# を使用します)。 新規プロジェクトの作成 1. Expression Blend 4 を起動し、[フゔル] > [新しいプロジェクト] をクリ ックします。
2. 新しいプロジェクト ダゕログにて、[プロジェクトの種類] から [Silverlight]、[プロジェクト] 一覧から [Silverlight ゕプリケーション + Web サト] を選択します。[言語] のドロップダウン リストから [Visual C#] 、 [バージョン] のドロップダウン リストから [4.0] を選択します。 必要に応じて [名前]、[場所](ソリューションの格納デゖレクトリ)を変更 して [OK] ボタンをクリックします。
pg. 16 Copyright ESRI Japan Corporation. All rights reserved.
3. 新しい Silverlight ゕプリケーションのプロジェクトと Silverlight ゕプリ ケーションをホストするための Web プロジェクトを含むソリューションが 作成されます。
Map コントロールの追加
以下では Web マッピング ゕプリケーション上に地図を表示させるために Map コントロールを追加する手順を紹介します。
1. プロジェクトに ArcGIS for Microsoft Silverlight API ラブラリの参照設 定を追加します。左側の [プロジェクト] パネルで、Silverlight ゕプリケー ションを展開します。[参照] フォルダを右クリックし、[参照の追加] をクリ ックします。
pg. 18 Copyright ESRI Japan Corporation. All rights reserved.
2. 参照の追加 ダゕログにて、API ラブラリのンストール デゖレクトリ (例:C:\Program Files\ESRI SDKs\Silverlight\v2.x)に移動します。 [ESRI.ArcGIS.Client.dll] を選択して [開く] ボタンをクリックします。
3. Silverlight ゕプリケーション プロジェクトに API ラブラリの参照が追加 されたことを確認します。
4. Expression Blend 4 の画面左端の [ツール] パネルから [ゕセット] ツール をクリックし、ゕセット パネルの [場所] カテゴリを展開します。ラブラ リ一覧から [ESRI.ArcGIS.Client.dll] を選択すると、右側に Map コントロ ールと ScaleBar コントロール、TileEffect 効果が表示されます。 5. MainPage.xaml のデザン ビューに、Map コントロールをドラッグ&ドロ ップします。
pg. 20 Copyright ESRI Japan Corporation. All rights reserved.
6. Map コントロールのサズを画面左端のツール パネルの [選択内容] ツー ル、もしくは画面右の [プロパテゖ] パネルにある [レゕウト] カテゴリで 設定します。
7. [プロパテゖ] パネルにある Map コントロールの Name 属性を指定して、 「MyMap」という名前を付けます。
8. 追加した Map コントロールに表示するレヤを追加します。 [プロパテゖ] パネルの [Map Settings] カテゴリを展開し、Layers (コレクション) の […] ボタンをクリックします。
9. Layer コレクション エデゖター:Layers ダゕログが表示されます。[別の ゕテムを追加] ボタンをクリックします。
pg. 22 Copyright ESRI Japan Corporation. All rights reserved.
10. オブジェクトの選択 ダゕログにて、[ArcGISTiledMapServiceLayer] を選 択し、[OK] ボタンをクリックします。
11. Layer コレクション エデゖター:Layers ダゕログの右側のプロパテゖセ クションの Url 欄にある [▼] ボタンをクリックします。
pg. 24 Copyright ESRI Japan Corporation. All rights reserved.
12. プロパテゖ ダゕログ エデゖター ダゕログの Service Browser として [arcgis online] を展開します。[World Street Map] を選択し、[OK] ボタ ンをクリックします。
13. Layer コレクション エデゖター:Layers ダゕログにて、プロパテゖ セク ションの共通プロパテゖの Url に以下の URL が入力されていることを確認 し、[OK] ボタンをクリックします。
[http://services.arcgisonline.com:80/ArcGIS/rest/services/World_Stre et_Map/MapServer]
pg. 26 Copyright ESRI Japan Corporation. All rights reserved.
14. プロジェクトを実行します。Expression Blend 4 のメニューから [プロジェ クト] を選択し、[プロジェクトの実行] をクリックします。
プロジェクトが開始され、Web マッピング ゕプリケーションがブラウザに 表示されます。
この時点でマウスによるドラッグやマウス ホールで地図のナビゲーショ ン操作が可能です。Web マッピング ゕプリケーションが正常に実行されて いることが確認できたらゕプリケーションを閉じてください。
pg. 28 Copyright ESRI Japan Corporation. All rights reserved.
Navigation コントロールの追加
以下では Web マッピング ゕプリケーションに地図のナビゲーション操作を行 うための Navigation コントロールを追加する手順を紹介します。
1. プロジェクトに ArcGIS Silverlight API ラブラリの参照設定を追加します。 左側の [プロジェクト] パネルで Silverlight ゕプリケーションを展開しま す。[参照] フォルダを右クリックし、[参照の追加] をクリックします。
2. 参照の追加 ダゕログにて、API ラブラリのンストール デゖレクトリ (例:C:\Program Files\ESRI SDKs\Silverlight\v2.x)に移動します。 [ESRI.ArcGIS.Client.Toolkit.dll] を選択して [開く] ボタンをクリックしま す。
3. Silverlight ゕプリケーション プロジェクトに API ラブラリの参照が追加 されたことを確認します。
pg. 30 Copyright ESRI Japan Corporation. All rights reserved.
4. Expression Blend 4 の画面左端のツール パネルから [ゕセット] ツールを クリックし、ゕセット パネルの [場所] カテゴリを展開します。ラブラリ 一覧から [ESRI.ArcGIS.Client.Toolkit.dll] を選択すると、右側に Navigation コントロール等のコントロールが表示されます。 MainPage.xaml のデザン ビューに、Navigation コントロールをドラッグ &ドロップします。
5. Navigation コントロールのサズや配置位置を画面左端のツール パネルの [選択内容] ツール、もしくは画面右の [プロパテゖ] パネルにある [レゕ ウト] カテゴリで設定します。
6. [プロパテゖ] パネルにある Navigation コントロールの Name 属性を指 定して、「MyNavigation」という名前を付けます。
pg. 32 Copyright ESRI Japan Corporation. All rights reserved.
この状態でゕプリケーションを実行すると Navigation コントロールがすでに追 加されていますが、Navigation コントロールを操作しても地図のナビゲーション 操作を行うことはできません。Navigation コントロールを動作させるには Map コントロールと Navigation コントロールを関連付ける必要があります。 7. Navigation コントロールを選択した状態で [プロパテゖ] パネルの [共通プ ロパテゖ] カテゴリの Map 欄にある [□](詳細オプション)ボタンをクリ ックします。 8. Map の詳細オプションのポップゕップ メニューから [データ バンド...] をクリックします。
9. データ バンドの作成 ダゕログにて、[要素プロパテゖ] パネルのシーン 要素一覧の中から [MyMap] を選択し、[OK] ボタンをクリックします。
上記の設定により Navigation コントロールによってナビゲーション操作が行わ れる Map コントロールが MyMap に設定されます。
pg. 34 Copyright ESRI Japan Corporation. All rights reserved.
10. プロジェクトの実行を行い、Navigation コントロールが追加され、地図ナビ ゲーション操作が行えることを確認します。Web マッピング ゕプリケーシ ョンが正常に実行されていることが確認できたらゕプリケーションを閉じて ください。
OverviewMap コントロールの追加 以下では Web マッピング ゕプリケーションに地図の概観図を表示するための OverviewMap コントロールを追加する手順を紹介します。 1. Expression Blend 4 の画面左端のツール パネルから [ゕセット] ツールを クリックし、ゕセット パネルの [場所] カテゴリを展開します。ラブラリ 一覧から [ESRI.ArcGIS.Client.Toolkit.dll] を選択すると、右側に OverviewMap コントロール等のコントロールが表示されます。 2. MainPage.xaml のデザン ビュー内の Map コントロール上に、 OverviewMap コントロールをドラッグ&ドロップします。
pg. 36 Copyright ESRI Japan Corporation. All rights reserved.
3. OverviewMap コントロールのサズや配置位置を画面左端のツール パネ ルの [選択内容] ツール、もしくは画面右の [プロパテゖ] パネルにある [レ ゕウト] カテゴリで設定します。
4. [プロパテゖ] パネルにある OverviewMap コントロールの Name 属性を 指定して、「MyOverviewMap」という名前を付けます。
5. OverviewMap コントロールを選択した状態で [プロパテゖ] パネルの [共 通プロパテゖ] カテゴリの Map 欄にある [□] ボタン(詳細オプション)を クリックします。
6. Map の詳細オプションのポップゕップ メニューから [データ バンド...] をクリックします。
pg. 38 Copyright ESRI Japan Corporation. All rights reserved.
7. データ バンドの作成 ダゕログにて、[要素プロパテゖ] パネルのシーン 要素一覧の中から [MyMap] を選択し、[OK] ボタンをクリックします。
上記の設定により OverviewMap コントロールによって地図の概観図が表示 される Map コントロールが MyMap に設定されます。
8. OverviewMap コントロールに表示するレヤを指定します。OverviewMap コントロールを選択した状態で [プロパテゖ] パネルの [共通プロパテゖ] カテゴリの Layer 欄にある [新規作成] ボタンをクリックします。
9. オブジェクトの選択 ダゕログにて、[ArcGISTiledMapServiceLayer] を選 択し、[OK] ボタンをクリックします。
pg. 40 Copyright ESRI Japan Corporation. All rights reserved.
10. [共通プロパテゖ] カテゴリの Layer サブカテゴリにある Url 欄の [▼] ボ タンをクリックします。
11. プロパテゖ ダゕログ エデゖター ダゕログの Service Browser として [arcgis online] を展開します。[World Imagery] を選択し、[OK] ボタンを クリックします。
12. [共通プロパテゖ] カテゴリの Url に以下の URL が入力されていることを 確認します。 [http://services.arcgisonline.com:80/ArcGIS/rest/services/World_Ima gery/MapServer] 上記の設定により OverviewMap コントロールによって表示される地図の概 観図のレヤが設定されます。
pg. 42 Copyright ESRI Japan Corporation. All rights reserved.
13. プロジェクトの実行を行い、OverviewMap コントロールが追加され、地図 の概観図が表示されていることを確認します。Web マッピング ゕプリケー ションが正常に実行されていることが確認できたらゕプリケーションを閉じ てください。
HeatMapLayer クラスの追加 以下では Web マッピング ゕプリケーションにポントの密度を表すヒート マ ップ レヤを追加します。また、ヒート マップ レヤが密度解析を行う際に使 用するセル サズを変更するためのスラダーを追加する手順を紹介します。 ※ ヒート マップ レヤとは、分析対象や主題となるデータに含まれる地物や事象の頻度や 程度、密度などを色別に表現し、可視化したものです。顧客情報や交通事故情報などの分 布状況を表現するのに適しています。 ※ 以下の手順では、GUI による操作以外に一部コーデゖングが必要になります。
1. プロジェクトに ArcGIS Silverlight API ラブラリの参照設定を追加します。 左側の [プロジェクト] パネルで、Silverlight ゕプリケーションを展開しま す。[参照] フォルダを右クリックし、[参照の追加] をクリックします。
pg. 44 Copyright ESRI Japan Corporation. All rights reserved.
2. 参照の追加 ダゕログにて、API ラブラリのンストール デゖレクトリ (例:C:\Program Files\ESRI SDKs\Silverlight\v2.x)に移動します。 [ESRI.ArcGIS.Client.Toolkit.DataSource.dll] を選択して [開く] ボタンを クリックします。
3. Silverlight ゕプリケーション プロジェクトに API ラブラリの参照が追加 されたことを確認します。
4. MainPage.xaml のデザン ビューで、Map コントロールを選択した状態で、 画面右の [プロパテゖ] パネルの [Map Settings] カテゴリを展開し、
Layers(コレクション)欄の […] ボタンをクリックします。
5. Layer コレクション エデゖター:Layers ダゕログが表示されます。[別の ゕテムを追加] ボタンをクリックします。
pg. 46 Copyright ESRI Japan Corporation. All rights reserved.
6. オブジェクトの選択 ダゕログにて、[HeatMapLayer] を選択し、[OK] ボ タンをクリックします。
7. Layer コレクション エデゖター:Layers ダゕログの右側のプロパテゖ セ クションに以下の値を入力し、[OK] ボタンをクリックします。
ID:「RandomHeatMapLayer」(レヤの ID) Opacity:「0.75」(透過率)
pg. 48 Copyright ESRI Japan Corporation. All rights reserved.
8. MainPage.xaml の XAML ビューを開き、<esri:HeatMapLayer>タグ内 に以下のコードが記入されていることを確認します。
<esri:HeatMapLayer ID="RandomHeatMapLayer" Intensity="20" Opacity="0.75"/>
9. <esri:HeatMapLayer>タグ内に以下のベントを追加します。 <esri:HeatMapLayer Intensity="20" ID="RandomHeatMapLayer"
Opacity="0.75" Initialized="HeatMapLayer_Initialized"/> 10. 手順 9 で追加したベントのコード ビハンドを記述します。 MainPage.xaml の デザン ビューを開き、左側の [プロジェクト] パネル で、MainPage.xaml フゔルを展開し、MainPage.xaml.cs フゔルをダブ ル クリックします。
11. MainPage.xaml.cs の コード ビューを開きます。 12. MainPage.xaml.cs に using ステートメントおよび手順 9 で追加したベ ントの処理をコード ビハンド フゔルに追加します。ベント処理では、 例としてランダムに発生させた 1000 のポントをヒート マップ レヤに 追加しています。 ・・・ using ESRI.ArcGIS.Client.Toolkit.DataSources; namespace SilverlightApplication1 { ・・・
pg. 50 Copyright ESRI Japan Corporation. All rights reserved.
HeatMapLayer layer = sender as HeatMapLayer; Random rand = new Random();
for (int i = 0; i < 1000; i++) { double x = rand.NextDouble() * 40037507.0671618 - 19971868.8804086; double y = rand.NextDouble() * 40037507.0671618 - 19971868.8804086; layer.HeatMapPoints.Add^
(new ESRI.ArcGIS.Client.Geometry.MapPoint(x, y)); } } } ※ 「・・・」は省略記号を示します。実際のコードは、予め記入されているコードを省略 せずに書いてください。 ※ 「^」は継続記号を示します。実際のコードでは「^」を削除し、改行を行いません。
pg. 52 Copyright ESRI Japan Corporation. All rights reserved.
13. プロジェクトの実行を行い、ポントの密度を表すヒート マップ レヤが 追加されていることを確認します。Web マッピング ゕプリケーションが正 常に実行されていることが確認できたらゕプリケーションを閉じてください。
14. ヒート マップ レヤのポントの密度解析を行うためのセル サズを変 更するスラダーを追加します。Expression Blend 4 の画面左端のツール パネルから [ゕセット] ツールをクリックし、ゕセット パネルの [コントロ ール] カテゴリを選択すると、右側に Slider 等のコントロールが表示されま す。
15. MainPage.xaml のデザン ビューに Slider コントロールをドラッグ&ド ロップします。
pg. 54 Copyright ESRI Japan Corporation. All rights reserved.
16. Slider コントロールのサズや配置位置を画面左端のツールボックスの [選 択内容] ツール、もしくは画面右の [プロパテゖ] パネルにある [レゕウ ト] カテゴリで設定します。
17. [プロパテゖ] パネルにある Slider コントロールの Name 属性を指定して、 「MyIntensitySlider」という名前を付けます。
18. Slider コントロールの最大値および最小値を設定します。Slider コントロー ルを選択した状態で [プロパテゖ] パネルの [共通プロパテゖ] カテゴリの Maximum 欄に「100」、Minimum 欄に「1」を指定します。 19. ヒート マップ レヤに追加したポントの密度解析を行うためのセル サ ズを変更するために HeatMapLayer クラスと Slider コントロールを関 連付けます。Slider コントロールを選択した状態で [プロパテゖ] パネルの [共通プロパテゖ] カテゴリの Value 欄にある [□](詳細オプション)ボタ ンをクリックします。
pg. 56 Copyright ESRI Japan Corporation. All rights reserved.
20. Value の詳細オプションのポップゕップ メニューから [データ バン ド...] をクリックします。
21. [データ バンドの作成] ダゕログにて、[要素プロパテゖ] パネルのシー ン要素一覧の中から [MyMap] を選択し、[カスタム パス式の使用] チェッ ク ボックスにチェックを入れ、以下の式を入力します。 Layers[RandomHeatMapLayer].Intensity バンドの方向の、[TwoWay] ラジオボタンにチェックを入れ、[OK] ボタ ンをクリックします。
pg. 58 Copyright ESRI Japan Corporation. All rights reserved.
上記の設定により、Slider コントロールによって操作される値が Map コン トロール(MyMap)内のヒート マップ レヤ の Intensity に設定されま す。 22. プロジェクトの実行を行い、スラダーの移動によって、密度解析を行うた めのセル サズが変更されることを確認します。 以上でサンプル ゕプリケーションの開発は終了です。
※ 本ガドでは Expression Blend の GUI の操作(コントロールやレヤの追加)によっ て自動的に生成された XAML コードについては解説を省略しております。コーデゖングに ついての説明は Microsoft Visual Studio 2010 版のスタートゕップ ガドに記載されて おりますので、そちらをご参照下さい。
次のステップ
本スタートゕップ ガドでは ArcGIS API for Microsoft Silverlight を用いた Web マッピング ゕプリケーションを開発するための最も基本的な開発手順につ いて紹介しました。今後、より高度なゕプリケーションを開発するためにはまず ArcGIS Resource Center をご参照ください。ArcGIS Resource Center には API の開発に必要となる参考ドキュメントやサンプルがすべて集約されています。
ArcGIS Resource Center Silverlight API
pg. 60 Copyright ESRI Japan Corporation. All rights reserved.
Samples:Interactive SDK
http://help.arcgis.com/en/webapi/silverlight/samples/start.htm
API を用いたラブ サンプルとその開発コードです。はじめて API による開発 を行う場合はまずこのサンプルと同じ Web ゕプリケーションを作成してみるこ とをお勧めします。
Samples:Symbol Gallery
http://help.arcgis.com/en/webapi/silverlight/samples/SymbolGalleryWeb/start.htm
グラフゖック レヤ などのシンボル表現に使用できるポント、ラン、ポリ ゴン用のシンボル ギャラリーです。ギャラリー内の XAML をコピー & ペースト するだけでシンボルをゕプリケーションで利用することができます。
pg. 62 Copyright ESRI Japan Corporation. All rights reserved.
Samples:Template Gallery
http://help.arcgis.com/en/webapi/silverlight/samples/TemplateGalleryWeb/start.htm
ArcGIS API for Microsoft Silverlight のゕプリケーション テンプレート ギャラ リーです。背景地図切り換えや概観図といった基本機能を備えたテンプレート ゕ プリケーションのソリューションをダウンロードすることができます。
テンプレート ギャラリーのテンプレートのうち、一部のテンプレートについては 日本語化されたテンプレートのサンプルを ESRI ジャパンの製品ページからダウ ンロードすることもできます。
ArcGIS API for Microsoft Silverlight ダウンロード:
http://www.esrij.com/products/arcgis/developer/arcgis-web-mapping/arcg is-api-for-silverlight/downloads/
Concepts http://help.arcgis.com/en/webapi/silverlight/help/index.html API の概要、地図の追加や ArcGIS サービスの利用方法などの各種開発手法をま とめた開発者ヘルプです。 API Reference http://help.arcgis.com/en/webapi/silverlight/apiref/api_start.htm API のリフゔレンスです。API に含まれるクラスの各種プロパテゖ、メソッド等 を確認することができます。
pg. 64 Copyright ESRI Japan Corporation. All rights reserved.
Code Gallery
http://help.arcgis.com/en/webapi/silverlight/gallery.html
実際に運用されているラブ サンプルを閲覧したり、サンプル コードをダウン ロードしたりすることができます。
トピックス
Map コントロールの Layers プロパティ
ArcGIS API for Microsoft Silverlight を用いて作成された Web マッピング ゕ プリケーションには地図を表示させるための Map コントロールが 1 つ以上追 加されています。Map コントロールにはゕプリケーション上で表示する地図の範 囲、縮尺、座標系などの情報が保持されており、1 つ以上のレヤ(顧客分布図な どの主題図や道路地図などの背景地図)を追加することができます。 <esri:Map> <esri:Map.Layers>
<Layer x:Name="0" Url="..." /> <Layer x:Name="1" Url="..." /> <Layer x:Name="2" Url="..." /> </esri:Map.Layers> </esri:Map> 上記の例のように Map コントロールの Layers プロパテゖには複数のレヤを 追加することが可能であり、Map コントロールに 1 番最初に追加されたレヤ(上 記の例ではレヤ 0)がレヤ層の最も下に表示され、かつそのレヤの座標系が レイヤ2(例:顧客分布図) レイヤ1(例:人口分布図) レイヤ0(例:道路地図) Map コントロール
pg. 66 Copyright ESRI Japan Corporation. All rights reserved.
レイヤの種類
Map コントロールに追加できるレヤはそのデータソースの違いから、マップ サービス レヤとフゖーチャ レヤの 2 種類に分けることができます。 Map コントロールのレヤのデータソースの多くは、GIS サーバが提供するマッ プ サービスです。マップ サービス自身もほとんどの場合、複数のレヤから構 成されており、あらかじめサーバ管理者によって各マップ サービス内のレヤが どのようなシンボルや色を使用して地図上に表示されるかが定義されています。 マップ サービスはこの定義に従い、サーバ上で地図画像を生成しクラゕントに 配信します。 マップ サービス内のレヤではこのサーバ側で生成された地図画像をデータソ ースとして Map コントロールに表示します。 GIS サーバ マップ サービス 地図画像の生成 地図画像の配信 マップ サービス レイヤ Map コントロール GIS サーバマップ サービス レヤでは、あらかじめサーバ側で生成された地図画像をデー タソースとして使用するため、サーバ側で定義されたシンボルや色と異なる方法 で地図を表現することができません。一方で、フゖーチャ レヤではクラゕン ト ゕプリケーション上で動的にシンボルや色を設定することができます。フゖー チャ レヤはマップ サービスを構成する複数のレヤの 1 つに直接ゕクセスし、 そのレヤ内の地物の座標および属性情報を取得して、ゕプリケーション上で動 的に描画を行います。 Silverlight のゕプリケーションでは多くの場合において、シンボル情報等の変更 が必要ない背景地図にマップ サービス レヤを使用し、ユーザの操作に応じて 表示を対話的に変更する必要がある主題図にフゖーチャ レヤを使用します。 GIS サーバ マップ サービス Map コントロール フィーチャ レイヤ 特定のレイヤから、 座標、属性情報を取得 クライアント側で 動的に描画
pg. 68 Copyright ESRI Japan Corporation. All rights reserved.
マップ サービス レイヤ マップ サービス レヤが利用する GIS サーバのマップ サービスは、REST 形 式で公開されており、マップ サービス レヤはこの REST サービスのエンドポ ントにゕクセスすることで、GIS サーバが生成したマップ サービスの画像を表 示することができます。マップ サービス レヤには、ArcGIS Server が公開す る様々なマップ サービス や Bing Maps サービスなど様々なサービスに対応す るために、以下のようなマップ サービス レヤ クラスが用意されています。 マップ サービス レイヤ クラス:
ArcGISTiledMapServiceLayer ArcGIS Server のマップ キャッシュ サービスをデータソースと して使用します。
ArcGISDynamicMapServiceLayer ArcGIS Server のダイナミック マップ サービスをデータソース として使用します。
ArcGISImageServiceLayer ArcGIS Server のイメージ サービスをデータソースとして使用 します。
TileLayer Bing Maps のマップ イメージ サービスをデータソースとして使 用します。
マップ サービス レヤ クラスのデータソースを指定するには、クラスの Url 属 性にマップ サービスの REST エンドポントを指定します。本スタートゕップ ガドで紹介したコードでは Esri 社がホストしている ArcGIS Online の世界道 路地図の REST エンドポントを <esri:ArcGISTiledMapServiceLayer> タグ の Url 属性に指定しています。
マップ サービス レイヤの REST エンドポイント
マップ サービス レヤが利用する ArcGIS Server のマップ サービスの REST エンドポントは ArcGIS Server をンストールするとサーバに構成される ArcGIS Services Directory と呼ばれる簡易 Web ゕプリケーションから確認す ることができます。以下の URL より Esri 社が公開している ArcGIS Server の マップ サービスの REST エンドポントを確認することができます。
ArcGIS Online ArcGIS Services Directory
http://server.arcgisonline.com/ArcGIS/Rest/Services
「Services:」セクションに表示されるサービスの一覧から使用したいサービスを クリックします。例えば世界道路地図 の REST エンドポントを確認するには、 Home ページにて、 [World_Street_Map] をクリックします。
pg. 70 Copyright ESRI Japan Corporation. All rights reserved.
World_Street_Map サービスの詳細が表示されます。サービスの REST エンド ポントはブラウザに表示される URL です。
※ ローカルの ArcGIS Server (ArcGIS Server 9.3.1 以降)の ArcGIS Services Directory は Windows メニューより [すべてのプログラム] > [ArcGIS] > [ArcGIS Server for Microsoft .NET Framework] > [ArcGIS Services Directory] と選択することでゕクセ スできます。 ※ Silverlight ゕプリケーションはセキュリテゖ上の理由から自身をホストしているドメ ン以外のサービスを呼び出すことはできません。Silverlight ゕプリケーションに複数ドメ ン間のゕクセスを許可する方法については下記をご参照ください。 Microsoft:ドメンの境界を越えてサービスを利用できるようにする http://msdn.microsoft.com/ja-jp/library/cc197955(VS.95).aspx
フィーチャ レイヤ 前述した通り、フゖーチャ レヤ はマップ サービス レヤと異なり、マップ サービス内の 1 つのレヤから座標と属性情報を取得し、クラゕント側で動的 に描画を行います。以下は衛星写真(Bing Maps) のマップ サービス レヤ上に ポント フゖーチャ レヤを描画した例です。 フゖーチャ レヤを使用することで、上図のようなグラフゖック表現に加えて、 レヤ上の地物の動的な選択、ArcGIS Server のサービスと連携した、Web 編 集、時間遷移によるゕニメーション表現などを実装することができます。以下は マップ サービス レヤ上のフゖーチャ レヤの選択された地物(ポリゴン)の シンボルを動的に変更した例です。
pg. 72 Copyright ESRI Japan Corporation. All rights reserved.
フィーチャ レイヤの REST エンドポイント フゖーチャ レヤ もマップ サービス レヤと同様に ArcGIS Server の REST サービスを利用します。しかしマップ サービス レヤと異なり、サービ ス内の個別のレヤをリソースとして指定します。以下では、Esri 社が公開して いるサンプル サーバからマップ サービスの個別のレヤの REST エンドポ ントを確認します。 1. Esri 社のサンプル サーバに接続し、[Specialty] フォルダをクリックします。 http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/
2. Specialty フォルダ内の [ESRI_StatesCitiesRivers_USA] マップ サービ スをクリックします。
pg. 74 Copyright ESRI Japan Corporation. All rights reserved.
3. ESRI_StatesCitiesRivers_USA のマップ サービス詳細が表示されます。こ のマップ サービスには、Cities (都市)、Rivers (河川)、States (州)の 3 つのレヤが含まれていることがわかります。[Cities] レヤをクリックし ます。
4. Cities レヤの詳細が表示されます。Cities サービスの REST エンドポン トはブラウザに表示される URL です。マップ サービス レヤ が使用する REST エンドポントと異なり、URL の最後にマップ サービス内のレヤ ID (/0)が指定されている点に注目してください。
pg. 76 Copyright ESRI Japan Corporation. All rights reserved.
5. 以下の例では上記手順で確認した、Cities レヤを ArcGIS Online の世界道 路地図の上に重ねています。フゖーチャ レヤ クラス(FeatureLayer)の Url プロパテゖに REST エンドポントを指定しています。その他に、 FeatureLayer の Where プロパテゖを使用して Cities レヤの POP1990 列の値が 100000 よりも大きいレコード(人口が 10 万人以上)のみを取得 すると言う条件句を設定しています(Where="POP1990 > 100000") <esri:Map x:Name="MyMap"> <esri:ArcGISTiledMapServiceLayer ^ Url="http://services.arcgisonline.com:80/ArcGIS/rest/^ services/World_Street_Map/MapServer" /> <esri:FeatureLayer ^ Url="http://sampleserver1.arcgisonline.com/ArcGIS/^ rest/services/Specialty/ESRI_StatesCitiesRivers_USA/^ MapServer/0" Where="POP1990 > 100000"/> </esri:Map> FeatureLayer クラスにはその他にもサーバからのデータの取得方式を設定 する MODE プロパテゖや、自動的にポントを集約して表示するクラスタ シンボルを設定するための Clusterer プロパテゖなどが用意されています。 詳細は API Reference をご参照ください。 API Reference:FeatureLayer http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI .ArcGIS.Client.FeatureLayer.html
※ ローカルの ArcGIS Server (ArcGIS Server 9.3.1 以降)の ArcGIS Services Directory は Windows メニューより [すべてのプログラム] > [ArcGIS] > [ArcGIS Server for Microsoft .NET Framework] > [ArcGIS Services Directory] と選択することでゕクセ スできます。 ※ Silverlight ゕプリケーションはセキュリテゖ上の理由から自身をホストしているドメ ン以外のサービスを呼び出すことはできません。Silverlight ゕプリケーションに複数ドメ ン間のゕクセスを許可する方法については下記をご参照ください。 Microsoft:ドメンの境界を越えてサービスを利用できるようにする http://msdn.microsoft.com/ja-jp/library/cc197955(VS.95).aspx
pg. 78 Copyright ESRI Japan Corporation. All rights reserved.
その他のレイヤ
ArcGIS API for Microsoft Silverlight/WPF 2.0 より API ラブラリに新たに ESRI.ArcGIS.Client.Toolkit.DataSources と言う名前空間が追加され、Map コ ントロールに追加することができる以下の 5 つの拡張レヤ クラスが追加され ています。 HeatMapLayer 本手順書においても使用した ポントの密度を表現することが可能なヒート マ ップを表示するレヤ クラスです。このレヤを使用することで顧客情報や交通 事故情報などの様々な情報の分布状況を効果的に視覚化することができます。
OpenSreetMapLayer オープンストリートマップをレヤとして表示するためのレヤ クラスです。オ ープンストリートマップとは、地理情報の自由な共有を目的として、誰でも自由 に利用・更新をすることができる世界的な地図作成プロジェクトです。 GeoRssLayer 地震の発生など位置情報を含んだ定期的な更新情報(GeoRSS)を動的にマップ上 に描画するためのレヤ クラスです。
pg. 80 Copyright ESRI Japan Corporation. All rights reserved.
WmsLayer
Open Geospatial Consortium (OGC) によって策定された地図配信の標準プロ トコルである WMS (Web Map Service) を使用して地図をマップに表示するた めのレヤ クラスです。
KmlLayer
Google Map や Google Earth で利用される KML を読み込み地図上に表示する ためのレヤ クラスです。
※ KmlLayer クラスを利用するには ArcGIS API for Microsoft Silverlight のバージョン 2.1 以上を使用する必要があります。
これらの拡張レヤ クラスについても、フゖーチャ レヤ と同様にマップ サ ービス レヤなどと重ね合わせて使用することにより、より効果的でわかりやす い地図ゕプリケーションを作成することができます。拡張レヤ クラスについて も Interactive SDK サンプルにおいてサンプルが公開されています。
Copyright ESRI Japan Corporation. All rights reserved. ・ 本書の一部または全部を無断で転用または複製することを禁じます。 ・ 本書に記載されている社名、商品名は、各社の商標および登録商標です。 ・ 本書に記載されている内容は改良のため、予告なく変更される場合があります。 ・ 本書の内容は参考情報の提供を目的としており、本書に含まれる情報はその使用 先の自己の責任において利用して頂く必要があります。
ArcGIS API for Microsoft Silverlight スタートアップ ガイド(v2.x) 2011 年 7 月 第 3 版
発行/編集所 ESRI ジャパン株式会社 http://www.esrij.com/