• 検索結果がありません。

目次 はじめに... 2 このスタートゕップガドについて... 2 ArcGIS API for Microsoft Silverlight とは... 2 ArcGIS API for Microsoft Silverlight の開発環境... 3 Web マッピングアプリケーションの開発...

N/A
N/A
Protected

Academic year: 2022

シェア "目次 はじめに... 2 このスタートゕップガドについて... 2 ArcGIS API for Microsoft Silverlight とは... 2 ArcGIS API for Microsoft Silverlight の開発環境... 3 Web マッピングアプリケーションの開発..."

Copied!
91
0
0

読み込み中.... (全文を見る)

全文

(1)

ArcGIS API for Microsoft Silverlight スタートアップ ガイド

Microsoft Visual Studio 2010 用

(2)

目次

はじめに... 2

このスタートゕップ ガ゗ドについて ... 2

ArcGIS API for Microsoft Silverlight とは ... 2

ArcGIS API for Microsoft Silverlight の開発環境 ... 3

Web マッピング アプリケーションの開発 ... 4

API ラ゗ブラリの゗ンストール ... 4

Web マッピング ゕプリケーションの開発 ... 14

API ラ゗ブラリ参照の追加 ... 14

Map コントロールの追加 ... 20

Navigation コントロールの追加 ... 31

OverviewMap コントロールの追加 ... 40

HeatMapLayer クラスの追加 ... 48

次のステップ ... 65

ArcGIS Resource Center Silverlight API ... 65

トピックス ... 71

Map コントロールの Layers プロパテゖ ... 71

(3)

マップ サービス レ゗ヤの REST エンドポ゗ント ... 75

フゖーチャ レ゗ヤ ... 77

フゖーチャ レ゗ヤの REST エンドポ゗ント ... 78

その他のレ゗ヤ ... 84

(4)

ArcGIS API for Microsoft Silverlight スタートアップ ガイド(バージョン 2.x)

Microsoft Visual Studio 2010 用

(5)

はじめに

このスタートアップ ガイドについて

このスタートゕップ ガ゗ドは初めて 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:

http://www.esrij.com/products/arcgis/developer/arcgis-web-mapping/

(6)

ArcGIS API for Microsoft Silverlight の開発環境

本ガ゗ドでは以下の環境にて ArcGIS API for Microsoft Silverlight を用いた Web マッピング ゕプリケーションの開発手順を紹介します。本ガ゗ドの手順を実 行する前に以下の環境がご使用のマシンに適切にセットゕップされている必要が あります。

Microsoft Visual Studio 2010

+ Microsoft Silverlight 4 Tools for Visual Studio 2010

+ Microsoft Expression Blend 4 SDK for Silverlight

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/

(7)

Web マッピング アプリケーションの開発

API ライブラリのインストール

ArcGIS API for Microsoft Silverlight を用いて Web マッピング ゕプリケーシ ョンを開発するには、まず API ラ゗ブラリを入手する必要があります。以下の手 順に従い ArcGIS Resource Center から API を゗ンストールしてください(以 下の手順はバージョン 2.0 のものです)。

1. ArcGIS Resource Center にゕクセスします。

ArcGIS Resource Center:

http://resources.arcgis.com/ja/content/

(8)

ページ左下の ArcGIS Products 一覧から [Web] または [Server] をクリ

ックします。ここでは、[Server] をクリックします。

2. ArcGIS Server の製品ページに移動します。ページ左の [Web APIs] をクリ ックします。

3. ArcGIS Web Mapping のページに移動します。[ArcGIS API for Microsoft Silverlight/WPF] または画像をクリックします。

(9)

4. ArcGIS API for Microsoft Silverlight のページに移動します。ページ内の [download] リンクをクリックします。

5. ページの手順に従いダウンロードを行います。まず [Sign in] をクリックし ます。

6. ESRI グローバ ルゕカウントを使用してログ゗ンします(グローバルゕカウ ントをお持ちでない場合は、[Create a new ESRI Global Account] をクリ ックしてゕカウントを作成してください)。

(10)

7. 手順 (6) のページに戻り、[ArcGIS API for Microsoft Silverlight download page] をクリックします。

8. ラ゗センス使用許諾条項に同意する場合は [I agree to the terms and conditions] のチェックボックスをオンにして [Submit] をクリックします。

(11)

9. [Download] をクリックし、゗ンストールを開始します。

10. フゔ゗ルのダウンロード – セキュリテゖの警告ダ゗ゕログ ボックスにて [実行] ボタンをクリックします。

11. [ArcGISSilverlightWPF2x.exe] が一時フォルダにダウンロードされます。

(12)

12. Internet Explorer – セキュリテゖの警告ダ゗ゕログ ボックスにて [実行す る] ボタンをクリックします。

13. [Next] をクリックします。

(13)

14. 使用許諾契約書に同意する場合は [I accept the license agreement] を選 択し、[Next] をクリックします。

(14)

15. API ラ゗ブラリの゗ンストール デゖレクトリと゗ンストールするコンポー ネントを選択し、[Next] をクリックします。

現在、日本国内では、API とともに提供されるゕプリケーション テンプレート

([Expression Blend Templates] および [Visual Studio Templates] )はサポートされ ておりません。ゕプリケーション テンプレートについては、次のステップの 「Samples:

Template Gallery」をご参照ください。

(15)

16. [Next] をクリックします。

17. ゗ンストールが開始されます。

(16)

18. ゗ンストールが完了したら [Finish] をクリックします。

(17)

Web マッピング アプリケーションの開発

以下の手順では Visual Studio 2010 を用いて ArcGIS API for Microsoft Silverlight を使用した Web マッピング ゕプリケーションのサンプルを作成し ます(※本スタートゕップ ガ゗ドではコード ビハ゗ンドのプログラミング言語 として C# を使用します)。

API ライブラリ参照の追加

1. Visual Studio 2010 を起動し、[フゔ゗ル] > [新規作成]を選択し、[プロジ ェクト] をクリックします。

(18)

2. 新しいプロジェクト ダ゗ゕログにて、[゗ンストールされたテンプレート] セ クションから [Visual C#] > [Silverlight] を選択し、[Silverlight ゕプリケ ーション] を選択します。必要に応じて [名前]、[場所](ソリューションの 格納デゖレクトリ)、[ソリューション名] を変更して [OK] ボタンをクリッ クします。

(19)

3. 新しい Silverlight ゕプリケーション ダ゗ゕログにて [Silverlight ゕプリ ケーションを新しい Web サ゗トでホストする] にチェックが入っている事 を確認して [OK] ボタンをクリックします。

(20)

4. 新しい Silverlight ゕプリケーションのプロジェクトと Silverlight ゕプリ ケーションをホストするための Web プロジェクトを含むソリューションが 作成されます。

(21)

5. ArcGIS API for Microsoft Silverlight の一部の機能を使用するには、プロジ ェクトに System.Windows.Controls.Data.Input.dll の参照設定を追加す る必要があります。ソリューション エクスプローラーから Silverlight ゕプ リケーション プロジェクトを展開します。[参照設定] を右クリックし [参照 の追加...] をクリックします。

(22)

6. 参照の追加ダ゗ゕログにて [.NET] タブを選択し、表示されるコンポーネン トの一覧から [System.Windows.Controls.Data.Input] を選択して [OK]

ボタンをクリックします。

7. ソリューション エクスプローラーから Silverlight ゕプリケーション プロ ジェクトにラ゗ブラリの参照が追加されたことを確認します。

(23)

Map コントロールの追加

以下では Web マッピング ゕプリケーション上に地図を表示させるために Map コントロールを追加する手順を紹介します。

1. ArcGIS for Microsoft Silverlight API ラ゗ブラリの参照設定を追加します。

ソリューション エクスプローラーから、[参照設定] を右クリックし [参照の 追加...] をクリックします。

(24)

2. 参照の追加ダ゗ゕログにて [.NET] タブを選択し、[ESRI.ArcGIS.Client]

を選択して [OK] ボタンをクリックします。API ラ゗ブラリは、API ラ゗ブ ラリの゗ンストール デゖレクトリ(例:C:\Program Files\ESRI

SDKs\Silverlight\v2.x)に格納されています。

3. ソリューション エクスプローラーから Silverlight ゕプリケーション プロ ジェクトに API ラ゗ブラリの参照が追加されたことを確認します。

(25)

4. MainPage.xaml を開き [ツールボックス] の [ESRI Silverlight API] セク ションから Map コントロールを [デザ゗ン] ビューにドラッグ&ドロップ で追加します。

(26)

[XAML] ビューに以下のコードが自動的に記述されます。

・・・

xmlns:esri=http://schemas.esri.com/arcgis/client/2009>

・・・

<esri:Map Background="White" HorizontalAlignment="Left"

Margin="293,178,0,0" Name="map1"

VerticalAlignment="Top" />

・・・

上記のコードでは行 8 (xmlns:esri=・・・)において、esri と言う名称で API ラ゗ブラリへの参照が宣言されました。これにより、esri という名前空 間で API ラ゗ブラリ内のコントロールを参照することができるようになり ます。

API ラ゗ブラリ内の Map コントロールは、「esri:Map」と言う形式で参照さ れ、ページ内に追加されています。また、Map コントロールの Name 属性 に 「map1」 と言う値が指定され Map コントロールの名前が設定されます。

(27)

5. Map コントロールの表示サ゗ズを変更します。Map コントロールを選択し た状態でプロパテゖ ウゖンドウにて、 Map コントロールのレ゗ゕウト プ ロパテゖの [Width] と [Height] を「Auto」に、[HorizontalAlignment] と [VerticalAlignment] を「Stretch」 に、そして [Margin] を「0」に設定し ます。

[XAML] ビューにプロパテゖで設定した内容のコードが以下のように記述さ れます。

<esri:Map Background="White" HorizontalAlignment="Stretch"

Name="map1" VerticalAlignment="Stretch" Margin="0">

(28)

6. 追加した Map コントロールで表示するレ゗ヤを追加します。プロパテゖ ウ ゖンドウにて Map コントロールの [Layers] プロパテゖを指定します。

[...] ボタンをクリックします。

7. コレクション エデゖター ダ゗ゕログが表示されます。 [項目の選択] で追加 するマップの種類を指定します。ここでは、 [ArcGISTiledMapServiceLayer]

を選択し、[追加] ボタンをクリックします。

(29)

8. [プロパテゖ] で [Url] の [...] ボタンをクリックします。

(30)

9. プロパテゖ エデゖター ダ゗ゕログが表示されます。[arcgis online] をクリ ックすると、利用可能なサービスが表示されるので(サービスが表示される まで時間がかかる場合があります)、 [World Street Map] を選択し [OK] ボ タンをクリックします。コレクション エデゖター ダ゗ゕログも [OK] ボタ ンをクリックして閉じます。

(31)

[XAML] ビューにプロパテゖで設定した内容のコードが以下のように記述さ れます。

<esri:ArcGISDynamicMapServiceLayer

Url="http://services.arcgisonline.com:80/ArcGIS/rest/^

services/ World_Street_Map/MapServer" />

「^」は継続記号を示します。実際のコードでは「^」を削除し、改行を行いません。

Map コントロールの Layers プロパテゖについての詳細は「トピックス:Map コントロ ールの Layers プロパテゖ」を参照してください。

(32)

10. プロジェクトをデバッグ実行します。Visual Studio 2010 のメニューから [デバッグ] を選択し、[デバッグ開始] をクリックします。

デバッグが無効な場合は表示されるダ゗ゕログにて [デバッグを有効にする ために Web.config フゔ゗ルを変更する] が選択されていることを確認して [OK] ボタンをクリックします。

(33)

デバッグ実行が開始され、Web マッピング ゕプリケーションが開始されま す。

この時点でマウスによるドラッグやマウス ホ゗ールで地図のナビゲーショ ン操作が可能です。Web マッピング ゕプリケーションが正常に実行されて いることが確認できたらゕプリケーションを閉じて Visual Studio のデバッ グを停止します。

(34)

Navigation コントロールの追加

以下では Web マッピング ゕプリケーションに地図のナビゲーション操作を行 うための Navigation コントロールを追加する手順を紹介します。

1. ArcGIS for Microsoft Silverlight API ラ゗ブラリの参照設定を追加します。

ソリューション エクスプローラーから、[参照設定] を右クリックし [参照の 追加...] をクリックします。

(35)

2. 参照の追加ダ゗ゕログにて [.NET] タブを選択し、

ESRI.ArcGIS.Client.Toolkit を選択して [OK] ボタンをクリックします。

API ラ゗ブラリは、API ラ゗ブラリの゗ンストール デゖレクトリ(例:

C:\Program Files\ESRI SDKs\Silverlight\v2.x)に格納されています。

3. ソリューション エクスプローラーから Silverlight ゕプリケーション プロ ジェクトに API ラ゗ブラリの参照が追加されたことを確認します。

(36)

4. MainPage.xaml を開き [ツールボックス] の [ESRI Silverlight API] セク ションから Navigation コントロールを [デザ゗ン] ビューにドラッグ&ド ロップで追加します。

[XAML] ビューに以下のコードが自動的に記述されます。

<esri:Navigation HorizontalAlignment="Left" Margin="172,200,0,0"

Name="navigation1" VerticalAlignment="Top" />

(37)

上記のコードでは esri 名前空間の Navigation コントロールが追加され、Name 属性に「navigation1」という名前が設定されています。

(38)

5. [VerticalAlignment] および [HorizontalAlignment] を指定して

Navigation コントロールのゕプリケーション上の配置位置を左下に設定し、

[Margin] を指定して周囲のオブジェクトからのマージンを設定します。

(39)

[XAML] ビューにプロパテゖで設定した内容のコードが以下のように記述されま す。

<esri:Navigation HorizontalAlignment="Left" Margin="10"

Name="navigation1" VerticalAlignment="Bottom" />

この状態でゕプリケーションを実行すると Navigation コントロールは追加され ていますが、Navigation コントロールを操作しても地図のナビゲーション操作を 行うことはできません。Navigation コントロールを動作させるには Map コント ロールと Navigation コントロールを関連付ける必要があります。

(40)

6. Navigation コントロールの Map プロパテゖの右側の [□] ボタン(詳細プ ロパテゖ)をクリックし [データ バ゗ンドの適用...] をクリックします。

(41)

7. ソースに [ElementName] > [map1] を指定します。

[XAML] ビューに上記で設定した内容のコードが以下のように記述されます。

<esri:Navigation HorizontalAlignment="Left" Margin="10"

Name="navigation1" VerticalAlignment="Bottom"

Map="{Binding ElementName=map1}" />

上記の記述により、Navigation コントロールによってナビゲーション操作が行わ れる Map コントロールが map1 に設定されます。

(42)

8. デバッグ実行を行い、Navigation コントロールが追加され、地図ナビゲーシ ョン操作が行える事を確認します。Web マッピング ゕプリケーションが正 常に実行されていることが確認できたらゕプリケーションを閉じて Visual Studio のデバッグを停止します。

(43)

OverviewMap コントロールの追加

以下では Web マッピング ゕプリケーションに地図の概観図を表示するための OverviewMap コントロールを追加する手順を紹介します。

以下の手順では、GUI による操作以外に一部コーデゖングが必要になります。

1. MainPage.xaml を開き [ツールボックス] の [ESRI Silverlight API] セク ションから OverviewMap コントロールを [デザ゗ン] ビューにドラッグ&

ドロップ で追加します。

(44)

[XAML] ビューに自動的に以下のコードが記述されます。

<esri:OverviewMap HorizontalAlignment="Left"

Margin="219,106,0,0" Name="overviewMap1"

VerticalAlignment="Top" />

上記のコードでは esri 名前空間の OverviewMap コントロールが追加され、

Name 属性に「overviewMap1」という名前が設定されています。

(45)

2. OverviewMap コントロールのレ゗ゕウトを以下のように指定します。

(46)

[XAML] ビューにプロパテゖで設定した内容のコードが以下のように記述されま す。

<esri:OverviewMap HorizontalAlignment="Right"

Margin="0,8,8,0" Name="overviewMap1"

VerticalAlignment="Top" Width="100" Height="100" />

上記のコードでは、OverviewMap コントロールの幅と高さを 100 に設定し、位 置を右上から 8 離れた場所に表示します。

この状態でゕプリケーションを実行しても何も表示されません。OverviewMap コントロールを動作させるには Map コントロールと OverviewMap コントロ ールを関連付ける必要があります。

(47)

3. Map プロパテゖの [□] ボタン(詳細プロパテゖ)をクリックし [データ バ

゗ンドの適用...] をクリックします。

(48)

4. ソースに [ElementName] > [map1] を指定します。

[XAML] ビューに上記で設定した内容のコードが以下のように記述されます。

<esri:OverviewMap HorizontalAlignment="Right"

Margin="0,8,8,0" Name="overviewMap1"

VerticalAlignment="Top" Width="100" Height="100"

Map="{Binding ElementName=map1}" />

(49)

上記の記述により、OverviewMap コントロールによって地図の概観図が表 示される Map コントロールが map1 に設定されます。

5. 概観図に表示するレ゗ヤを OverviewMap コントロールに追加します。プロ パテゖなどの GUI 操作での指定ができないため、MainPage.xaml に直接コ ードを記述します。4 で追加したコードの「... Map=”{Binding

ElementName=map1}” />」の「/」を削除して OverviewMap タグ内に 子要素として ArcGISTiledMapServiceLayer クラスを追加します。

<esri:OverviewMap ... Map="{Binding ElementName=map1}" >

<esri:ArcGISTiledMapServiceLayer

Url="http://services.arcgisonline.com:80/ArcGIS/rest/^

services/World_Imagery/MapServer" />

</esri:OverviewMap>

「^」は継続記号を示します。実際のコードでは「^」を削除し、改行を行いません。

(50)

上記の記述により、OverviewMap コントロールによって表示される地図の 概観図のレ゗ヤが設定されます。

6. デバッグ実行を行い、OverviewMap コントロールが追加され、地図の概観 図が表示されている事を確認します。Web マッピング ゕプリケーションが正 常に実行されていることが確認できたらゕプリケーションを閉じて Visual Studio のデバッグを停止します。

(51)

HeatMapLayer クラスの追加

以下では Web マッピング ゕプリケーションにポ゗ントの密度を表すヒート マ ップ レ゗ヤを追加します。また、ヒート マップ レ゗ヤが密度解析を行う際に使 用するセル サ゗ズを変更するためのスラ゗ダーを追加する手順を紹介します。

ヒート マップ レ゗ヤとは、分析対象や主題となるデータに含まれる地物や事象の頻度や 程度、密度などを色別に表現し、可視化したものです。顧客情報や交通事故情報などの分 布状況を表現するのに適しています。

以下の手順では、GUI による操作以外に一部コーデゖングが必要になります。

1. ArcGIS for Microsoft Silverlight API ラ゗ブラリの参照設定を追加します。

ソリューション エクスプローラーから、[参照設定] を右クリックし [参照の 追加...] をクリックします。

(52)

2. 参照の追加ダ゗ゕログにて [.NET] タブを選択し、

ESRI.ArcGIS.Client.Toolkit.DataSources を選択して [OK] ボタンをクリ ックします。API ラ゗ブラリは、API ラ゗ブラリの゗ンストール デゖレクト リ(例:C:\Program Files \ESRI SDKs\Silverlight\v2.x)に格納されてい ます。

3. ソリューション エクスプローラーから Silverlight ゕプリケーション プロ ジェクトに API ラ゗ブラリの参照が追加されたことを確認します。

(53)

4. MainPage.xaml を開き、HeatMapLayer クラスを追加します。

HeatMapLayer クラスを追加するには、XAML ビューに直接下記のコードを 記述します。

<esri:HeatMapLayer>

</esri:HeatMapLayer>

Map コントロールに HeatMapLayer クラスが追加されます。

(54)

5. HeatMapLayer クラスのプロパテゖを指定します。Map コントロールの Layers プロパテゖの [...] ボタンをクリックします。

(55)

6. コレクション エデゖターが表示されます。 [HeatMapLayer] をクリックし てプロパテゖを指定します。

ID: 「RandomHeatMapLayer」(レ゗ヤの ID)

Opacity: 「0.75」(透過率)

Intensity: 「20」(密度解析を行うためのセル サ゗ズを定義する値)

(56)

[XAML] ビューに上記で設定した内容のコードが以下のように記述されます。

<esri:HeatMapLayer ID="RandomHeatMapLayer" Intensity="20"

Opacity="0.75" />

7. ヒート マップ レ゗ヤ に表示するポ゗ントを追加する処理を

HeatMapLayer クラスの初期化゗ベントに記述します。HeatMapLayer クラ スの [Initialized] ゗ベントをダブルクリックします。

(57)

8. MainPage.xaml.cs に [HeatMapLayer_Initialized] ゗ベントが追加されま す。Silverlight ゕプリケーションでは「.xaml」フゔ゗ルにゕプリケーショ ンの外観を記述し、コード ビハ゗ンド フゔ゗ルと呼ばれるフゔ゗ル(C#の 場合は「.cs」、VB.NET の場合は「.vb」フゔ゗ル)にゕプリケーションのロ ジックを記述します。HeatMapLayer 型を使用するため、

ESRI.ArcGIS.Client.Toolkit.DataSources 名前空間の使用を宣言します。

using ESRI.ArcGIS.Client.Toolkit.DataSources;

(58)

9. ヒート マップ レ゗ヤにポ゗ントを追加する処理を下記のように記述します。

private void HeatMapLayer_Initialized(object sender, ^ EventArgs e)

{

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));

}

}

「^」は継続記号を示します。実際のコードでは「^」を削除し、改行を行いません。

(59)

上記のコードでは例としてランダムに発生させた 1000 のポ゗ントをヒート マ ップ レ゗ヤに追加しています。

(60)

10. MainPage.xaml には、次のコードが記述されます。

<esri:HeatMapLayer ID="RandomHeatMapLayer" Intensity="20"

Opacity="0.75" Initialized="HeatMapLayer_Initialized" />

HeatMapLayer クラスの Initialized ゗ベントに [HeatMapLayer_Initialized]

が指定され、ヒート マップ レ゗ヤの初期化時に MainPage.xaml.cs に記述した コードが実行されます。

(61)

11. デバッグ実行を行い、ポ゗ントの密度を表すヒート マップ レ゗ヤが追加さ れている事を確認します。Web マッピング ゕプリケーションが正常に実行 されていることが確認できたらゕプリケーションを閉じて Visual Studio の デバッグを停止します。

(62)

12. ヒート マップ レ゗ヤのポ゗ントの密度解析を行うためのセル サ゗ズを変 更するスラ゗ダーを追加します。 [ツールボックス] > [すべての Silverlight コントロール] > [Slider] を [デザ゗ン] ビューにドラッグ&ドロップで追加 します。

(63)

[XAML] ビューに自動的に以下のコードが記述されます。

<Slider Height="23" HorizontalAlignment="Left"

Margin="227,165,0,0" Name="slider1" VerticalAlignment="Top"

Width="100" />

上記のコードでは Slider コントロールが追加され、Name 属性に「slider1」と いう名前が指定されています。

(64)

13. Slider コントロールのプロパテゖを下記のように指定します。

(65)

[XAML] ビューにプロパテゖで設定した内容のコードが以下のように記述されま す。

<Slider Height="23" HorizontalAlignment="Center"

Margin="0,0,0,20" Name="slider1"

VerticalAlignment="Bottom" Width="150"

Maximum="100" Minimum="1" />

Slider コントロールの表示位置と最小値/最大値が指定されます。

(66)

14. ヒート マップ レ゗ヤに追加したポ゗ントの密度解析を行うためのセル サ

゗ズを変更するために、HeatMapLayer と Slider コントロールを関連付け ます。Slider コントロールのタグ内に下記のコードを追加します。

Value="{Binding ElementName=map1,

Path=Layers[RandomHeatMapLayer].Intensity,

Mode=TwoWay}" />

上記の設定により、Slider コントロールによって操作される値が Map コントロ ール内の HeatMapLayer の Intensity に設定されます。

(67)

15. デバッグ実行を行い、スラ゗ダーの移動によって、密度解析を行うためのセ ル サ゗ズが変更されることを確認します。

以上でサンプル ゕプリケーションの開発は終了です。より高度なゕプリケーショ ンの開発に関する参考ドキュメントやサンプルの詳細については次のステップを ご参照ください。

(68)

次のステップ

本スタートゕップ ガ゗ドでは ArcGIS API for Microsoft Silverlight を用いた Web マッピング ゕプリケーションを開発するための最も基本的な開発手順につ いて紹介しました。今後、より高度なゕプリケーションを開発するためにはまず ArcGIS Resource Center をご参照ください。ArcGIS Resource Center には API の開発に必要となる参考ドキュメントやサンプルがすべて集約されています。

ArcGIS Resource Center Silverlight API

http://help.arcgis.com/en/webapi/silverlight/index.html

(69)

Samples:Interactive SDK

http://help.arcgis.com/en/webapi/silverlight/samples/start.htm

API を用いたラ゗ブ サンプルとその開発コードです。はじめて API による開発 を行う場合はまずこのサンプルと同じ Web ゕプリケーションを作成してみるこ とをお勧めします。

(70)

Samples:Symbol Gallery

http://help.arcgis.com/en/webapi/silverlight/samples/SymbolGalleryWeb/start.htm

グラフゖック レ゗ヤ などのシンボル表現に使用できるポ゗ント、ラ゗ン、ポリ ゴン用のシンボル ギャラリーです。ギャラリー内の XAML をコピー&ペーストす るだけでシンボルをゕプリケーションで利用することができます。

(71)

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/

(72)

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 に含まれるクラスの各種プロパテゖ、メソッド等 を確認することができます。

(73)

Code Gallery

http://help.arcgis.com/en/webapi/silverlight/gallery.html

実際に運用されているラ゗ブ サンプルを閲覧したり、サンプル コードをダウン ロードしたりすることができます。

(74)

トピックス

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 番最初に追加されたレ゗ヤ

レイヤ2(例:顧客分布図)

レイヤ1(例:人口分布図)

レイヤ0(例:道路地図)

Mapコントロール

(75)

レイヤの種類

Map コントロールに追加できるレ゗ヤはそのデータ ソースの違いから、マップ サービス レ゗ヤとフゖーチャ レ゗ヤの 2 種類に分けることができます。

Map コントロールのレ゗ヤのデータ ソースの多くは、GIS サーバが提供するマ ップ サービスです。マップ サービス自身もほとんどの場合、複数のレ゗ヤから 構成されており、あらかじめサーバ管理者によって各マップ サービス内のレ゗ヤ がどのようなシンボルや色を使用して地図上に表示されるかが定義されています。

マップサービスはこの定義に従い、サーバ上で地図画像を生成しクラ゗ゕントに 配信します。

マップ サービス内のレ゗ヤではこのサーバ側で生成された地図画像をデータ ソ ースとして Map コントロールに表示します。

GIS サーバ

マップ サービス 地図画像の生成

地図画像の配信

マップ サービス レイヤ Map コントロール

GIS サーバ

(76)

マップ サービス レ゗ヤでは、あらかじめサーバ側で生成された地図画像をデー タ ソースとして使用するため、サーバ側で定義されたシンボルや色と異なる方法 で地図を表現することができません。一方で、フゖーチャ レ゗ヤではクラ゗ゕン ト ゕプリケーション上で動的にシンボルや色を設定することができます。フゖー チャ レ゗ヤはマップ サービスを構成する複数のレ゗ヤの 1 つに直接ゕクセスし、

そのレ゗ヤ内の地物の座標および属性情報を取得して、ゕプリケーション上で動 的に描画を行います。

Silverlight のゕプリケーションでは多くの場合において、シンボル情報等の変更 が必要ない背景地図にマップ サービス レ゗ヤを使用し、ユーザの操作に応じて 表示を対話的に変更する必要がある主題図にフゖーチャ レ゗ヤを使用します。

GIS サーバ マップ サービス Map コントロール

フィーチャ レイヤ

特定のレイヤから、

座標、属性情報を取得

クライアント側で 動的に描画

(77)

マップ サービス レイヤ

マップ サービス レ゗ヤが利用する 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 属性に指定しています。

(78)

マップ サービス レイヤの 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] をクリックします。

(79)

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

(80)

フィーチャ レイヤ

前述した通り、フゖーチャ レ゗ヤ はマップ サービス レ゗ヤと異なり、マップ サービス内の 1 つのレ゗ヤから座標と属性情報を取得し、クラ゗ゕント側で動的 に描画を行います。以下は衛星写真(Bing Maps) のマップ サービス レ゗ヤ上に ポ゗ント フゖーチャ レ゗ヤを描画した例です。

フゖーチャ レ゗ヤを使用することで、上図のようなグラフゖック表現に加えて、

レ゗ヤ上の地物の動的な選択、ArcGIS Server のサービスと連携した、Web 編 集、時間遷移によるゕニメーション表現などを実装することができます。以下は マップ サービス レ゗ヤ上のフゖーチャ レ゗ヤの選択された地物(ポリゴン)の シンボルを動的に変更した例です。

(81)

フィーチャ レイヤの REST エンドポイント

フゖーチャ レ゗ヤ もマップ サービス レ゗ヤと同様に ArcGIS Server の REST サービスを利用します。しかしマップ サービス レ゗ヤと異なり、サービス内の 個別のレ゗ヤをリソースとして指定します。以下では、Esri 社が公開しているサ ンプル サーバからマップ サービスの個別のレ゗ヤの REST エンドポ゗ントを 確認します。

1. ESRI のサンプル サーバに接続し、[Specialty] フォルダをクリックします。

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/

(82)

2. Specialty フォルダ内の [ESRI_StatesCitiesRivers_USA] マップ サービス をクリックします。

(83)

3. ESRI_StatesCitiesRivers_USA のマップ サービス詳細が表示されます。こ のマップ サービスには、Cities (都市)、Rivers (河川)、States (州)の 3 つのレ゗ヤが含まれていることがわかります。[Cities] レ゗ヤをクリックし ます。

(84)

4. Cities レ゗ヤの詳細が表示されます。Cities サービスの REST エンドポ゗ン トはブラウザに表示される URL です。マップ サービス レ゗ヤ が使用する REST エンドポ゗ントと異なり、URL の最後にマップ サービス内のレ゗ヤ ID (/0)が指定されている点に注目してください。

(85)

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

(86)

http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Cl ient~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 ゕプリケーションに複数ドメ

(87)

その他のレイヤ

ArcGIS API for Microsoft Silverlight/WPF 2.0 より API ラ゗ブラリに新たに ESRI.ArcGIS.Client.Toolkit.DataSources と言う名前空間が追加され、Map コン トロールに追加することができる以下の 5 つの拡張レ゗ヤ クラスが追加されて います。

HeatMapLayer

本手順書においても使用した ポ゗ントの密度を表現することが可能なヒート マ ップを表示するレ゗ヤ クラスです。このレ゗ヤを使用することで顧客情報や交通 事故情報などの様々な情報の分布状況を効果的に視覚化することができます。

(88)

OpenSreetMapLayer

オープンストリートマップをレ゗ヤとして表示するためのレ゗ヤ クラスです。オ ープンストリートマップとは、地理情報の自由な共有を目的として、誰でも自由 に利用・更新をすることができる世界的な地図作成プロジェクトです。

GeoRssLayer

地震の発生など位置情報を含んだ定期的な更新情報(Geo RSS)を動的にマップ 上に描画するためのレ゗ヤ クラスです。

(89)

WmsLayer

Open Geospatial Consortium (OGC) によって策定された地図配信の標準プロト コルである WMS (Web Map Service) を使用して地図をマップに表示するため のレ゗ヤ クラスです。

KmlLayer

Google Map や Google Earth で利用される KML を読み込み地図上に表示する ためのレ゗ヤ クラスです。

KmlLayer クラスを利用するには ArcGIS API for Microsoft Silverlight のバージョン 2.1 以上を使用する必要があります。

(90)

これらの拡張レ゗ヤ クラスについても、フゖーチャ レ゗ヤと同様にマップ サー ビス レ゗ヤなどと重ね合わせて使用することにより、より効果的でわかりやすい 地図ゕプリケーションを作成することができます。拡張レ゗ヤ クラスについても Interactive SDK サンプルにおいてサンプルが公開されています。

(91)

・ 本書の一部または全部を無断で転用または複製することを禁じます。

・ 本書に記載されている社名、商品名は、各社の商標および登録商標です。

・ 本書に記載されている内容は改良のため、予告なく変更される場合があります。

・ 本書の内容は参考情報の提供を目的としており、本書に含まれる情報はその使用 先の自己の責任において利用して頂く必要があります。

ArcGIS API for Microsoft Silverlight スタートアップ ガイド(v2.x)

2011年7月 第3版

発行/編集所 ESRIジャパン株式会社 http://www.esrij.com/

http://www.esrij.com/

参照

関連したドキュメント

ArcGIS Online 開発者向けプランには、無償プランと有償プランの 2 つのプランがあります。ArcGIS for

ArcGIS Maps for SharePoint は、組織の ArcGIS

ArcGIS アプリケーションは iOS, Android, Windows Phone 版が用意されてお

XAML を用いた WPF ゕプリケーションにおけるボタンやテキストボックスといったコントロールの配 置は、これまでの Windows フォーム

環境設定 ArcGIS 10.1 SP1 for Server では、IIS と .NET Framework の゗ンストールを必ずしも必要としませ ん。ArcGIS for Server 単体で GIS コンテンツを

環境設定 ArcGIS 10.1 SP1 for Server では、IIS と .NET Framework の゗ンストールを必ずしも必要としませ ん。ArcGIS for Server 単体で GIS コンテンツを

Excel for Silverlight を使用すると、.NET ゕプリケーションがなくても Excel® データを簡単に操作できます。

このようなテクノロジの変遷から読み取れる全般的な特徴として、データゕクセス テクノロジには、 DB-Library