ArcGIS API for Silverlight プログラミング ガイド (v3.x)

Size: px
Start display at page:

Download "ArcGIS API for Silverlight プログラミング ガイド (v3.x)"

Transcription

1 バージョン 3.x 用 ArcGIS API for Silverlight プログラミングガイド

2 ArcGIS API for Silverlight プログラミング ガイド (v3.x) 目次 はじめに... 1 プログラミング ガ ドについて... 1 プログラミング ガ ドの構成... 2 ArcGIS API for Silverlight の開発環境... 3 マップとレイヤ... 4 マップの作成... 4 マップの作成方法... 5 マップの初期表示範囲とプロパティ... 7 初期表示範囲の設定... 7 マップの空間参照を定義する方法... 8 レ ヤの追加... 9 マップ サービス レイヤ フィーチャ レイヤ ArcGIS for Server マップ サービス レイヤの追加方法 初期マップ範囲を設定するためのレイヤ範囲の使用 レイヤの初期化エラーの対処 マップのナビゲート ズームと画面移動アニメーションの時間の設定 タイル レベルへのスナップ 実行時の初期範囲の取得 範囲の変更 グラフィック グラフゖックス レ ヤの作成 グラフィックス レイヤを追加する方法 グラフゖックス レ ヤの利用 グラフィック フィーチャの追加 シンボルとレンダラ シンボル タイプ シンボルの作成 個別値レンダラの作成... 30

3 ArcGIS API for Silverlight プログラミング ガイド (v3.x) 数値分類レンダラの作成 フィーチャ レイヤ フゖーチャ レ ヤとは フゖーチャ レ ヤの追加方法 タスク タスクの概要 タスクの種類 タスクの利用 クエリ タスク QueryTask クラス クエリ タスク サンプル コード クエリ タスク サンプル コード の解説 検索タスク FindTask クラス 検索タスク サンプル コード 検索タスク サンプル コード の解説 個別属性表示タスク IdentifyTask クラス 個別属性表示タスク サンプル コード 個別属性表示タスク サンプル コード の解説 ArcGIS for Server の使用 ArcGIS for Server 概要 サービスの確認 ArcGIS REST Services Directory の起動 サービスについての情報の確認 サービスの利用 マップ サービスの利用 その他のサービス タイプの利用 異なるドメイン間のサービスの利用...153

4 はじめに プログラミングガイドについて このプログラミングガドは ArcGIS API for Silverlight が提供する主要な機能の実装方法を解説しており ArcGIS API を使用して Web マッピングゕプリケーションを構築する開発者の方が 実現したい機能の実装方法を確認するためのリフゔレンスとして本ガドを利用することを想定しています そのため 本ガドを利用するための前提知識として ArcGIS API for Silverlight を利用した Web マッピングゕプリケーションの基本的な開発方法を理解している必要があります はじめて ArcGIS API for Silverlight を利用される場合は 本ガドを利用する前に 下記リンクの ESRI ジャパンの製品ページからスタートゕップガドを参照して ArcGIS API を使用した Web マッピングゕプリケーションの開発の基礎をご確認ください スタートゕップガド :Microsoft Visual Studio 2010 (v3.x) ads/ 1

5 プログラミングガイドの構成 このプログラミングガドでは ArcGIS API for Silverlight の主要な機能を以下の 5 つのトピックにて 解説します マップとレヤ Web マッピングゕプリケーションの最も基本となる機能として Silverlight ゕプリケーション上に地図を表示させる方法について解説します グラフゖック地図上に動的にグラフゖックを描画する方法について解説します Web マッピングゕプリケーションにおいて グラフゖックはユーザの操作や空間解析などの結果を対話的に表示させるために使用することができます フゖーチャレヤ選択 編集 時間などのさまざまなオペレーションをサポートし ユーザが対話的に地図を操作する機能を提供するフゖーチャレヤの基本的な利用方法について解説します タスク空間検索などの GIS 機能を提供するタスクの利用方法について解説します ArcGIS for Server の使用 ArcGIS API for Silverlight から ArcGIS for Server が提供するサービスを利用する方法や注意点について解説します 2

6 ArcGIS API for Silverlight の開発環境 ArcGIS API 3.x for Silverlight の開発環境は ゕプリケーションプラットフォームである Silverlight の バージョン (Silverlight 4 または Silverlight 5) によって異なります 本ガドの手順を実行する前に以 下の環境がご使用のマシンに適切にセットゕップされている必要があります Silverlight 5 Microsoft Visual Studio 2012 または Visual Studio Express 2012 for Web + Blend + SketchFlow Preview for Visual Studio 2012 Silverlight 5 Visual Studio 2010 SP1 または Visual Web Developer Express 2010 SP1 + Silverlight 5 Tools for Visual Studio 2010 SP1 + Expression Blend 5 Preview for Silverlight Silverlight 5 Blend + SketchFlow Preview for Visual Studio 2012 または Expression Blend Preview for Silverlight 5 Silverlight 4 Visual Studio 2012 または Visual Studio Express 2012 for Web + Silverlight 4 SDK + Expression Blend 4 SDK for Silverlight Silverlight 4 Visual Studio 2010 SP1 または Visual Web Developer Express 2010 SP1 + Expression Blend 4 SDK for Silverlight Silverlight 4 Expression Blend 4 ArcGIS API 3.1 for Silverlight 以降のバージョンでサポート ArcGIS API for Silverlight がサポートする最新の動作環境につきましては下記をご参照ください ArcGIS API for Silverlight 動作環境 : ments/ 3

7 マップとレイヤ マップの作成 Silverlight ゕプリケーション上に地図を表示させるためには ゕプリケーションに Map コントロールを 追加します Map コントロールを追加するにはコードに以下の 2 つの要素を含める必要があります ArcGIS スキーマへの参照 Map コントロールを含む.NET コード または XAML コード 以下の例は シンプルな Silverlight ゕプリケーションの XAML コードです この例では ArcGIS API for Silverlight の Map コントロールを追加し ゕプリケーション開始時の初期表示範囲を定義して 1 つの ArcGIS for Server キャッシュマップサービスレヤを Map コントロールに追加しています このセクションでは 以下の Silverlight ゕプリケーションの XAML コードを記述する手順をご紹介しま す <UserControl x:class="silverlightapplication.mainpage" xmlns=" xmlns:x=" xmlns:esri="clr-namespace:esri.arcgis.client;assembly=esri.arcgis.client"> <Grid x:name="layoutroot" Background="White"> </Grid> <esri:map x:name="mymap" Extent="-120, 20, -100, 40" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver" /> </esri:map.layers> </esri:map> </UserControl> 4

8 マップの作成方法 以下に示すステップでは Visual Studio で Silverlight ゕプリケーションを作成し ゕプリケーションの メンページ ( 例 :MainPage.xaml) の XAML ビューで作業することを想定しています ゕプリケーション内で ESRI.ArcGIS.Client.dll への参照を追加します XAML では Silverlight の ArcGIS スキーマを参照する XML 名前空間を追加します ArcGIS スキーマを参照することで ESRI.ArcGIS.Client ゕセンブリ内のクラスとコンポーネントを使用することができます XML 名前空間の属性 xmlns: の後の値はゕセンブリを参照するために使用される名前空間の識別子です この場合の識別子は esri です <UserControl x:class="silverlightapplication.mainpage" xmlns=" xmlns:x=" xmlns:esri=" 3. 必要であれば UserContorl 内の Width および Height プロパテゖを削除してください こ れによって ページコンテンツがブラウザウゖンドウに合わせて表示されます 4. ページ内のコンテナ要素に Map コントロールを追加します 例では Grid コンテナに Map コントロールを追加しています Map コントロールを含む名前空間を定義するために ESRI.ArcGIS.Client 名前空間の識別子 esri を使用します Map コントロールの Name プロパテゖ (x:name) に固有の名前を指定します <Grid x:name="layoutroot" Background="White"> <esri:map x:name="mymap" > </esri:map> </Grid> 5

9 ArcGIS API for Silverlight プログラミング ガイド (v3.x) 5. マップに ArcGIS for Server キャッシュ マップ サービス レ ヤを追加します マップには レ ヤのコレクションである Layers プロパテゖが存在します XAML では プロパテゖ要 素を指定する構文を使用して Layers プロパテゖのコンテンツを変更できます 子エレメント 例 Map.Layers としてプロパテゖ名を指定することができ 適切なコンテンツを含めるこ とができます この例では コンテンツとして ArcGIS for Server キャッシュ マップ サービ スを参照するため ArcGISTiledMapServiceLayer クラスを追加します 追加するマップ サ ービスのエンドポ ントを Url に定義し レ ヤの ID を追加します 備考 この例で 記述している Map タグ内の Map.Layers の記述は省略することができます <esri:map x:name="mymap" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver" /> </esri:map.layers> </esri:map> 6. マップの初期表示範囲を定義します 属性構文を用いて マップの Extent プロパテゖを定義 します 属性値は 下記のようにカンマ区切りで 最小 X 値, 最小 Y 値, 最大 X 値, 最大 Y 値 で表す 4 つの数値の組み合わせで指定します <esri:map x:name="mymap" Extent="-120, 20, -100, 40" > 7. ゕプリケーションをコンパ ルし実行します Map コントロールがブラウザ ウゖンドウに表 示されることが確認できます 表示範囲を指定しているため Map コントロールには ゕメリ カ西部を中心とした範囲が表示されます 6

10 マップの初期表示範囲とプロパティ 以下に示すプロパテゖは Map コントロールの初期化時にプロパテゖで定義することができます 初期表示範囲 空間参照 最小 / 最大解像度 ( 最初に追加されるキャッシュマップサービスレヤの最低限の詳細度 ) デフォルトでは 初期表示範囲はマップドキュメント (*.mxd) で設定した範囲になります マップの空間参照はレヤコレクション内の空間参照を保持している最初のレヤによって定義されます マップ内のレヤは マップによって定義される空間参照をサポートする必要があります 空間参照が一致しない場合 レヤ ( サービス ) がマップ内でただしく表示されるには レヤが自身を再投影することができる必要があります キャッシュマップサービスレヤ ( 例 : ArcGISTiledMapServiceLayer ) は再投影することができないため 空間参照がマップと一致しない場合は レヤは表示されません マップの空間参照は一度設定されると変更できないことに注意してください マップがタルレヤを含んでいる場合は タルレヤのコレクションによって最小 / 最大解像度が定義されます マップの初期化処理において すべてのプロパテゖは明示的に定義することができます 初期表示範囲の設定 上記で説明した通り XAML 内でマップの Extent プロパテゖを使用して 初期表示範囲 ( 最小 X 値, 最 小 Y 値, 最大 X 値, 最大 Y 値 ) を定義します <esri:map x:name="mymap" Extent="-120,20,-100,40" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver" /> </esri:map.layers> </esri:map> 7

11 マップの空間参照を定義する方法 デフォルトでは 有効な空間参照をもつ最初に追加されたレヤの空間参照によってマップの空間参照が 定義されます フゖーチャレヤ (FeatureLayer) および ArcGIS for Server ダナミックマップ / メージサービスは 必要に応じてマップの空間参照に再投影されます キャッシュマップサービスレ ヤは再投影されません キャッシュマップサービスレヤがマップに表示されるには キャッシュマ ップサービスレヤと Map コントロールの空間参照が一致している必要があります マップに明確な 空間参照を定義するには Envelope プロパテゖを生成して SpatialReference プロパテゖを設定し ます 以下に例を示します <Grid x:name="layoutroot" Background="White"> <esri:map x:name="mymap"> </esri:map> </Grid> <esri:map.extent> <esri:envelope XMin="661140" YMin=" " XMax=" " YMax=" " > <esri:envelope.spatialreference> <esri:spatialreference WKID="26777"/> </esri:envelope.spatialreference> </esri:envelope> </esri:map.extent> 8

12 ArcGIS API for Silverlight プログラミング ガイド (v3.x) レイヤの追加 ArcGIS API for Silverlight は Map コントロールに追加するためのマップのレ ヤ タ プのセットを提 供します レ ヤ タ プには ArcGIS for Server のマップ サービス レ ヤ ArcGIS for Server マッ プ サービスによってホストされるレ ヤ内のグラフゖック フゖーチャ レ ヤを表示するためのフゖー チャ レ ヤ グラフゖック エレメントを表示するためのグラフゖックス レ ヤ また マップ上で Silverlight UI エレメントとメデゖゕを表示するためのエレメント レ ヤなどがあります レ ヤは Layers プロパテゖを通して Map コントロールのレ ヤ コレクションに追加されます Map コントロールに最初に追加されたレ ヤ 下記の例ではレ ヤ 0 がレ ヤ コレクションの 最下層に表示されます <esri:map> <esri:map.layers> <Layer...x:Name="0" Url="..." /> <Layer...x:Name="1" Url="..." /> <Layer...x:Name="2" Url="..." /> </esri:map.layers> レイヤ 2 例 顧客分布図 </esri:map> レイヤ 1 例 人口分布図 Map コントロール レイヤ 0 例 道路地図 有効な空間参照をもった最初に追加されたレ ヤ 上記の例ではレ ヤ 0 がマップの空間参照を 定義します 9

13 マップサービスレイヤ マップサービスレヤにはキャッシュとダナミックの 2 種類があります キャッシュマップサービスレヤは 事前に定義された縮尺レベルで構成されているマップメージタルセットへのゕクセスを提供します ダナミックマップサービスレヤは リゕルタムに生成されるマップメージへのゕクセスを提供します 以下に示す表は ArcGIS API for Silverlight に含まれるマップサービスレヤの種類とその説明です サービスホスト マップサービスレヤ型 説明 ArcGIS for Server ArcGISTiledMapServiceLayer タル状のマップメージを提供する ArcGIS for Server キャッシュマップサービスです ArcGISDynamicMapServiceLayer リゕルタムにマップメージを生成する ( キャッシュではない ) ArcGIS for Server ダナミックマップサービスです ダナミックマップサービスはベクタおよびラスタデータソースへの動的ゕクセスを提供します ArcGISImageServiceLayer リゕルタムにマップメージを生成する ArcGIS for Server メージサービスです メージサービスはラスタデータソース への動的ゕクセスを提供します フィーチャレイヤ フゖーチャレヤは サービスによってホストされるフゖーチャ ( ジオメトリおよび属性 ) を含むレヤを表します FeatureLayer クラスは ArcGIS for Server マップサービスを参照することができます FeatureLayer クラスの Url プロパテゖには レヤまたはテーブルへのゕクセスを提供するサービスへの HTTP エンドポントを設定します 各フゖーチャの情報は サービスから取得され ArcGIS API for Silverlight のグラフゖック機能によりグラフゖックとしてクラゕント側で描画されます フゖーチャレヤプロパテゖの作成と定義に関する詳細については フゖーチャレヤ のトピックをご参照ください 10

14 ArcGIS for Server マップサービスレイヤの追加方法 以下に示す例は 3 つの異なる ArcGIS for Server マップサービスレヤをもつ Map コントロールを 配置したシンプルな Silverlight ゕプリケーションの XAML コードを表しています マップの作成方法と レヤコレクションの参照についての情報は マップの作成 のトピックをご参照ください ArcGIS API for Silverlight のすべての ArcGIS for Server レヤタプは ESRI.ArcGIS.Client.dll の ESRI.ArcGIS.Client 名前空間に含まれています <UserControl x:class="silverlightapp.page" xmlns=" xmlns:x=" xmlns:esri="clr-namespace:esri.arcgis.client;assembly=esri.arcgis.client"> <Grid x:name="layoutroot" Background="White"> </Grid> <esri:map x:name="mymap" > </esri:map> </UserControl> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver" /> <esri:arcgisimageservicelayer ID="SanFranciscoImageLayer" Url=" services/portland/cascadelandsat/imageserver" ImageFormat="JPGPNG"/> <esri:arcgisdynamicmapservicelayer ID="EarthquakesLayer" Url=" services/earthquakes/recentearthquakesrendered/mapserver" /> </esri:map.layers> 11

15 以下に Map コントロールにレヤを追加する手順の概要を示します 1. ArcGIS for Server マップサービスレヤを追加します この例では ArcGISTiledMapServiceLayer, ArcGISImageServiceLayer, ArcGISDynamicMapServiceLayer クラスを Map コントロールのレヤコレクションに追 加します 各レヤクラスに ID プロパテゖを追加し レヤを識別するための固有の値を設定します 各レヤクラスに Url プロパテゖを追加し 適切なサービスタプへの Url を設定します ArcGIS REST Services Directory を使用すると ArcGIS for Server の管理サトからサー ビスのタプ ( マップまたはメージ ) を確認することができます また マップサービスを 追加する場合 キャッシュが存在するかどうかを確認します キャッシュマップサービスは タル情報を保持しています ( ArcGISImageServiceLayer では 取得する画像フォーマッ トを指定するための ImageFormat プロパテゖを指定しています ) <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver" /> <esri:arcgisimageservicelayer ID="PortlandImageLayer" Url=" services/portland/cascadelandsat/imageserver" ImageFormat="JPGPNG"/> <esri:arcgisdynamicmapservicelayer ID="EarthquakesLayer" </esri:map.layers> Url=" services/earthquakes/recentearthquakesrendered/mapserver" /> 12

16 注意 マップサービスがセキュゕである場合 Token プロパテゖを追加し レヤにトークン情報を追加する必要がある場合もあります 詳細については Secure Services のトピック ( 英語 ) をご参照ください Map コントロールの SnapToLevels プロパテゖは 事前に定義された縮尺レベルでのみマップを描画するかどうかを決定します デフォルトでは SnapToLevels プロパテゖは False で縮尺レベル間においてもマップタルを Map コントロールで描画します True の場合は マップのレヤコレクションに最初に追加されたキャッシュマップサービスレヤのタル情報が縮尺レベルとして使用されます マルチレヤキャッシュはサポートされません ダナミックマップサービスレヤの背景色は常に透過色に設定されます レヤの透過率を定義するには Opacity プロパテゖを使用します レヤの透過率は Silverlight プラットフォームの機能を使用してクラゕント側で適用されます 13

17 初期マップ範囲を設定するためのレイヤ範囲の使用 マップサービスレヤの初期化においては レヤの範囲を保持している InitialExtent プロパテゖと FullExtent プロパテゖが利用可能です そのため 例えばコードビハンドでレヤの Initialized ベ ント ( レヤの初期化時に発生 ) を追加し マップ範囲を定義するためにレヤ範囲を使用することがで きます 以下に XAML とコードビハンドの例および手順を示します XAML <esri:map x:name="mymap" > <esri:map.layers> コードビハインド <esri:arcgisdynamicmapservicelayer ID="EarthquakesLayer" Url=" services/earthquakes/recentearthquakesrendered/mapserver" Initialized="EarthquakesLayer_Initialized" /> private void EarthquakesLayer_Initialized(object sender, EventArgs e) Layer layer = sender as Layer; MyMap.ZoomTo(layer.FullExtent); 1. XAML で Initialized プロパテゖをレヤクラスに追加し ハンドラメソッド名を定義しま す ( コードビハンドにハンドラが作成されます ) 2. ハンドラメソッドの引数 sender は初期化されたレヤです この例の場合 ESRI.ArcGIS.Client.Layer 型に sender をキャストすることで Layer 型の範囲プロパテゖ を取得することができます 3. マップの範囲をレヤの初期範囲に設定します ZoomTo や PanTo メソッドを使用してマッ プの範囲を設定することができます 両メソッドとも ArcGIS API for Silverlight ジオメトリ タプ (ESRI.ArcGIS.Client.Geometry 名前空間内 ) に対応しています この場合 レヤの FullExtent プロパテゖから返される Envelope を渡します 14

18 レイヤの初期化エラーの対処 上記の例などにおいてレヤの初期化に失敗することがあります これは以下に示すような問題によって 発生します Url プロパテゖが正しくない サービスが利用できない サービスをホストしているサトがクロスサトポリシーフゔル (clientaccesspolicy.xml または crossdomain.xml) を配置していない サービスがセキュゕでトークンまたは認証情報が要求される デフォルトでは レヤが初期化に失敗するとレヤはマップに表示されません 初期化の失敗に対処す るには レヤの InitializationFailed ベントをハンドリングし レヤの InitializationFailure プロ パテゖで返される例外を確認します 以下にコードとその手順を示します XAML <esri:map x:name="mymap" > <esri:map.layers> コードビハインド <esri:arcgisdynamicmapservicelayer ID="EarthquakesLayer" Url=" services/earthquakes/recentearthquakesrendered/mapserver" InitializationFailed=" EarthquakesLayer_InitializationFailed" /> private void EarthquakesLayer_InitializationFailed(object sender, EventArgs e) Layer layer = sender as Layer; string exceptionmessage = layer.initializationfailure.message; MyTextBlock.Text = exceptionmessage; 15

19 1. XAML で InitializationFailed ベントをレヤに追加し ハンドラメソッド名を定義します ( コードビハンドにハンドラが作成されます ) <esri:map x:name="mymap" > <esri:map.layers> <esri:arcgisdynamicmapservicelayer ID="EarthquakesLayer" Url=" services/earthquakes/recentearthquakesrendered/mapserver " InitializationFailed="EarthquakesLayer_InitializationFailed" /> 2. ハンドラメソッドの引数 sender は初期化に失敗したレヤです この例では 初期化の 失敗に対処するために InitializationFailure プロパテゖにゕクセスする必要があるので ESRI.ArcGIS.Client.Layer 型にキャストしています private void EarthquakesLayer_InitializationFailed(object sender, EventArgs e) Layer layer = sender as Layer; 3. InitializationFailure プロパテゖは 初期化の例外を参照します 問題を特定するために例外の 内容を調べます この例では 例外メッセージは Silverlight ゕプリケーションの TextBlock に表示されます private void EarthquakesLayer_InitializationFailed(object sender, EventArgs e) Layer layer = sender as Layer; string exceptionmessage = layer.initializationfailure.message; MyTextBlock.Text = exceptionmessage; 16

20 マップのナビゲート Map コントロールは 実行時に自身のナビゲーションの振る舞いを定義および拡張するためのオプション を含んでいます このセクションでは マップをナビゲートするためのデザン時と実行時におけるコー ドを紹介します ズームと画面移動アニメーションの時間の設定 Silverlight プラットフォームは UI コンテンツと連動するリッチなゕニメーション機能を提供します Map コントロールではこのユーザエクスペリエンスを拡張する機能を活用して ズームや画面移動操作 時のマップコンテンツへ適用されるゕニメーションのレベルを制御することができます Map コントロ ールの ZoomDuration プロパテゖと PanDuration プロパテゖは 操作を完了するまでの時間を定義し ます その値は TimeSpan オブジェクトとして "d.hh:mm:ss.ff" の形式 (d: 日数 hh:24 時制で の時間 mm: 分 ss: 秒 ff:1 秒の端数 ) の文字列として XAML に表現することができます ズーム と画面移動の時間に高い値を指定すると ナビゲーションはよりなめらかでゆっくりとした動作になり 低い値を指定すると 速く反応の良い動作になります デフォルトのズーム時間は 1.5 秒で デフォル トの画面移動時間は 0.75 秒です 以下のサンプル XAML コードは ズームまたは画面移動の操作時に マップゕニメーションを無効にする方法を示しています <esri:map x:name="mymap" ZoomDuration="00:00:00" PanDuration="00:00:00"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" </esri:map.layers> </esri:map> Url=" services/esri_streetmap_world_2d/mapserver" /> 17

21 タイルレベルへのスナップ Silverlight プラットフォームはリッチな Web クラゕント環境のために効率的なメージリサンプリ ング機能を提供しています Map コントロールは キャッシュマップサービスレヤ ( 例 : ArcGISTiledMapServiceLayer) やダナミックマップサービスレヤ ( 例 : ArcGISDynamicMapServiceLayer) などのマップサービスレヤに使用されるマップメージを描画 するために Silverlight リサンプリングエンジンを使用しています これにより スムーズで柔軟なユー ザエクスペリエンスを提供する事ができ クラゕントが任意の縮尺でキャッシュタルを表示するこ とができます SnapToLevels プロパテゖを使用して最初のタルマップサービスレヤの詳細度 (LOD:level of detail) にマップを強制的にスナップさせることもできます SnapToLevels プロパテゖ を True に設定すると タルマップサービスレヤによって定義されている詳細度 (LOD) でのみマ ップが表示されることに注意してください <esri:map x:name="mymap" SnapToLevels="True"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" </esri:map.layers> </esri:map> Url=" services/esri_streetmap_world_2d/mapserver" /> ArcGISTiledMapServiceLayer クラスは マップサービスの有効な LOD の配列を格納する TileInfo プ ロパテゖを保持しています 配列内の各 LOD は メージピクセルあたりのマップ単位の値を表す解像 度をもっています 特定のレベルにズームするには LOD 配列を確認し 対象レベルと解像度を取得し Map.ZoomToResolution() メソッドへ渡します 18

22 実行時の初期範囲の取得 ユーザが保存した任意の範囲でゕプリケーションを起動するなど 実行時までマップの初期表示範囲が分からない場合があります このような場合に初期表示範囲を取得するために Map コントロールが提供する範囲の変更を通知するための 2 つのベントハンドラ (ExtentChanging ベントと ExtentChanged ベント ) を使用することができます ExtentChanging ベントと ExtentChanged ベントは マップ範囲が変更中であるとき ( ズームや画面移動のゕニメーションの時 ) もしくは変更が終了した際に実行されます 初期マップ範囲が設定されたとき ExtentChanged ベントがトリガーされます 以下にそのコードビハンドを示します このベントをハンドリングすることによって 初期マップ範囲を確認することができます Map コントロールの物理的な初期サズを ( ピクセルで ) 取得するには SizeChanged ベントを使用します ただし 物理的な初期サズがマップやそのコンテナに設定されていない場合は初期サズを取得できない可能性があります void MyMap_ExtentChanged(object sender, ExtentEventArgs e) if (e.oldextent == null) ESRI.ArcGIS.Client.Geometry.Envelope initialextent = e.newextent; 19

23 範囲の変更 事前に定義された Map コントロールに対するキーボードやマウスのショートカットゕクションは デフ ォルトでは有効となっています 以下の表は各ショートカットとそれに関連するマップゕクションを示し ています キー操作マウス操作マップ操作 左 / 右 / 上 / 下矢印キーの 押下 押された矢印キーの方向に画面移動します +/- ズーム率単位で拡大 (+) または縮小 (-) します ズーム率は Map.ZoomFactor プロパテゖで 定義されます 左マウスボタンを ホールドし ドラッグ 左マウスボタンの マップを画面移動します ズーム率単位で拡大します ダブルクリック Shift キーを押下し ホールド Shift キーと Ctrl キーを押下し ホールド 左マウスボタンをホールドし ドラッグ左マウスボタンをホールドし ドラッグホールを前方 / 後方にスクロール 拡大する範囲を定義します 縮小する範囲を定義します マウスカーソルの位置を基準に拡大 ( 前方 ) 縮小( 後方 ) 20

24 マップの範囲を変更する場合は Extent プロパテゖを設定するか Zoom() ZoomTo() ZoomToResolution() または PanTo() メソッドを Map コントロール上で呼び出します 以下に示す表 は 各操作の特長を示します Map メンバ Extent プロパティ Map 操作 ESRI.ArcGIS.Client.Geometry.Envelope として設定されます マップの範囲は ゕニメーションなしの状態で定義された範囲に変更します マップの実際の範囲は マップの縦横比を保持するために 定義した Envelope と一致しない場合があります ( 実際の範囲を調べるには マップの ExtentChanged ベントをハン ドリングし ベント引数の NewExtent プロパテゖを使用します ) Zoom( 比率 ) メソッド ESRI.ArcGIS.Client.Geometry.Envelope envelope = new ESRI.ArcGIS.Client.Geometry.Envelope(-120, 20, -100, 40); MyMap.Extent = envelope; 比率を引数に拡大または縮小します > 1 = 拡大 < 1 = 縮小 ZoomTo( ジオメトリ ) メソッド MyMap.Zoom(2); メソッドに渡された ESRI.ArcGIS.Client.Geometry を含む範囲へズ ームします MapPoint 型は使用できません 範囲変更時にマップゕニメーションが動作します ZoomToResolution(double) メソッド MyMap.ZoomTo(myPolygon); 1 ピクセルあたりのマップ単位の数として定義される解像度にズームします DPI または PPI がわかれば 各クラゕントのマップ縮尺を正確に計算することができます TiledMapServiceLayer tiledlayer = MyMap.Layers["StreetMapLayer"] as TiledMapServiceLayer; Lod lod = tiledlayer.tileinfo.lods[5]; PanTo( ジオメトリ ) メソッド MyMap.ZoomToResolution(lod.Resolution); PanTo メソッドに渡された ESRI.ArcGIS.Client.Geometry ンスタンスを中心とする範囲に画面移動します マップの縮尺は変更されません マップゕニメーションは 画面移動中に発生します MyMap.PanTo(myPoint); 21

25 ArcGIS API for Silverlight プログラミング ガイド (v3.x) グラフィック グラフィックス レイヤの作成 ArcGIS API for Silverlight ではグラフゖックス レ ヤを使用することによりマップ上に動的にグラフゖ ックを描画することができます 例えばユーザが描画したポリゴン形状をグラフゖックとして保持したり ユーザが定義した検索結果を動的に表示したりすることができます 以下の例ではユーザが定義した検索 結果として人口が 250 万人以上の都道府県をグラフゖックとして表示しています 22

26 グラフィックスレイヤを追加する方法 Silverlight の Web GIS ゕプリケーションでは 一般的にグラフゖックスレヤは XAML 内にて定義さ れます ( コードビハンドで定義し追加することも可能です ) XAML の Map コントロールのレヤコ レクション内に GraphicsLayer クラスを配置します マップ上でグラフゖックスレヤが背景地図レ ヤなどの上に描画されるように ArcGISTiledMapServiceLayer クラスなどの背景地図レヤよりも下の 行に GraphicsLayer クラスを追加する必要があります <esri:map x:name="mymap"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:graphicslayer /> </esri:map.layers> </esri:map> 定義したグラフゖックスレヤをコードビハンドで利用できるように 追加した GraphicsLayer クラ スの ID プロパテゖを設定します 以下の例では ID を MyGraphicsLayer としています <esri:map x:name="mymap"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:graphicslayer ID="MyGraphicsLayer" /> </esri:map.layers> </esri:map> 23

27 グラフィックスレイヤの利用 作成したグラフゖックスレヤにデータを表示するには グラフゖックスレヤにグラフゖックを追加します ほとんどの場合 追加するグラフゖックはマップ上での図形描画や地物検索などの ユーザのゕクションによって生成された図形情報から作成します グラフゖックを追加する手順の概要は以下の通りです グラフゖックを追加するグラフゖックスレヤを取得します 追加するグラフゖックを新規に作成するか取得します グラフゖックにジオメトリ ( 図形情報 ) が存在しない場合は ジオメトリを設定します グラフゖックにシンボルを設定します グラフゖックスレヤにグラフゖックを追加します 以下では C# を使用して上述したそれぞれの手順をコードで書く方法を紹介します 24

28 グラフィックフィーチャの追加 ほとんどの場合 コードビハンドを使用してグラフゖックスレヤにグラフゖックを追加します (XAML を使用して追加することも可能です ) グラフゖックを追加するには まずグラフゖックを追加するグラフゖックスレヤを取得する必要があります 以下の例では XAML で定義された MyGraphicsLayer という ID を持つグラフゖックスレヤをコードビハンドにおいて取得しています GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; 多くの場合 検索タスクや描画処理などのベントハンドリングの過程においてグラフゖックもしくはグラフゖックのリストが返されます 例えば QueryTask クラス ( クエリタスク ) の ExecuteCompleted ベント ( クエリ実行完了ベント ) は グラフゖックのリスト配列を持つ FeatureSet プロパテゖを返します 以下の例では この様なグラフゖックリスト (IList<Graphic>) を graphicslist という変数で取得済みであるとして そのリストに対して処理を行います まずグラフゖックリストに対してループ処理を設定します foreach (Graphic graphic in graphicslist) グラフゖックリストのそれぞれのグラフゖックについてシンボルを設定します 以下の例では すでに MySymbol と呼ばれるシンボルが作成済みです シンボルの作成についての詳細は シンボルとレンダラ をご参照ください foreach (Graphic graphic in graphicslist) graphic.symbol = MySymbol; 最後にシンボルを設定したグラフゖックをグラフゖックスレヤに追加することで グラフゖックスがマップ上に描画されます 以下の例では XAML で定義された MyGraphicsLayer という ID を持つグラフゖックスレヤを取得し graphicslist というグラフゖックスリスト内のそれぞれのグラフゖックについてシンボルを設定し MyGraphicsLayer グラフゖックスレヤに追加しています GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; foreach (Graphic graphic in graphicslist) graphic.symbol = MySymbol; graphicslayer.graphics.add(graphic); 25

29 シンボルとレンダラ シンボルはグラフゖックの塗りつぶし色 枠線の太さ 透過設定などの地理的な要素に依存しない外観を定義します ArcGIS API for Silverlight には多くのシンボルクラスが存在します これらのシンボルクラスはそれぞれが特定のジオメトリ ( ポント : 点 ポリラン : 線 ポリゴン : 面 ) を持つグラフゖックに対応しており グラフゖックのシンボル表現を指定するために使用することができます レンダラはグラフゖックスレヤに設定する 1 つ以上のシンボルを定義します レンダラに定義されたシンボルのうち どのシンボルがグラフゖックに適用されるかは そのグラフゖックが持つ属性列の属性値に依存します レンダラを使用することで 属性値の値に応じてどのシンボルを適用するか指定することができます シンボルタイプ 以下の表は利用可能なシンボルクラスが対応するジオメトリの一覧です シンボルジオメトリ説明 SimpleMarkerSymbol ポント ( 点 ) 単純なポント形状を使用します PictureMarkerSymbol ポント ( 点 ) 画像をポントのシンボルとして使用します SimpleLineSymbol ポリラン ( 線 ) CartographicLineSymbol ポリラン ( 線 ) SimpleFillSymbol ポリゴン ( 面 ) 事前定義されたスタルを使用してポリランを表現します カスタムのスタルを使用してポリランを表現します Silverlight の Brush を使用してポリゴンを塗りつぶします PictureFillSymbol ポリゴン ( 面 ) 画像でポリゴンを塗りつぶします 26

30 シンボルの作成 多くのゕプリケーションでは同じシンボルが何回も繰り返し使用されます 例えば市区町村を検索するタ スクを実装したゕプリケーションの場合 検索のタスクが完了するたびに検索結果の市区町村のポリゴン グラフゖックに同じシンボルが適用されます このようにシンボルが繰り返し利用される場合は シンボ ルを XAML に定義します これは一般的に Silverlight のゕプリケーションの外観要素が XAML に定義 され それを利用すためのロジックが.NET のコード (C# あるいは VB.NET) に記述されるためです このようにゕプリケーションを構築することで ゕプリケーションのプレゼンテーション層とビジネスロ ジック層が分離されるため ゕプリケーションの開発 メンテナンス あるいは拡張が容易になります ここでは XAML 内でシンボルを定義し フゖーチャレヤに設定する方法を紹介します ( 以下で紹介す るサンプルの XAML コード全文はこちらを参照してください ) 以下の例ではリソースとしてシンボルとレンダラを定義しています 定義された SimpleFillSymbol クラ スは半透明の赤色で塗りつぶされ (Fill="#66FF0000") 2 ピクセル幅の赤色の枠線を持つ (BorderBrush="Red" BorderThickness="2") ポリゴン用のシンボルで MyRedFillSymbol という Key を持ち また SimpleRenderer クラスはシンボルとして 上述した MyRedFillSymbol を使用し MySimpleRenderer という Key を持ちます <Grid.Resources> <esri:simplefillsymbol x: Key ="MyRedFillSymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:simplerenderer x:key="mysimplerenderer" Symbol="StaticResource MyRedFillSymbol" /> </Grid.Resources> シンボルとレンダラを定義したらグラフゖックスレヤのグラフゖックにレンダラを設定することがで きます 以下の例では Esri 社がホストするサンプルサーバ上の米国州のポリゴンレヤを参照するフゖーチャ レヤのグラフゖックにレンダラを設定しています XAML 内の FeatureLayer クラスの Renderer プ ロパテゖにリソースとして定義したレンダラを設定しています ( フゖーチャレヤの詳細については フ ゖーチャレヤ をご参照ください ) <esri:featurelayer ID="MyFeatureLayer" Where="1=1" Url=" services/demographics/esri_census_usa/mapserver/5" Renderer="StaticResource MySimpleRenderer"/> 27

31 ArcGIS API for Silverlight プログラミング ガイド (v3.x) 以下は上述したサンプルを実行した結果です フゖーチャ レ ヤが保持しているグラフゖックにリソース として定義したシンボルが設定されています シンボルを動的に生成する必要がある場合は コード内でシンボルを生成することができます 以下の例 ではコード内で SimpleFillSymbol クラスを生成しています シンボルのカラーは ARGB ゕルフゔ 赤 緑 青 値を使用して設定されています また コードでは生成したシンボルをグラフゖックス レ ヤ MyGraphicsLayer のすべてのグラフゖッ クに設定しています SimpleFillSymbol fillsymbol = new SimpleFillSymbol() BorderBrush = new SolidColorBrush(Color.FromArgb(0, 255, 0, 0)), BorderThickness = 2, Fill = new SolidColorBrush(Color.FromArgb(alphaVal, redval, greenval, blueval)) ; GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; foreach (Graphic graphic in graphicslayer.graphics) graphic.symbol = fillsymbol; 28

32 シンボルの作成 ( サンプルコード ) 以下はこのセクションで紹介したシンボルをフゖーチャクラスに設定するサンプル XAML コードです ( コードビハンドフゔルへの記述は必要ありません ) <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" <Grid x:name="layoutroot" Background="White"> </Grid> <Grid.Resources> <esri:simplefillsymbol x:key ="MyRedFillSymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:simplerenderer x:key="mysimplerenderer" Symbol="StaticResource MyRedFillSymbol" /> </Grid.Resources> <esri:map x:name="mymap"> </esri:map> </UserControl> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:featurelayer ID="MyFeatureLayer" Url=" services/demographics/esri_census_usa/mapserver/5" Renderer="StaticResource MySimpleRenderer"/> </esri:map.layers> 29

33 個別値レンダラの作成 個別値レンダラを使用することで グラフゖックの特定の属性列の値に応じてシンボルを定義することが できます ここでは個別値レンダラの作成方法について紹介します ( 以下で紹介するサンプルの XAML コ ード全文はこちらを参照してください ) 以下の例では作成する個別値レンダラを Esri 社がホストするサンプルサーバ上の米国州ポリゴンレ ヤに適用します あらかじめ Map コントロールには以下のようにサンプルレヤを参照する FeatureLayer クラスを追加しておきます <esri:map x:name="mymap"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:featurelayer ID="MyFeatureLayer" OutFields="STATE_NAME" </esri:map.layers> </esri:map> Where="(STATE_NAME = 'California') OR (STATE_NAME = 'New York') OR (STATE_NAME = 'Kansas')" Url=" services/demographics/esri_census_usa/mapserver/5" /> FeatureLayer クラス (ID は MyFeatureLayer ) では取得する属性列として STATE_NAME 列のみが指定され (OutFields="STATE_NAME") Where プロパテゖによって取得するレコードが STATE_NAME 列の値が California New York もしくは Kansas のレコードのみに制限されています 以下ではこの MyFeatureLayer に個別値レンダラを作成し 適用します 30

34 まず 個別値レンダラが使用するシンボルを定義します 以下の例では 3 つの SimpleFillSymbol クラスをリソースとして定義しています 定義されているシンボルはそれぞれ以下の Key 属性にて参照することができます : MyGreenSymbol ( 塗りつぶし色 : 半透明緑 枠線 : 緑 2 px) MyYellowSymbol ( 塗りつぶし色 : 半透明黄色 枠線 : 黄色 2 px) MyRedSymbol ( 塗りつぶし色 : 半透明赤 枠線 : 赤 2 px) <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> </Grid.Resources> 個別値レンダラは UniqueValueRenderer クラスを使用して定義します この UniqueValueRenderer クラスは MyUniqueValueRenderer という Key 属性にて参照することができます <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:uniquevaluerenderer x:key="myuniquevaluerenderer"> </esri:uniquevaluerenderer> </Grid.Resources> 31

35 UniqueValueRenderer クラスがシンボルを適用するために使用する属性列名を指定します ここでは前述の手順で追加した MyFeatureLayer に個別値レンダラを適用するので MyFeatureLayer の属性列である STATE_NAME を指定します <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:uniquevaluerenderer x:key="myuniquevaluerenderer" Field="STATE_NAME"> </esri:uniquevaluerenderer> </Grid.Resources> UniqueValueRenderer クラスが使用するシンボルは UniqueValueRenderer クラスの Infos プロパテゖに定義します Infos プロパテゖは個別値を定義する UniqueValueInfo クラスのコレクションです <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:uniquevaluerenderer x:key="myuniquevaluerenderer" Field="STATE_NAME"> <esri:uniquevaluerenderer.infos> </esri:uniquevaluerenderer.infos> </esri:uniquevaluerenderer> </Grid.Resources> 32

36 以下では Infos プロパテゖ内に 3 つの UniqueValueInfo クラスを定義しています それぞれの UniqueValueInfo クラスの Value プロパテゖにはシンボルを設定するグラフゖックが持つ属性値の値 ( この例では STATE_NAME 列の値 ) Symbol プロパテゖには適用するシンボルへの参照が設定されて います <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:uniquevaluerenderer x:key="myuniquevaluerenderer" Field="STATE_NAME"> <esri:uniquevaluerenderer.infos> <esri:uniquevalueinfo Value="California" Symbol="StaticResource MyGreenFillSymbol" /> <esri:uniquevalueinfo Value="New York" Symbol="StaticResource MyYellowFillSymbol" /> <esri:uniquevalueinfo Value="Kansas" Symbol="StaticResource MyRedFillSymbol" /> </esri:uniquevaluerenderer.infos> </esri:uniquevaluerenderer> </Grid.Resources> 定義した UniqueValueRenderer クラスを適用するには FeatureLayer クラスの Renderer プロパテゖ で UniqueValueRenderer クラスを参照します <esri:featurelayer ID="MyFeatureLayer" OutFields="STATE_NAME" Where="(STATE_NAME = 'California') OR (STATE_NAME = 'New York') OR (STATE_NAME = 'Kansas')" Renderer="StaticResource MyUniqueValueRenderer" Url=" services/demographics/esri_census_usa/mapserver/5" /> 33

37 ArcGIS API for Silverlight プログラミング ガイド (v3.x) 以下は上述した手順にて作成したサンプルを実行した結果です それぞれのグラフゖックがその属性値に 応じて異なるシンボルで地図上に描画されています 34

38 個別値レンダラの作成 ( サンプルコード ) 以下はこのセクションで紹介した個別値レンダラを利用するサンプル XAML コードです ( コードビハ ンドフゔルへの記述は必要ありません ) <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" <Grid x:name="layoutroot" Background="White"> <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:uniquevaluerenderer x:key="myuniquevaluerenderer" Field="STATE_NAME"> <esri:uniquevaluerenderer.infos> <esri:uniquevalueinfo Value="California" Symbol="StaticResource MyGreenFillSymbol" /> <esri:uniquevalueinfo Value="New York" Symbol="StaticResource MyYellowFillSymbol" /> <esri:uniquevalueinfo Value="Kansas" Symbol="StaticResource MyRedFillSymbol" /> </esri:uniquevaluerenderer.infos> </esri:uniquevaluerenderer> </Grid.Resources> <esri:map x:name="mymap"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:featurelayer ID="MyFeatureLayer" OutFields="STATE_NAME" Where="(STATE_NAME = 'California') OR (STATE_NAME = 'New York') OR (STATE_NAME = 'Kansas')" Renderer="StaticResource MyUniqueValueRenderer" 35

39 </Grid> </esri:map.layers> </esri:map> </UserControl> Url=" services/demographics/esri_census_usa/mapserver/5" /> 36

40 数値分類レンダラの作成 数値分類レンダラを使用することで グラフゖックをその属性値の値に応じてグループ分けし そのグル ープごとに設定するシンボルを指定することができます ここでは数値分類レンダラの作成方法について 紹介します ( 以下で紹介するサンプルの XAML コード全体はこちらを参照してください ) 以下の例では作成する数値分類レンダラを Esri 社がホストするサンプルサーバ上の米国の州ポリゴン レヤに適用します あらかじめ Map コントロールには以下のようにサンプルレヤを参照する FeatureLayer クラスを追加しておきます <esri:map x:name="mymap"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:featurelayer ID="MyFeatureLayer" </esri:map.layers> </esri:map> OutFields="POP07_SQMI" Where="1=1" Url=" services/demographics/esri_census_usa/mapserver/5"/> FeatureLayer クラス (ID は MyFeatureLayer ) では取得する属性列として POP07_SQMI 列のみが 指定されています (OutFields="POP07_SQMI") POP07_SQMI 列には各州の人口密度の値が格納されて おり 以下の例ではこの人口密度の値に応じてシンボルを指定する数値分類レンダラを作成し MyFeatureLayer に適用します すべてのレコードを取得するため Where プロパテゖには "1=1" が指定されています 37

41 まず 数値分類レンダラが使用するシンボルを定義します 以下の例では 3 つの SimpleFillSymbol クラスをリソースとして定義しています 定義されているシンボルはそれぞれ以下の Key 属性にて参照することができます : MyGreenSymbol ( 塗りつぶし色 : 半透明緑 枠線 : 緑 2 px) MyYellowSymbol ( 塗りつぶし色 : 半透明黄色 枠線 : 黄色 2 px) MyRedSymbol ( 塗りつぶし色 : 半透明赤 枠線 : 赤 2 px) <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> </Grid.Resources> 個別値レンダラは ClassBreaksRenderer クラスを使用して定義します この ClassBreaksRenderer クラスは MyClassBreaksRenderer という Key 属性にて参照することができます <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:classbreaksrenderer x:name="myclassbreaksrenderer"> </esri:classbreaksrenderer> </Grid.Resources> 38

42 定義した ClassBreaksRenderer クラスがシンボルを定義するために使用する属性列名を指定します ここでは前述の手順で追加した MyFeatureLayer に個別値レンダラを適用するので MyFeatureLayer の属性列である POP07_SQMI を指定します <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:classbreaksrenderer x:name="myclassbreaksrenderer" Field="POP07_SQMI"> </esri:classbreaksrenderer> </Grid.Resources> ClassBreaksRenderer クラスには指定された属性列の値の範囲に応じてグラフゖックのシンボルをマッピングします このシンボルのマッピングの定義は UniqueValueRenderer クラスの Classes プロパテゖに定義します Classes プロパテゖは属性列の値の範囲を定義する ClassBreakInfo クラスのコレクションです <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:classbreaksrenderer x:name="myclassbreaksrenderer" Field="POP07_SQMI" > <esri:classbreaksrenderer.classes> </esri:classbreaksrenderer.classes> </esri:classbreaksrenderer> </Grid.Resources> 39

43 以下では Classes プロパテゖ内に 1 つ目の値の範囲として ClassBreakInfo クラスを定義しています MinimumValue プロパテゖに値の範囲の最小値 (0) MaximumValue プロパテゖに値の範囲の最大値 (50) が指定されています また この 0 から 50 の値の範囲の属性値を持つグラフゖックに設定するシンボルも指定されています ( Symbol="StaticResource MyGreenFillSymbol" ) <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:classbreaksrenderer x:name="myclassbreaksrenderer" Field="POP07_SQMI" > <esri:classbreaksrenderer.classes> <esri:classbreakinfo MinimumValue="0" MaximumValue="50" Symbol="StaticResource MyGreenFillSymbol" /> </esri:classbreaksrenderer.classes> </esri:classbreaksrenderer> </Grid.Resources> 40

44 同様に 51 から から 2000 の値の範囲も追加します <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:classbreaksrenderer x:name="myclassbreaksrenderer" Field="POP07_SQMI" > <esri:classbreaksrenderer.classes> <esri:classbreakinfo MinimumValue="0" MaximumValue="50" Symbol="StaticResource MyGreenFillSymbol" /> <esri:classbreakinfo MinimumValue="51" MaximumValue="125" Symbol="StaticResource MyYellowFillSymbol" /> <esri:classbreakinfo MinimumValue="126" MaximumValue="2000" </esri:classbreaksrenderer.classes> </esri:classbreaksrenderer> </Grid.Resources> Symbol="StaticResource MyRedFillSymbol" /> 定義した ClassBreaksRenderer クラスを適用するには FeatureLayer クラスの Renderer プロパテゖ にて ClassBreaksRenderer クラスを参照します <esri:featurelayer ID="MyFeatureLayer" OutFields="POP07_SQMI" Where="1=1" Renderer="StaticResource MyClassBreaksRenderer" Url=" services/demographics/esri_census_usa/mapserver/5"/> 41

45 ArcGIS API for Silverlight プログラミング ガイド (v3.x) 以下は上述した手順にて作成したサンプルを実行した結果です それぞれのグラフゖックの POP07_SQMI 列の値に応じて異なるシンボルが適用されています 42

46 数値分類レンダラの作成 ( サンプルコード ) 以下はこのセクションで紹介した数値分類レンダラを利用するサンプル XAML コードです ( コードビハ ンドフゔルへの記述は必要ありません ) <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" <Grid x:name="layoutroot" Background="White"> <Grid.Resources> <esri:simplefillsymbol x:key="mygreenfillsymbol" Fill="#6600FF00" BorderBrush="Green" BorderThickness="2" /> <esri:simplefillsymbol x:key="myyellowfillsymbol" Fill="#66FFFF00" BorderBrush="Yellow" BorderThickness="2" /> <esri:simplefillsymbol x:key="myredfillsymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:classbreaksrenderer x:name="myclassbreaksrenderer" <esri:classbreaksrenderer.classes> Field="POP07_SQMI" > <esri:classbreakinfo MinimumValue="0" MaximumValue="50" Symbol="StaticResource MyGreenFillSymbol" /> <esri:classbreakinfo MinimumValue="51" MaximumValue="125" Symbol="StaticResource MyYellowFillSymbol" /> <esri:classbreakinfo MinimumValue="126" MaximumValue="2000" Symbol="StaticResource MyRedFillSymbol" /> </esri:classbreaksrenderer.classes> </esri:classbreaksrenderer> </Grid.Resources> <esri:map x:name="mymap"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/world_street_map/mapserver" /> <esri:featurelayer ID="MyFeatureLayer" OutFields="POP07_SQMI" Where="1=1" Renderer="StaticResource MyClassBreaksRenderer" 43

47 </Grid> Url=" services/demographics/esri_census_usa/mapserver/5"/> </esri:map.layers> </esri:map> </UserControl> 44

48 フィーチャレイヤ フィーチャレイヤとは フゖーチャレヤは ArcGIS for Server マップサービス ArcGIS for Server フゖーチャサービスによってホストされるレヤのフゖーチャを表示するためのグラフゖックスレヤの拡張タプです グラフゖックスレヤのように フゖーチャレヤはジオメトリと属性情報で構成されたグラフゖックフゖーチャを表示します さらに フゖーチャレヤは以下の機能をサポートしています 編集 - フゖーチャレヤは Web 上でのフゖーチャを編集するためのキーとなります ESRI.ArcGIS.Clinet.Toolkit.dll ラブラリに含まれている編集コントロールはフゖーチャレヤを使用して動作するようにデザンされており フゖーチャサービスを参照するフゖーチャレヤ上でのみ編集を行うことができます 編集についての詳細やフゖーチャサービスの作成方法については Editing features トピック ( 英語 ) をご参照ください フィルタ設定 ある特定の属性をもつフゖーチャのみに対して操作を行いたい場合 必要なフゖーチャのみを取得するために フゖーチャレヤに Where 句を設定することができます また ArcGIS for Server フゖーチャレヤは ソースのマップドキュメントで設定されているフゖルタ設定をデフォルトで保持しているため マップドキュメント内のフゖルタ設定で抽出されたフゖーチャ以外のフゖーチャを ArcGIS for Server にリクエストすることはできません 時間の定義 特定の時間的な条件に一致するフゖーチャを見分けるためにフゖーチャレヤを使用することができます たとえば 1930 年よりも前に建築された住宅のみを表示したいとき 住宅を表すレヤが時間に対応したレヤであれば 建築年が 1930 年よりも前の住宅のみを表示するためにフゖーチャレヤに時間の定義を設定することができます 選択 フゖーチャレヤは ユーザが表示 編集 または解析の目的で分類したフゖーチャのサブセットを表す選択をサポートします ユーザは空間的 または属性条件を使用して 選択セットにフゖーチャを追加または削除することができます フゖーチャレヤは 選択セットをその他のフゖーチャとは異なるシンボルで描画することができます また 選択セットは 統計的計算の入力 ジオプロセシングツール グラフ そして 対話的な GIS 解析 / 調査の対象として使用することができます たとえば 複数の建物の周囲にポリゴンを描画し そのポリゴン内の建物に対して太陽光の日射量を計算するためにボタンをクリックする といった操作を実装することが可能です 選択は 編集中のフゖーチャを選択状態で表示 ( ハラト表示 ) するといった編集ワークフローでも 重要な役割を担っています 選択を行うには 個々のグラフゖックフゖーチャで Select() メソッドを呼ぶか Editor の Select コマンドを使用します 45

49 マップドキュメントまたはフゖーチャレヤに設定された条件式で抽出されたフゖーチャ以外のフゖー チャは選択することができない点に注意してください FeatureLayer ソース ArcGIS for Server マップサービス 説明 ArcGIS for Server ダナミック ( キャッシュがない ) マップサービスは フゖーチャレヤのソースとなるレヤを含むことができます 各レヤは マップサービスによって割り当てられるレヤ ID とマップサービス名を参照する URL によ って識別されます URL は ArcGIS REST Services Directory から取得します 例 : この California マップサービスは ID 8 が割り当てられた郡のフゖーチャを表すレヤを含みます ArcGIS for Server フィーチャサービス ArcGIS for Server フゖーチャサービスは個々のフゖーチャレヤを参照します 各レヤは サービスによって割り当てられるレヤ ID とフゖーチャサービス名を参照する URL によって表されます URL は ArcGIS REST Services Directory から取得します 例 : elds/featureserver/0 このサンプルサービスは カンザス州の油田とガス田を表しています Petroleum ( 石油 ) フゖーチャサービスは 現在のカンザス州の生産現場のフゖーチャを表す ID 0 が割り当てられたレヤを含んでいます ArcGIS for Server フゖーチャサービスは フゖーチャレヤが ArcSDE ジオデータベースでホストされている場合に 編集をサポートします サービスのソースマップドキュメントに設定されたシンボルやフゖーチャテンプレートを編集で利用する場合は フゖーチャサービスを使用します 46

50 フゖーチャレヤは グラフゖックスレヤでは利用できない機能を有効にできるいくつかのプロパテ ゖを保持しています 以下に示す表では FeatureLayer クラスの主なメンバについて説明します FeatureLayer メンバ Url プロパティ Where プロパティ Mode プロパティ 説明 ArcGIS for Server マップサービスによってホストされているレヤのゕドレスです フゖーチャレヤは ソースからのフゖーチャとして自動的に追加されます 特定レヤ内でどのフゖーチャを表示するかを定義する条件式です 条件式を指定しない場合は すべてのフゖーチャが取得されます サービスからフゖーチャを取得するための方法を定義します Snapshot モードは レヤがマップに追加された後すぐに レヤからすべてのフゖーチャを取得します これによって 情報を取得するためにサーバへのリクエストの回数は減りますが レヤに多くのフゖーチャが含まれている場合は サーバに負荷がかかる可能性があります 描画するフゖーチャの数によってブラウザの反応が遅くなる場合もあり またサービスが 1 度に返すことができるフゖーチャの制限 (ArcGIS Server のデフォルトは 500 ArcGIS Server 10 および ArcGIS 10.1 for Server では 1000) に達する可能性もあります Snapshot モードは 小さなデータセットや 一時的なデータを扱うときにのみ使用してください On Demand モードは 現在の表示範囲内に含まれるフゖーチャのみをリクエストし フゖーチャを取得します On Demand モードは クラゕントとサーバ間でより多くのやりとりを必要とするので 時系列を表現するゕニメーションの表示には使用するべきではありません しかし このモードでは必要以上のフゖーチャを取得することはありません Selection Only モードは 最初にフゖーチャをリクエストしません 選択が行われたときにのみ フゖーチャが追加されます このモードは クラゕントにすべてのフゖーチャを渡したくない または渡せない場合や 1 つまたは複数のフゖーチャをハラト表示したい場合に有効です ほとんどの場合 このモードは 選択フゖーチャの位置を表示するためにダナミックマップサービスレヤとともに使用されます OnDemandCacheSize プロパティ Mode が OnDemand の場合 クラゕント側にキャッシュとして格納する現在のマップ範囲外のフゖーチャの数を定義します フゖーチャがキャッシュに存在する場合 キャッシュから削除されていない限り フゖーチャが再びリクエストされることはありません ( キャッシュされたフゖーチャ数の上限に達するとフゖーチャはキャッシュから順次削除されます ) キャッシュは セッションを越えて保持されません 47

51 FeatureLayer メンバ SelectionColor プロパティ 説明フゖーチャレヤ内の選択されたグラフゖックフゖーチャを表示するための色およびビジュゕルブラシを定義します 各グラフゖックフゖーチャは Selected プロパテゖを保持しています また SelectedGraphics と SelectionCount プロパテゖ (GraphicsLayer に実装 ) は 選択されたグラフゖックの情報を返します TimeExtent プロパティ フゖーチャレヤ内で表される時間の範囲を参照します このプロパテゖは 読み 取り専用で ArcGIS for Server マップサービスまたはフゖーチャサービスによっ て定義されます DisableClientCaching プロパティ Update メソッド デフォルトでフゖーチャレヤは パフォーマンスを向上するためにブラウザキャッシュを使用します フゖーチャレヤの元のデータが変更され すぐにその変更を反映したい場合 このプロパテゖを True に設定します このメソッドは フゖーチャレヤのソースに対してクエリを再実行します レヤまたはテーブルの内容が サーバ側で変更されたとき クラゕントでフゖーチャレヤの変更を明示的に確認するために このメソッドを呼ぶことができます ただしく変更を反映させるために クラゕントキャッシュを無効にする必要がある場 合があります 48

52 フィーチャレイヤの追加方法 フゖーチャレヤは グラフゖックスレヤのように XAML を使用してマップに追加することができ ます 通常フゖーチャレヤは Map コントロールに追加されたベースレヤの下に追加します その ため事前に Map コントロールを追加した Silverlight ゕプリケーションを作成しておく必要があります 方法については マップの作成 トピックをご参照ください Map エレメント内で ID を MyFeatureLayer に設定したフゖーチャレヤを追加します <esri:map x:name="mymap" Extent="-130,10,-70,60" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:featurelayer ID="MyFeatureLayer" > </esri:featurelayer> </esri:map.layers> </esri:map> Url プロパテゖには フゖーチャレヤが使用するマップサービスのレヤを指定します URL は ArcGIS REST Services Directory から確認することができます 詳細については サービスについての 情報の確認 トピックをご参照ください 下記のコードでは ESRI_StatesCitiesRivers_USAservice マ ップサービスの Cities レヤを指定しています <esri:map x:name="mymap" Extent="-130,10,-70,60" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:featurelayer ID="MyFeatureLayer" Url=" rest/services/specialty/esri_statescitiesrivers_usa/ MapServer/0"> </esri:featurelayer> </esri:map.layers> </esri:map> 49

53 Where プロパテゖは 指定したマップサービスレヤに適用するフゖルタ設定を定義します Where プ ロパテゖを設定することで フゖルタ条件式に一致する属性をもつフゖーチャのみが描画されます 以下 の XAML に示すフゖルタ設定は フゖーチャレヤの POP1990 フゖールド内の値が より大 きいフゖーチャのみが描画されるように定義しています これは 1990 年の人口が 人よりも多い 都市のみを検索します 指定したレヤのすべてのフゖーチャを表示したい場合は フゖルタ設定を 1=1 のように 常に True になるように定義します <esri:map x:name="mymap" Extent="-130,10,-70,60" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:featurelayer ID="MyFeatureLayer" Url=" rest/services/specialty/esri_statescitiesrivers_usa/mapserver/0" Where="POP1990 > 75000" > </esri:featurelayer> </esri:map.layers> </esri:map> Renderer プロパテゖは レヤ内のすべてのフゖーチャに適用するレンダラを定義します このプロパテゖを指定するためには 最初に XAML にシンボルとレンダラを追加しておく必要があります シンボルとレンダラはリソースとして宣言することができ これらのリソースは一般的に ルートレゕウト要素 ( デフォルトでは Grid) のリソースとして追加します 以下の Silverlight ゕプリケーションでは 緑色のひし形のマーカーシンボルとシンボルを使用するレンダラを追加するために Map コントロールを記述する前に以下の XAML コードを追加しています <Grid.Resources> <esri:simplemarkersymbol x:key="mymarkersymbol" Color="Green" Style="Diamond" Size="14" /> <esri:simplerenderer x:key="mysimplerenderer" Symbol="StaticResource MyMarkerSymbol" /> </Grid.Resources> 50

54 これで FeatureLayer にレンダラを使用することができます x:key 属性を使用して Renderer プロ パテゖにレンダラをバンドします <Grid.Resources> <esri:simplemarkersymbol x:key="mymarkersymbol" Color="Green" Style="Diamond" Size="14" /> <esri:simplerenderer x:key="mysimplerenderer" Symbol="StaticResource MyMarkerSymbol" /> </Grid.Resources> <esri:map x:name="mymap" Extent="-130,10,-70,60" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:featurelayer ID="MyFeatureLayer" Url=" services/specialty/esri_statescitiesrivers_usa/mapserver/0" Where="POP1990 > 75000" Renderer="StaticResource MySimpleRenderer" > </esri:featurelayer> </esri:map.layers> </esri:map> 51

55 ArcGIS API for Silverlight プログラミング ガイド (v3.x) ゕプリケーションを実行すると 1990 年の人口が 人よりも多いゕメリカの都市が緑色のひし形の シンボルで表示されます 上述した方法で都市を表示するには 2 つの問題があります 1 つ目は 都市のシンボルが重なっていて 都市がいくつ表示されているかを確認することができないエリゕがあることです 2 つ目は 多くのグラ フゖックが表示されていることです ゕプリケーションが実行されているコンピュータの処理能力にもよ りますが グラフゖックの描画パフォーマンスに影響が出る可能性があります 52

56 これらの問題は フゖーチャレヤの ClusterFeatures プロパテゖを有効 (True) にすることによって 軽減することができます フゖーチャのクラスタ化についての詳細な情報については Clustering のトピ ック ( 英語 ) をご参照ください ClusterFeatures プロパテゖを有効にすることで複数のポントグラフ ゖックをより少ないポントグラフゖックにまとめて そのポントグラフゖックが表すフゖーチャの 数を表示します 以下のコードでは例として上述したコードにクラスタリングを適用しています <Grid.Resources> <esri:simplemarkersymbol x:key="mymarkersymbol" Color="Green" Style="Diamond" Size="14" /> <esri:simplerenderer x:key="mysimplerenderer" Symbol="StaticResource MyMarkerSymbol" /> </Grid.Resources> <esri:map x:name="mymap" Extent="-130,10,-70,60" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:featurelayer ID="MyFeatureLayer" Url=" services/specialty/esri_statescitiesrivers_usa/mapserver/0" Where="POP1990 > 75000" Renderer="StaticResource MySimpleRenderer" > <esri:featurelayer.clusterer> <esri:flareclusterer FlareBackground="#99FF0000" FlareForeground="White" MaximumFlareCount="9" /> </esri:featurelayer.clusterer> </esri:featurelayer> </esri:map.layers> </esri:map> 53

57 ArcGIS API for Silverlight プログラミング ガイド (v3.x) クラスタ適用後のゕプリケーションの Cities レ ヤは以下のように表示されます フゖーチャ レ ヤでは どのフゖールドをレ ヤのフゖーチャ グラフゖック に含めるかを指定するこ ともできます 指定されたフゖールドに対応する情報がフゖーチャ レ ヤを含むマップ サービス レ ヤ から与えられます フゖーチャに含めるフゖールドは OutFields プロパテゖに文字列として指定します XAML コードに文字列を指定するには 最初に XML 名前空間を String クラスを含む CLR 名前空間を 追加する必要があります このクラスは mscorlib ゕセンブリの System 名前空間に含まれています 以下に示すように XML 名前空間を追加します <UserControl x:class="silverlightapp.mainpage" xmlns=" xmlns:x=" xmlns:esri="clr-namespace:esri.arcgis.client;assembly =ESRI.ArcGIS.Client" xmlns:esrisymbols="clr-namespace:esri.arcgis.client.symbols ;assembly=esri.arcgis.client" xmlns:sys="clr-namespace:system;assembly=mscorlib"> 54

58 以下では CITY_NAME と POP1990 フゖールドを含めるために OutFields プロパテゖを以下のように 指定します ここで指定されたフゖールドの値は MapTips やその他のデータコントロール ( 例 : DataGrid) に Silverlight データバンデゖング機能を利用してバンドすることによって表示すること ができます <esri:simplemarkersymbol x:key="mymarkersymbol" Color="Green" Style="Diamond" Size="14" /> <esri:simplerenderer x:key="mysimplerenderer" Symbol="StaticResource MyMarkerSymbol" /> </Grid.Resources> <esri:map x:name="mymap" Extent="-130,10,-70,60" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:featurelayer ID="MyFeatureLayer" Url=" services/specialty/esri_statescitiesrivers_usa/mapserver/0" Where="POP1990 > 75000" Renderer="StaticResource MySimpleRenderer" > <esri:featurelayer.clusterer> <esri:flareclusterer FlareBackground="#99FF0000" FlareForeground="White" MaximumFlareCount="9" /> </esri:featurelayer.clusterer> <esri:featurelayer.outfields> <sys:string>city_name</sys:string> <sys:string>pop1990</sys:string> </esri:featurelayer.outfields> </esri:featurelayer> </esri:map.layers> </esri:map> 55

59 タスク タスクの概要 タスクの種類 多くの場合 Web GIS ゕプリケーションは単純な地図表示だけでなく 検索や解析などの機能を提供する必要があります 例えば河川から一定距離内に存在する土地区画を表示したり 提案された出店候補地から 5 分以内に車で到達できる範囲を表示したりする機能が求められる場合があります このような機能を実装するために ArcGIS API for Silverlight では一連のタスククラスを提供しています タスククラスを利用することで Web GIS ゕプリケーションは ArcGIS for Server のサービスから容易に必要な情報を取得し ユーザに提供することが可能になります ArcGIS API for Silverlight で利用可能なタスククラスは以下の通りです クエリタスクマップサービスレヤから指定した属性値を持つフゖーチャを取得します 検索タスク指定した属性値を持つマップサービス内のフゖーチャを取得します 個別属性表示タスク指定した図形と交差するマップサービス内のフゖーチャを取得します ジオメトリタスクバッフゔ 投影変換 単純化などの図形処理を行います ジオプロセシングタスク ArcGIS for Server にジオプロセシングサービスとして公開されたジオプロセシングモデルを実行し GIS の高度な解析処理を実行します ルートタスク指定された 2 つ以上の位置について バリゕ 停止順序 到着時刻 U ターン制限 停止時間などのパラメータを考慮して 最適なルート検索およびルート案内を実行します 56

60 タスクの利用 ArcGIS API for Silverlight が提供するタスクの用途は様々ですが それぞれのタスクの特徴や利用方法は 多くの点で共通しています まず すべてのタスクは固定のユーザンタフェースを持ちません これはそれぞれのゕプリケーション がそれぞれの要件に最適な方法でタスクを利用できるようにするためです したがって 開発者は自身で タスクの入力パラメータを指定するンタフェースやタスクの結果を表示するンタフェースを実装する 必要があります また タスクはリソースデゖクショナリやコードビハンドプログラムなどゕプリケーションの非ビジ ュゕル要素内において生成されます これはすべてのタスクが ゕプリケーションのビジュゕル要素とは 関係しない何らかの GIS ロジックを実行する必要があり Silverlight においてロジックの実行はコード ビハンドの.NET コードにおいて記述されるためです 上記のような共通の特徴に加えて それぞれのタスクは類似したコードパターンを用いて実装することが できます 最初に 使用するタスクを初期化するためにそのタスクが処理を実行するマップサービスもしくはマップ サービスレヤの Url をタスクのコンストラクタに渡します 以下の例では検索タスクの初期化コード を示しています FindTask findtask = new FindTask(" rest/services/demographics/esri_census_usa/mapserver/"); 57

61 次にタスクを実行するための入力パラメータを指定します 指定する必要がある入力パラメータは実行す るタスクの処理によって異なります 以下の例では個別属性表示タスクの入力パラメータを指定していま す // 入力パラメータの初期化 IdentifyParameters identifyparameters = new IdentifyParameters(); // 検索するレヤ identifyparameters.layeroption = LayerOption.all; // 検索するマップのエクステント identifyparameters.mapextent = MyMap.Extent; // 検索するマップの幅 identifyparameters.width = (int)mymap.actualwidth; // 検索するマップの高さ identifyparameters.height = (int)mymap.actualheight; // 検索に使用する図形 identifyparameters.geometry = args.mappoint; 最後にタスクの処理を実行します クエリタスク 検索タスク 個別属性表示タスクが実行できる処理の種類は 1 種類のみであり 処理は ExecuteAsync メソッドによって実行します ルートタスクが実行できる処理も 1 つのみですが 処理は SolveAsync メソッドによって実行します querytask.executeasync(query); 58

62 これらのタスクは処理が完了した際にベントを発生させます 発生するベント名は処理を実行したメソッド名に沿って たとえば ExecuteAsync メソッドが完了した際に発生するベントは ExecuteCompleted ベントです ( ルートタスクの SolveAsync メソッドの完了ベントは SolveCompleted ベントです ) タスクの実行結果は ベントの 2 つめのパラメータに格納されます // タスク完了時のベントハンドラをゕタッチ findtask.executecompleted += new EventHandler<FindEventArgs> (findtask_executecompleted); void findtask_executecompleted(object sender, FindEventArgs e) // タスクの結果を操作 また クエリタスク 個別属性表示タスク 検索タスクには LastResult プロパテゖがあり 最後に実行されたタスクの実行結果が格納されています このプロパテゖは データバンデゖングによってタスクが実行された場合に自動的に表示する結果の値を更新したり タスクの実行結果を後から参照する際に使用したりすることができます ジオメトリタスクやジオプロセシングタスクなどのタスクも上述した手順に類似したパターンで利用することができますが これらのタスクは複数の種類の処理を実行することができます これらのタスクの処理は < 処理名 >Async メソッドによって実行します 処理が完了すると < 処理名 >Completed ベントが発生し ベントのプロパテゖに値が格納されます たとえば ジオメトリタスクを使用してバッフゔを生成する場合 処理は BufferAsync メソッドによって実行され 処理が完了すると BufferCompleted ベントが発生します 以下では 特に一般的に使用される クエリタスク 検索タスク 個別属性表示タスク について詳細をご紹介します 59

63 クエリタスク (QueryTask クラス ) クエリタスクを使用すると レヤから検索条件に一致するフゖーチャを取得することができます 検索条件には 図形情報もしくは属性値を使用することができます 取得したフゖーチャの図形情報や属性情報は.NET コードを使用して Silverlight ゕプリケーション上に表示することができます 開発者はクエリタスクを使用するためのユーザンタフェースと実行ロジックを実装する必要があります クエリタスク ( サンプルコード ) 以下はクエリタスクを実行する Silverlight ゕプリケーションの XAML と.NET コード (C#) です このゕプリケーションでは TextBox コントロールを使用して検索条件を指定し 実行ボタンによってタスクを実行します 実行結果は マップチップを有効化したグラフゖックスレヤに追加されます サンプルコードの詳細については クエリタスク ( サンプルコード ) の解説 をご参照ください 60

64 XAML <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" <Grid x:name="layoutroot" Background="White"> <!-- クエリタスクの実行結果用シンボル --> <Grid.Resources> <esri:simplefillsymbol x:name="resultsfillsymbol" Fill="#500000FF" BorderBrush="Blue" BorderThickness="1" /> </Grid.Resources> <!-- マップ --> <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> </Grid> <StackPanel> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> <StackPanel Orientation="Horizontal"> <TextBlock Text=" 人口密度 (2007): " /> <TextBlock Text="Binding [POP07_SQMI]" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> <!-- クエリタスクンタフェース --> 61

65 </Grid> <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> <TextBlock Text=" 検索条件を入力して実行ボタンをクリックします " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="querytextbox" Width="150" Margin="15,22,0,0" Text="POP07_SQMI > 500" /> <Button x:name="querybutton" Content=" 実行 " Margin="168,23,0,0" Click="QueryButton_Click" /> </Canvas> </UserControl> 62

66 コードビハインド using System.Windows; using System.Windows.Controls; using System.Windows.Media; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Tasks; using ESRI.ArcGIS.Client.Symbols; namespace Sample public partial class MainPage : UserControl public MainPage() InitializeComponent(); // 実行ボタンがクリックされたらクエリタスクを実行 private void QueryButton_Click(object sender, RoutedEventArgs e) // クエリタスクの初期化 QueryTask querytask = new QueryTask(" + "services/demographics/esri_census_usa/mapserver/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; // クエリタスクの入力パラメータ : 図形情報 州名 (STATE_NAME) 人口密度 (POP07_SQMI) を返す Query query = new Query(); query.returngeometry = true; query.outfields.addrange(new string[] "STATE_NAME", "POP07_SQMI" ); // TextBox のテキストを検索条件に設定 query.where = QueryTextBox.Text; querytask.executeasync(query); 63

67 // クエリタスクが完了したら結果を描画 private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) // 前回の結果をクリゕ GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); // 新しい結果を検証 FeatureSet featureset = args.featureset; if (featureset.features.count > 0) else // 結果をマップに追加 foreach (Graphic resultfeature in featureset.features) resultfeature.symbol = ResultsFillSymbol; graphicslayer.graphics.add(resultfeature); MessageBox.Show(" 該当するフィーチャが見つかりません "); // クエリタスク失敗時の処理 private void QueryTask_Failed(object sender, TaskFailedEventArgs args) MessageBox.Show(" クエリが失敗しました : " + args.error); 64

68 クエリタスク ( サンプルコード ) の解説 以下では前述したサンプルコードの内容について解説します コードの全文についてはこちらをご参照ください クエリタスクの入力インタフェースの作成タスクは固定のユーザンタフェースを持たないため 開発者はユーザが検索条件を入力しクエリタスクを実行するためのンタフェースを作成する必要があります このサンプルコードでは 検索条件を入力するための TextBox コントロール タスクを実行するための Button コントロールを作成します 1. ゕプリケーションの XAML コードにンタフェースを保持する Canvas コントロールを追加 します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" ></Canvas> 2. ンタフェースの背景に使用する Rectangle コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> </Canvas> 3. ユーザに使用方法を通知する TextBlock コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> <TextBlock Text=" 検索条件を入力して実行ボタンをクリックします " Foreground="White" FontSize="10" Margin="10,5,0,0" /> </Canvas> 4. 検索条件を入力する TextBox コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> <TextBlock Text=" 検索条件を入力して実行ボタンをクリックします " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="querytextbox" Width="150" Margin="15,22,0,0" /> </Canvas> 65

69 5. 既定の検索条件を指定します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> <TextBlock Text=" 検索条件を入力して実行ボタンをクリックします " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="querytextbox" Width="150" Margin="15,22,0,0" Text="POP07_SQMI > 500" /> </Canvas> 6. クエリタスクを実行するための Button コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> <TextBlock Text=" 検索条件を入力して実行ボタンをクリックします " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="querytextbox" Width="150" Margin="15,22,0,0" Text="POP07_SQMI > 500" /> <Button x:name="querybutton" Content=" 実行 " Margin="168,23,0,0" /> </Canvas> 7. Button コントロールがクリックされた際のベントハンドラをゕタッチします ( ハンドラの 実装方法については クエリタスク実行ロジックの実装 で解説します ) <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="250" Height="55" /> <TextBlock Text=" 検索条件を入力して実行ボタンをクリックします " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="querytextbox" Width="150" Margin="15,22,0,0" Text="POP07_SQMI > 500" /> <Button x:name="querybutton" Content=" 実行 " Margin="168,23,0,0" Click="QueryButton_Click" /> </Canvas> 66

70 クエリタスクの出力インタフェースの作成 タスクの実行結果を表示するためには出力ンタフェースを作成する必要があります サンプルゕプリケ ーションでは マップにグラフゖックスレヤを追加し タスクの結果を描画します また 結果のグラ フゖックの属性情報を表示するためにグラフゖックスレヤにマップチップを追加します 1. 検索結果に使用するシンボルをリソースとして定義します ( シンボルについての詳細は シンボルとレンダラ を参照してください ) <Grid.Resources> <esri:simplefillsymbol x:name="resultsfillsymbol" Fill="#500000FF" BorderBrush="Blue" BorderThickness="1" /> </Grid.Resources> 2. これ以降の手順では 下記の例のように XAML にマップが追加されており 背景用のマップサ ービスレヤが 1 つ追加されている状態から 出力ンタフェースを作成する手順の解説を します <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> </esri:map.layers> </esri:map> 67

71 3. マップに結果を表示するためのグラフゖックスレヤとして GraphicsLayer クラスを追加し ます (ID は MyGraphicsLayer ) GraphicsLayer クラスが他のレヤよりも上に表示さ れるように他のマップ内のレヤよりも下の行に追加されています <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> </esri:graphicslayer> </esri:map.layers> </esri:map> 4. GraphicsLayer クラスの MapTip プロパテゖを設定します MapTip プロパテゖには レヤ のマップチップの背景と枠線を定義することができます 以下に示す例では Grid コントロー ル内に StackPanel コントロールと Border コントロールを配置して単純な長方形のマップ チップを作成しています マップチップの背景色は Grid コントロールの Background プロ パテゖに指定し 枠線色は Border コントロールの BorderBrush プロパテゖに指定します マップチップのコンテナをこのように定義すると マップチップの内容に応じてコンテナの サズは自動的に変更され 以下の手順ではコンテナ内に米国の州名と州の人口密度が表示さ れるように設定を行います <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> 68

72 </esri:map.layers> </esri:map> 5. 州名を保持するための TextBlock コントロールを追加します <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel> <TextBlock FontWeight="Bold" /> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 69

73 6. 追加した TextBlock コントロールの Text プロパテゖにグラフゖックの Attributes プロパ テゖをバンドします グラフゖックの Attributes プロパテゖはフゖールド名としての Key と属性値としての Value のペゕのコレクションです ここでは STATE_NAME を Key と して指定し STATE_NAME フゖールドの属性値を Text プロパテゖにバンドします <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 70

74 7. 人口密度のラベルと値を格納する StackPanel コントロールを追加します <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> <StackPanel Orientation="Horizontal"> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 71

75 8. 人口密度のラベルを表示する TextBlock コントロールを追加します <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> <StackPanel Orientation="Horizontal"> <TextBlock Text=" 人口密度 (2007): " /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 72

76 9. 人口密度の値を表示する TextBlock コントロールを追加し Text プロパテゖに POP07_SQMI 列の属性値とバンドします <esri:map x:name="mymap" Extent="-80.05,36.93,-68.79,43.18" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> <StackPanel Orientation="Horizontal"> <TextBlock Text=" 人口密度 (2007): " /> <TextBlock Text="Binding [POP07_SQMI]" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 73

77 クエリタスク実行ロジックの実装 この手順では クエリタスクの実行ロジックを実装します クエリタスクの実行ロジックは 1) タスクの実行 2) 実行結果の表示 3) エラー制御の 3 つのパートに分けることができます 以下ではこの 3 つの実行ロジックを Silverlight ゕプリケーションのメンページのコードビハンドフゔル ( 例 :MainPage.xaml.cs) に記述します コードビハンドでは XAML に定義されたエレメントを x:name 属性や ID プロパテゖを使用して参照し利用します 以下の手順では XAML に前述した クエリタスク入力ンタフェースの作成 および クエリタスク出力ンタフェースの作成 の手順に記述されているオブジェクトが定義されているものとして解説を行います クエリタスクの実行 タスクを実行するにはまず タスクを初期化しクエリを実行するレヤを指定します そして タスクが完了した際のベントハンドラを記述し タスクの入力パラメータを指定して タスクを実行するメソッドを呼び出します 以下では これらのステップをコードビハンドフゔルに記述する方法を解説します 1. コードビハンドに XAML に定義した検索実行ボタン (QueryButton) の Click ベントのベントハンドラを記述します private void QueryButton_Click(object sender, RoutedEventArgs e) 2. Click ベントのベントハンドラ内で QueryTask クラスを初期化します QueryTask クラスのコンストラクタにはクエリを実行する対象のマップサービスレヤの Url を指定します ArcGIS for Server のサービスレヤの URL は ArcGIS for Server の ArcGIS REST Services Direcotry で確認することができます 以下の例では Esri 社がホストするサンプルサーバにホストされている米国州のマップサービスレヤの Url を指定しています private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); 74

78 3. QueryTask クラスの ExecuteCompted ベントにベントハンドラをゕタッチします このベントはクエリタスクが正常に実行完了した際に発生します ( ベントハンドラの実装方法についてはこの後のセクションで解説します ) private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; 4. QueryTask クラスの Failed ベントのベントハンドラをゕタッチします このベントはクエリタスクが実行に失敗した時に発生します ( ベントハンドラの実装方法については この後のセクションで解説します ) private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; 5. Query クラスを定義します Query クラスは QueryTask クラスの入力パラメータを定義するために使用されます private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; Query query = new Query(); 75

79 6. このサンプルではクエリ結果をマップ上に描画するので クエリ結果とともにジオメトリ ( 図形情報 ) が返されるように指定します private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; Query query = new Query(); query.returngeometry = true; 7. クエリ結果に含まれるフゖールドを指定します 以下では レヤフゖールドから州名 (STATE_NAME) と人口密度 (POP07_SQMI) が返されるように指定しています Web GIS ゕプリケーションでは ネットワークの負荷を低減させるために 常に必要最小限のフゖールドを要求することが重要です private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; Query query = new Query(); query.returngeometry = true; query.outfields.addrange(new string[] "STATE_NAME", "POP07_SQMI" ); 76

80 8. クエリの Where 句 ( 検索条件 ) のテキストとして XAML に定義された TextBox コントロ ール (QueryTextBox) の Text プロパテゖを設定します クエリの Where 句はフゖーチャ が検索結果に含まれるために満たす必要がある検索条件です private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; Query query = new Query(); query.returngeometry = true; query.outfields.addrange(new string[] "STATE_NAME", "POP07_SQMI" ); query.where = QueryTextBox.Text; 9. Query クラスを引数として クエリタスクを実行します private void QueryButton_Click(object sender, RoutedEventArgs e) QueryTask querytask = new QueryTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/5"); querytask.executecompleted += QueryTask_ExecuteCompleted; querytask.failed += QueryTask_Failed; Query query = new Query(); query.returngeometry = true; query.outfields.addrange(new string[] "STATE_NAME", "POP07_SQMI" ); query.where = QueryTextBox.Text; querytask.executeasync(query); 77

81 クエリタスクの実行結果の表示 以下の手順ではクエリタスクの実行結果をマップに表示する方法を解説します 1. クエリタスクの ExecuteCompleted ベントのベントハンドラを記述します このハンドラはクエリタスクが正常に実行完了するたびに呼び出されます 検索条件に一致する検索結果のレコードセット (FeatureSet) は ベントハンドラの args パラメータに格納されます private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) 2. 検索結果を表示するグラフゖックスレヤを取得し 前回の検索結果のグラフゖックをすべて 削除します private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); 3. 検索条件に一致する検索結果のレコードセットが存在するか確認します private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); FeatureSet featureset = args.featureset; if (featureset.features.count > 0) else 78

82 4. 検索結果のレコードセットが存在する場合 すべてのレコードセットのグラフゖックに XAML に定義したシンボルを設定し グラフゖックスレヤに追加します private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); FeatureSet featureset = args.featureset; if (featureset.features.count > 0) foreach (Graphic resultfeature in featureset.features) else resultfeature.symbol = ResultsFillSymbol; graphicslayer.graphics.add(resultfeature); 79

83 5. 検索条件に一致するフゖーチャが見つからない場合は ユーザに通知を行います private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); FeatureSet featureset = args.featureset; if (featureset.features.count > 0) foreach (Graphic resultfeature in featureset.features) else resultfeature.symbol = ResultsFillSymbol; graphicslayer.graphics.add(resultfeature); MessageBox.Show(" 該当するフィーチャが見つかりません "); 80

84 クエリタスクのエラー制御 以下ではクエリタスクが処理の実行に失敗した場合のエラーを制御する方法について紹介します 1. クエリタスクの Failed ベントのベントハンドラを記述します このベントハンドラはクエリタスクが処理の実行に失敗した場合に呼び出されます private void QueryTask_Failed(object sender, TaskFailedEventArgs args) 2. MessageBox コントロールを使用してユーザにエラーを通知します private void QueryTask_Failed(object sender, TaskFailedEventArgs args) MessageBox.Show(" クエリが失敗しました : " + args.error); 81

85 検索タスク (FindTask クラス ) 検索タスクを使用するとマップ内の 1 つ以上のレヤから検索条件に一致するフゖーチャを取得することができます 取得したフゖーチャの図形情報や属性情報は.NET コードを使用して Silverlight ゕプリケーション上に表示します 開発者は検索タスクを使用するためのユーザンタフェースと実行ロジックを実装する必要があります 検索タスク ( サンプルコード ) 以下は検索タスクを実行する Silverlight ゕプリケーションの XAML と.NET コード (C#) です このゕプリケーションでは TextBox コントロールを使用して検索条件を指定し 実行ボタンによってタスクを実行します 実行結果はマップチップを有効化したグラフゖックスレヤに追加されます サンプルコードの詳細については 検索タスク ( サンプルコード ) の解説 をご参照ください 82

86 XAML <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" <Grid x:name="layoutroot" Background="White"> <!-- 検索タスクの実行結果用シンボル --> <Grid.Resources> <esri:simplefillsymbol x:name="resultsfillsymbol" Fill="#64FF0000" </Grid.Resources> <!-- マップ --> BorderBrush="Red" BorderThickness="2" /> <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> </Grid> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> </StackPanel> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> <TextBlock Text=" County, " FontWeight="Bold" /> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> <StackPanel Orientation="Horizontal"> <TextBlock Text=" 人口 (2007): " /> <TextBlock Text="Binding [POP2007]" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> 83

87 </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> <!-- 検索タスクンタフェース --> <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> <TextBlock Text=" 次の文字列を含む郡を検索 : " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="findtextbox" Width="150" Margin="15,22,0,0" Text="Wash" /> <Button x:name="findbutton" Content=" 検索 " Margin="168,23,0,0" Click="FindButton_Click" /> </Canvas> </UserControl> 84

88 コードビハインド (C#) using System.Windows; using System.Windows.Controls; using System.Windows.Media; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Tasks; namespace Sample public partial class MainPage : UserControl public MainPage() InitializeComponent(); // 検索ボタンがクリックされたらタスクを実行 private void FindButton_Click(object sender, RoutedEventArgs e) // 検索タスクの初期化 FindTask findtask = new FindTask(" rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; // 検索パラメータの初期化 検索を行うフゖールドとして Name 列を指定しています FindParameters findparameters = new FindParameters(); findparameters.layerids.addrange(new int[] 3 ); findparameters.searchfields.addrange(new string[] "NAME" ); findparameters.returngeometry = true; // TextBox のテキストを検索条件として指定 findparameters.searchtext = FindTextBox.Text; 85

89 findtask.executeasync(findparameters); // 検索が完了したら結果を描画 private void FindTask_ExecuteCompleted(object sender, FindEventArgs args) // 前回の検索結果をクリゕ GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); // 新規検索結果をチェック if (args.findresults.count > 0) // マップに結果を追加 foreach (FindResult result in args.findresults) result.feature.symbol = ResultsFillSymbol; graphicslayer.graphics.add(result.feature); else MessageBox.Show(" 該当するレコードが見つかりません "); // 検索が失敗したことを通知 private void FindTask_Failed(object sender, TaskFailedEventArgs args) MessageBox.Show(" 検索が失敗しました : " + args.error); 86

90 検索タスク ( サンプルコード ) の解説 以下では前述したサンプルコードの内容について解説します コードの全文についてはこちらをご参照く ださい 検索タスクの入力インタフェースの作成 タスクは固定のユーザンタフェースを持たないため 開発者は自身でユーザが検索条件を入力し検索タ スクを実行するためのンタフェースを作成する必要があります このサンプルコードでは 検索条件を 入力するための TextBox コントロール タスクを実行するための Button コントロールを作成します 1. ゕプリケーションの XAML フゔルにンタフェースを保持する Canvas コントロールを追 加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > </Canvas> 2. ンタフェースの背景に使用する Rectangle コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> </Canvas> 3. ユーザに使用方法を通知する TextBlock コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> <TextBlock Text=" 次の文字列を含む郡を検索 : " Foreground="White" FontSize="10" Margin="10,5,0,0" /> </Canvas> 87

91 4. 検索条件を入力する TextBox コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> <TextBlock Text=" 次の文字列を含む郡を検索 : " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="findtextbox" Width="150" Margin="15,22,0,0" /> </Canvas> 5. TextBox コントロールの Text プロパテゖに既定の検索条件を指定します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> <TextBlock Text=" 次の文字列を含む郡を検索 : " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="findtextbox" Width="150" Margin="15,22,0,0" Text="Wash" /> </Canvas> 6. 検索タスクを実行するための Button コントロールを追加します <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> <TextBlock Text=" 次の文字列を含む郡を検索 : " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="findtextbox" Width="150" Margin="15,22,0,0" Text="Wash" /> <Button x:name="findbutton" Content=" 検索 " Margin="168,23,0,0" /> </Canvas> 88

92 7. Button コントロールがクリックされた際のベントハンドラをゕタッチします ( ハンドラの実 装方法についてはこの後のセクションで解説します ) <Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="230" > <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="210" Height="55" /> <TextBlock Text=" 次の文字列を含む郡を検索 : " Foreground="White" FontSize="10" Margin="10,5,0,0" /> <TextBox x:name="findtextbox" Width="150" Margin="15,22,0,0" Text="Wash" /> <Button x:name="findbutton" Content=" 検索 " Margin="168,23,0,0" Click="FindButton_Click" /> </Canvas> 89

93 検索タスクの出力インタフェースの作成 タスクの実行結果を表示するためには 出力ンタフェースを作成する必要があります サンプルゕプリ ケーションでは マップにグラフゖックスレヤを追加し タスクの結果を描画します また結果のグラ フゖックの属性情報を表示するためにグラフゖックスレヤにマップチップを追加します 1. 検索結果に使用するシンボルをリソースとして定義します ( シンボルについての詳細は シンボルとレンダラ を参照してください ) <Grid.Resources> <esri:simplefillsymbol x:name="resultsfillsymbol" Fill="#500000FF" BorderBrush="Blue" BorderThickness="1" /> </Grid.Resources> 2. 以下の手順では 下記の例のように XAML にマップが追加されており 背景用のマップサー ビスレヤが 1 つ追加されている状態から出力ンタフェースを作成する手順について解説 します <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" </esri:map.layers> </esri:map> Url=" services/esri_streetmap_world_2d/mapserver"/> 3. マップに結果を表示するためのグラフゖックスレヤとして GraphicsLayer クラスを追加し ます (ID は MyGraphicsLayer ) GraphicsLayer クラスが他のレヤよりも上に表示さ れるように他のマップ内のレヤクラスよりも下の行に追加されています <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> </esri:graphicslayer> </esri:map.layers> </esri:map> 90

94 4. GraphicsLayer クラスの MapTip プロパテゖを設定します MapTip プロパテゖにはマップ チップの背景と枠線を定義することができます 以下の例では Grid コントロール内に StackPanel コントロールと Border コントロールを配置して 単純な長方形のマップチップ を作成しています マップチップの背景色は Grid コントロールの Background プロパテゖ に指定し 枠線色は Border コントロールの BorderBrush プロパテゖに指定します マップ チップのコンテナをこのように定義すると マップチップの内容に応じてコンテナのサズは 自動的に変更されます 以下のステップではこのコンテナ内に郡名 州名および郡の人口が表 示されるように設定を行います <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 91

95 5. Orientation プロパテゖを Horizontal ( 水平 ) に指定した StackPanel コントロールを追加し ます この StackPanel コントロールは検索結果レコードの郡名および州名を格納します <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 92

96 6. 郡名を保持するための TextBlock コントロールを追加します 郡名は太字で表示します (FontWeight="Bold") <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock FontWeight="Bold" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 93

97 7. 追加した TextBlock コントロールの Text プロパテゖにグラフゖックの属性をバンドしま す グラフゖックの属性は フゖールド名としての Key と属性値としての Value のペゕのコ レクションです ここでは NAME 列を Key として指定し NAME フゖールドの属性値を Text プロパテゖにバンドします <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 94

98 8. 郡名のあとに続く County, 文字列を保持する TextBlock コントロールを追加します <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" ld_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> <TextBlock Text=" County, " FontWeight="Bold" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 95

99 9. 州名を表示する TextBlock コントロールを追加し Text プロパテゖに STATE_NAME 列の値 をバンドします <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> <TextBlock Text=" County, " FontWeight="Bold" /> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 96

100 10. 人口のラベルと値を保持する StackPanel コントロールを追加します <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> <TextBlock Text=" County, " FontWeight="Bold" /> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> </StackPanel> <StackPanel Orientation="Horizontal"> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 97

101 11. 人口のラベルを表示する TextBlock コントロールを追加します <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> <TextBlock Text=" County, " FontWeight="Bold" /> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text=" 人口 (2007): " /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 98

102 12. 人口の値を表示する TextBlock コントロールを追加し Text プロパテゖに POP2007 列の値 をバンドします <esri:map x:name="mymap" Extent="-125, 25, -65, 55" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="MyGraphicsLayer"> <esri:graphicslayer.maptip> <Grid Background="LightYellow"> <StackPanel Margin="5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Binding [NAME]" FontWeight="Bold" /> <TextBlock Text=" County, " FontWeight="Bold" /> <TextBlock Text="Binding [STATE_NAME]" FontWeight="Bold" /> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text=" 人口 (2007): " /> <TextBlock Text="Binding [POP2007]" /> </StackPanel> </StackPanel> <Border BorderBrush="Black" BorderThickness="1" /> </Grid> </esri:graphicslayer.maptip> </esri:graphicslayer> </esri:map.layers> </esri:map> 99

103 検索タスクの実行ロジックの実装 この手順では 検索タスクの実行ロジックを実装します 検索タスクの実行ロジックは 1) タスクの実行 2) 実行結果の表示 3) エラー制御の 3 つのパートにわけることができます 以下ではこの 3 つの実行ロジックを Silverlight ゕプリケーションのメンページのコードビハンドフゔル ( 例 :MainPage.xaml.cs) に記述します コード内では XAML 内に定義されたエレメントを x:name 属性や ID プロパテゖを使用して参照し利用します 以下の手順では XAML に前述した 検索タスクの入力ンタフェースの作成 および 検索タスクの出力ンタフェースの作成 の手順に記述されているオブジェクトが定義されているものとして解説を行います 検索タスクの実行 タスクを実行するには まずタスクを初期化し検索を実行するマップサービスを指定します そしてタスクが完了した際に実行するベントハンドラを記述し タスクのクエリパラメータを指定して タスクを実行するメソッドを呼び出します 以下では これらのステップをコードビハンドに記述する方法を解説します 1. コードビハンドにて XAML に定義した検索実行ボタン (FindButton) の Click ベントのベントハンドラを記述します private void FindButton_Click(object sender, RoutedEventArgs e) 2. Click ベントのベントハンドラ内で FindTask クラスを初期化します FindTask クラスの コンストラクタには検索を実行する対象のマップサービスを指定します ArcGIS for Server のマップサービスの Url は ArcGIS for Server の ArcGIS Services Direcotry で確認する ことができます 以下の例では Esri 社がホストするサンプルサーバにホストされている米国 の郡のマップサービスレヤを含むマップサービスの Url を指定しています private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); 100

104 3. FindTask クラスの ExecuteCompleted ベントにベントハンドラをゕタッチします この ベントは検索タスクが正常に実行完了した際に発生します ( ベントハンドラの実装方法に ついてはこの後のセクションで解説します ) private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; 4. FindTask クラスの Failed ベントにベントハンドラをゕタッチします このベントは検索タスクが実行に失敗した時に発生します ( ベントハンドラの実装方法についてはこの後のセクションで解説します ) private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; 5. FindParameters クラスを定義します FindParameters クラスは FindTask クラスの実行パラメータを定義するために使用されます private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; FindParameters findparameters = new FindParameters(); 101

105 6. FindParameters クラスを使用して FindTask クラスに指定したマップサービス内で検索対象とするレヤを指定します 以下の例では レヤ ID 3 ( 郡レヤ ) のみを指定しています private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; FindParameters findparameters = new FindParameters(); findparameters.layerids.addrange(new int[] 3 ); 7. 検索を行うフゖールドとして NAME フゖールドを指定します private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; FindParameters findparameters = new FindParameters(); findparameters.layerids.addrange(new int[] 3 ); findparameters.searchfields.addrange(new string[] "NAME" ); 102

106 8. このサンプルでは検索結果をマップ上に描画するので 検索結果とともにジオメトリ ( 図形情報 ) が返されるように指定します private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; FindParameters findparameters = new FindParameters(); findparameters.layerids.addrange(new int[] 3 ); findparameters.searchfields.addrange(new string[] "NAME" ); findparameters.returngeometry = true; 9. 検索を行う文字列として FindTextBox コントロールの Text プロパテゖを指定します private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; FindParameters findparameters = new FindParameters(); findparameters.layerids.addrange(new int[] 3 ); findparameters.searchfields.addrange(new string[] "NAME" ); findparameters.returngeometry = true; findparameters.searchtext = FindTextBox.Text; 103

107 10. findparameters ローカル変数を引数として 検索タスクを実行します private void FindButton_Click(object sender, RoutedEventArgs e) FindTask findtask = new FindTask(" ArcGIS/rest/services/" + "Demographics/ESRI_Census_USA/MapServer/"); findtask.executecompleted += FindTask_ExecuteCompleted; findtask.failed += FindTask_Failed; FindParameters findparameters = new FindParameters(); findparameters.layerids.addrange(new int[] 3 ); findparameters.searchfields.addrange(new string[] "NAME" ); findparameters.returngeometry = true; findparameters.searchtext = FindTextBox.Text; findtask.executeasync(findparameters); 104

108 検索タスクの実行結果の表示 以下の手順では検索タスクの実行結果をマップに表示する方法を解説します 1. 検索タスクの ExecuteCompleted ベントのベントハンドラを記述します このハンドラは検索タスクが正常に実行完了するたびに呼び出されます 検索条件に一致する検索結果のレコードセット (FeatureSet) は ハンドラの args パラメータに格納されます private void FindTask_ExecuteCompleted(object sender, FindEventArgs args) 2. 検索結果を表示するグラフゖックスレヤを取得し 前回の検索結果のグラフゖックをすべて 削除します private void FindTask_ExecuteCompleted(object sender, FindEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); 3. 検索条件に一致する検索結果のレコードセットが存在するか確認します private void FindTask_ExecuteCompleted(object sender, FindEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (args.findresults.count > 0) else 105

109 4. 検索結果のレコードセットが存在する場合 レコードセットのそれぞれのグラフゖックに XAML で定義したシンボルを設定し グラフゖックスレヤに追加します private void FindTask_ExecuteCompleted(object sender, FindEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (args.findresults.count > 0) foreach (FindResult result in args.findresults) result.feature.symbol = ResultsFillSymbol; graphicslayer.graphics.add(result.feature); else 106

110 5. 検索条件に一致するフゖーチャが見つからない場合は ユーザに通知を行います private void FindTask_ExecuteCompleted(object sender, FindEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (args.findresults.count > 0) foreach (FindResult result in args.findresults) result.feature.symbol = ResultsFillSymbol; graphicslayer.graphics.add(result.feature); else MessageBox.Show(" 該当するレコードが見つかりません "); 107

111 検索タスクのエラー制御 以下では検索タスクが処理の実行に失敗した場合のエラーを制御する方法について紹介します 1. 検索タスクの Failed ベントのベントハンドラを記述します このハンドラは検索タスクが処理の実行に失敗した場合に呼び出されます private void FindTask_Failed(object sender, TaskFailedEventArgs args) 2. MessageBox を使用してユーザにエラーを通知します private void FindTask_Failed(object sender, TaskFailedEventArgs args) MessageBox.Show(" 検索が失敗しました : " + args.error); 108

112 個別属性表示タスク (IdentifyTask クラス ) 個別属性表示タスクを使用すると検索条件として指定した入力ジオメトリと交差するマップサービス内のフゖーチャを取得することができます 取得したフゖーチャの図形情報や属性情報は.NET コードを使用して Silverlight ゕプリケーション上に表示します 開発者は個別属性表示タスクを使用するためのユーザンタフェースと実行ロジックを実装する必要があります 個別属性表示タスク ( サンプルコード ) 以下は個別属性表示タスクを実行する Silverlight ゕプリケーションの XAML と.NET コード (C#) です このゕプリケーションでは Map コントロールの MouseClick ベントを使用して マップ上のクリックされたポントを入力ジオメトリとして指定してタスクを実行します 入力ジオメトリと交差するマップサービス内のフゖーチャの一覧は ComboBox コントロールに追加され ComboBox コントロールで選択されているフゖーチャの属性情報が DataGrid コントロールに ジオメトリがマップのグラフゖックスレヤに描画されます サンプルコードの詳細については 個別属性表示タスク ( サンプルコード ) の解説 をご参照ください 109

113 XAML <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" xmlns:sldata="clr-namespace:system.windows.controls;assembly =System.Windows.Controls.Data"> <Grid x:name="layoutroot" Background="White" > <!-- 個別属性表示タスク用シンボル --> <Grid.Resources> <esri:simplemarkersymbol x:name="identifylocationsymbol" Color="Green" Size="10" /> <esri:simplefillsymbol x:name="selectedfeaturesymbol" Fill="#64FF0000" BorderBrush="Red" BorderThickness="2" /> </Grid.Resources> <!-- マップ --> <esri:map x:name="mymap" Extent="-130,10,-70,60" MouseClick="MyMap_MouseClick" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="ResultsGraphicsLayer" /> <esri:graphicslayer ID="IdentifyIconGraphicsLayer" /> </esri:map.layers> </esri:map> <!-- 個別属性表示タスクンタフェース --> <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> <ComboBox x:name="identifycombobox" 110

114 </Grid> </Grid> </StackPanel> </UserControl> SelectionChanged="IdentifyComboBox_SelectionChanged" /> <ScrollViewer MaxHeight="340" Margin="0,10,0,0"> <sldata:datagrid x:name="identifydetailsdatagrid" AutoGenerateColumns="False" HeadersVisibility="None" > <sldata:datagrid.columns> <sldata:datagridtextcolumn Binding="Binding Path=Key" FontWeight="Bold"/> <sldata:datagridtextcolumn Binding="Binding Path=Value"/> </sldata:datagrid.columns> </sldata:datagrid> </ScrollViewer> </StackPanel> 111

115 コードビハインド (C#) using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Collections.Generic; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Tasks; using ESRI.ArcGIS.Client.Symbols; namespace Sample public partial class MainPage : UserControl private List<IdentifyResult> _lastidentifyresult; public MainPage() InitializeComponent(); // マップがクリックされたら個別属性表示タスクを実行 private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) // クリックされた場所を表示 GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); // 個別属性表示タスクの初期化 112

116 IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; // 個別属性表示パラメータの指定 ( 検索対象として全レヤを指定 ) IdentifyParameters identifyparameters = new IdentifyParameters(); identifyparameters.layeroption = LayerOption.all; // 現在のマップのパラメータを個別属性表示パラメータに指定 identifyparameters.mapextent = MyMap.Extent; identifyparameters.width = (int)mymap.actualwidth; identifyparameters.height = (int)mymap.actualheight; // クリックしたポントを入力ジオメトリに指定 identifyparameters.geometry = args.mappoint; identifytask.executeasync(identifyparameters); // 個別属性表示タスクが完了したら ComboBox に結果を表示 private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); // 新規結果セットのチェック if (args.identifyresults.count > 0) // ComboBox と DataGrid を表示 IdentifyResultsStackPanel.Visibility = Visibility.Visible; // 結果セットを ComboBox に追加 foreach (IdentifyResult result in args.identifyresults) string title = string.format("0 (1)", result.value.tostring(), result.layername); IdentifyComboBox.Items.Add(title); IdentifyComboBox.UpdateLayout(); // 個別属性表示タスクの結果を取得 113

117 _lastidentifyresult = args.identifyresults; // ComboBox の SelectionChanged ベントを発生 IdentifyComboBox.SelectedIndex = 0; else // ComboBox と DataGrid を非表示にし ユーザに通知 IdentifyResultsStackPanel.Visibility = Visibility.Collapsed; MessageBox.Show(" 該当するレコードがみつかりません "); // ComboBox で選択されているフゖーチャの属性情報とジオメトリを表示 void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) // 前回選択されたフゖーチャのグラフゖックをグラフゖックスレヤから削除 GraphicsLayer graphicslayer = MyMap.Layers["ResultsGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); // ComboBox に選択されているフゖーチャが存在するか確認 if (IdentifyComboBox.SelectedIndex > -1) // DataGrid の表示を選択されているフゖーチャの属性値に更新 Graphic selectedfeature = _lastidentifyresult[identifycombobox.selectedindex].feature; IdentifyDetailsDataGrid.ItemsSource = selectedfeature.attributes; // 選択されたフゖーチャにシンボルを設定しマップに追加 selectedfeature.symbol = SelectedFeatureSymbol; graphicslayer.graphics.add(selectedfeature); // 個別属性表示タスクが失敗した場合ユーザに通知 private void IdentifyTask_Failed(object sender, TaskFailedEventArgs args) 114

118 MessageBox.Show(" 個別属性表示が失敗しました : " + args.error); 115

119 個別属性表示タスク ( サンプルコード ) の解説 以下では前述したサンプルコードの内容について解説します コードの全文についてはこちらをご参照く ださい 個別属性表示タスクの入力インタフェースの作成 タスクは固定のユーザンタフェースを持たないため 開発者は自身でユーザが検索条件を入力し検索タスクを実行するためのンタフェースを作成する必要があります このサンプルコードでは ユーザがマップをクリックした際のポントを入力ジオメトリとしてタスクを実行し 入力ジオメトリと交差するフゖーチャの図形情報と属性情報を表示します 1. XAML に入力ンタフェースの背景に使用する Rectangle コントロールを追加します StackPanel コントロール内に Grid コントロールを配置し その中に Rectangle コントロールを追加することで Rectangle コントロールのサズは Grid コントロール内のコンテンツに応じて自動調整されます <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> </Grid> </StackPanel> 2. ユーザに個別属性表示タスクの実行方法を通知するための TextBlock コントロールを追加し ます <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> </Grid> </StackPanel> 116

120 3. ユーザがクリックしたポントに使用するシンボルをリソースとして定義します ( シンボルに ついての詳細は シンボルとレンダラ を参照してください ) <Grid.Resources> <esri:simplemarkersymbol x:name="identifylocationsymbol" Color="Green" Size="10" /> </Grid.Resources> 4. 以下の手順では 下記の例のように XAML にマップが追加されており 背景用のマップサー ビスレヤが 1 つ追加されている状態からの作成手順を解説します <esri:map x:name="mymap" Extent="-130,10,-70,60"> <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> </esri:map.layers> </esri:map> 5. Map コントロールの MouseClick ベントにハンドラをゕタッチします ( ベントハンドラの 実装方法についてはこの後のセクションで解説します ) このベントはユーザがマップをクリ ックする度に発生します <esri:map x:name="mymap" Extent="-130,10,-70,60" MouseClick="MyMap_MouseClick" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> </esri:map.layers> </esri:map> 117

121 6. ユーザがクリックしたポント位置を示すための GraphicsLayer クラスをマップに追加しま す (ID は IdentifyIconGraphicsLayer ) GraphicsLayer クラスが 他のレヤよりも上 に表示されるように他のマップ内のレヤクラスよりも下の行に追加されています <esri:map x:name="mymap" Extent="-130,10,-70,60" MouseClick="MyMap_MouseClick" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="IdentifyIconGraphicsLayer" /> </esri:map.layers> </esri:map> 118

122 個別属性表示タスクの出力インタフェースの作成 タスクの実行結果を表示するためには 出力ンタフェースを作成する必要があります サンプルゕプリ ケーションでは ComboBox コントロールに結果のレコードセットを格納し ユーザが選択したレコード をマップに描画し 属性情報を DataGrid コントロールに表示します 1. 個別属性表示タスクの実行結果に使用するシンボルをリソースとして定義します ( シンボルに ついての詳細は シンボルとレンダラ を参照してください ) <Grid.Resources> <esri:simplemarkersymbol x:name="identifylocationsymbol" Color="Green" Size="10" /> <esri:simplefillsymbol x:name="selectedfeaturesymbol" Fill="#64FF0000" BorderBrush="Red" BorderThickness="2" /> </Grid.Resources> 2. マップに個別属性表示タスクの実行結果を表示するための GraphicsLayer クラスを追加しま す (ID は ResultsGraphicsLayer ) <esri:map x:name="mymap" Extent="-130,10,-70,60" MouseClick="MyMap_MouseClick" > <esri:map.layers> <esri:arcgistiledmapservicelayer ID="StreetMapLayer" Url=" services/esri_streetmap_world_2d/mapserver"/> <esri:graphicslayer ID="ResultsGraphicsLayer" /> <esri:graphicslayer ID="IdentifyIconGraphicsLayer" /> </esri:map.layers> </esri:map> 119

123 3. 個別属性表示タスクの入力ンタフェースの作成 で作成した StackPanel コントロール内 にタスクの実行結果を表示するための StackPanel コントロールを追加します コードビハ ンドから参照できるように Name プロパテゖを設定し ( x:name="identifyresultsstackpanel" ) 通常時は非表示に設定します ( Visibility="Collapsed" ) <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> </StackPanel> </Grid> </StackPanel> 4. ユーザに結果を表示する方法を通知する TextBlock コントロールを追加します <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> </StackPanel> </Grid> </StackPanel> 120

124 5. 個別属性表示タスクの実行結果のレコードセットを格納する ComboBox コントロールを追 加し ComboBox コントロールの選択されているゕテムが変更された場合に発生する SelectionChanged ベントのベントハンドラをゕタッチします ( ベントハンドラの実装 方法についてはこの後のセクションで解説します ) <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> <ComboBox x:name="identifycombobox" SelectionChanged="IdentifyComboBox_SelectionChanged" /> </StackPanel> </Grid> </StackPanel> 6. グラフゖックの属性情報を表示するために DataGrid コントロールを使用します DataGrid コントロールは System.Windows.Controls.Data ゕセンブリの System.Windows.Controls 名前空間内に定義されています XAML に名前空間への参照を定 義します <UserControl x:class="sample.mainpage" xmlns=" xmlns:x=" xmlns:esri=" xmlns:sldata="clr-namespace:system.windows.controls;assembly =System.Windows.Controls.Data"> 121

125 7. 属性列が多い場合は DataGrid コントロールの大きさを制限するために ScrollViewer コント ロールを追加し その中に DataGird コントロールを配置します <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> <ComboBox x:name="identifycombobox" SelectionChanged="IdentifyComboBox_SelectionChanged" /> <ScrollViewer MaxHeight="340" Margin="0,10,0,0"> </ScrollViewer> </StackPanel> </Grid> </StackPanel> 122

126 8. DataGrid コントロールを追加します この DataGrid コントロールにはグラフゖックのフゖ ールド名とフゖールド値を表示します ヘッダーは使用しないので非表示に設定しています ( HeadersVisibility="None" ) <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> <ComboBox x:name="identifycombobox" SelectionChanged="IdentifyComboBox_SelectionChanged" /> <ScrollViewer MaxHeight="340" Margin="0,10,0,0"> <sldata:datagrid x:name="identifydetailsdatagrid" AutoGenerateColumns="False" HeadersVisibility="None" > </sldata:datagrid> </ScrollViewer> </StackPanel> </Grid> </StackPanel> 123

127 9. DataGrid コントロールにフゖールド名を格納する列と属性値を格納する列を追加します フゖ ールド名は太字で表示します ( FontWeight="Bold" ) <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> <ComboBox x:name="identifycombobox" SelectionChanged="IdentifyComboBox_SelectionChanged" /> <ScrollViewer MaxHeight="340" Margin="0,10,0,0"> <sldata:datagrid x:name="identifydetailsdatagrid" AutoGenerateColumns="False" HeadersVisibility="None" > <sldata:datagrid.columns> <sldata:datagridtextcolumn FontWeight="Bold"/> <sldata:datagridtextcolumn /> </sldata:datagrid.columns> </sldata:datagrid> </ScrollViewer> </StackPanel> </Grid> </StackPanel> 124

128 10. 結果として表示するグラフゖックの Attributes プロパテゖはフゖールド名としての Key と 属性値としての Value のペゕのコレクションです ここでは DataGrid コントロールの列に Key と Value をそれぞれバンドし テーブルの行にグラフゖックの属性情報の列名と値が並 んで表示されるように設定します <StackPanel Margin="10" HorizontalAlignment="Left"> <Grid> <Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" /> <TextBlock Text=" 個別属性を表示するためにはマップをクリックします " Foreground="White" FontSize="10" Margin="10,5,10,5" /> <StackPanel x:name="identifyresultsstackpanel" Margin="15,30,15,10" Visibility="Collapsed"> <TextBlock Text=" 表示するレコードを選択してください " Foreground="White" FontSize="10" Margin="0,0,0,5" /> <ComboBox x:name="identifycombobox" SelectionChanged="IdentifyComboBox_SelectionChanged" /> <ScrollViewer MaxHeight="340" Margin="0,10,0,0"> <sldata:datagrid x:name="identifydetailsdatagrid" AutoGenerateColumns="False" HeadersVisibility="None" > <sldata:datagrid.columns> <sldata:datagridtextcolumn Binding="Binding Path=Key" FontWeight="Bold"/> <sldata:datagridtextcolumn Binding="Binding Path=Value"/> </sldata:datagrid.columns> </sldata:datagrid> </ScrollViewer> </StackPanel> </Grid> </StackPanel> 125

129 個別属性表示タスクの実行ロジックの実装 この手順では 個別属性表示タスクの実行ロジックを実装します 個別属性表示タスクの実行ロジックは 1) タスクの実行 2) 実行結果の表示 3) エラー制御の 3 つのパートにわけることができます 以下ではこの 3 つの実行ロジックを Silverlight ゕプリケーションのメンページのコードビハンドフゔル ( 例 :MainPage.xaml.cs) に記述します コードビハンドでは XAML で定義されたエレメントを x:name 属性や ID プロパテゖを参照して利用します 以下の手順では XAML に前述した 個別属性表示タスクの入力ンタフェースの作成 および 個別属性表示タスクの出力ンタフェースの作成 の手順に記述されているエレメントが定義されているものとして解説を行います 個別属性表示タスクの実行 タスクを実行するには まずタスクを初期化し検索を実行するマップサービスを指定します そしてタスクが完了した際に実行されるベントハンドラを記述し タスクのパラメータを指定し タスクを実行するメソッドを呼び出します 以下では これらのステップをコードビハンドに記述する方法を解説します 1. このサンプルでは XAML に入力ンタフェースとして マップのクリックベント (MouseClick) のベントハンドラをゕタッチします ここではこのハンドラに処理を記述し ユーザがマップをクリックした際に個別属性表示タスクが実行されるようにします private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) 2. マップのクリック位置を示すためのグラフゖックスレヤを取得します また 前回のクリッ ク位置を示すグラフゖックをクリゕします private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); 126

130 3. 新規にグラフゖックを作成します グラフゖックのジオメトリ ( 図形情報 ) には クリックさ れたマップのポントを使用します またグラフゖックのシンボルとして 事前に XAML に定 義したシンボルを設定します private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol 4. グラフゖックをマップに追加します private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); 127

131 5. IdentifyTask クラスを初期化します IdentifyTask クラスのコンストラクタには検索を実行す る対象のマップサービスを指定します ArcGIS for Server のマップサービスの Url は ArcGIS for Server の ArcGIS REST Services Direcotry で確認することができます 以下の 例では Esri 社がホストするサンプルサーバ上の米国国勢調査のマップサービスレヤを含 むマップサービスの Url を指定しています private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); 128

132 6. IdentifyTask クラスの ExecuteCompleted ベントにベントハンドラをゕタッチします このベントは個別属性表示タスクが正常に実行完了した際に発生します ( ベントハンドラ の実装方法についてはこの後のセクションで解説します ) private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; 129

133 7. 個別属性表示タスクの Failed ベントにベントハンドラをゕタッチします このベントは 個別属性表示タスクが実行に失敗した時に発生します ( ベントハンドラの実装方法について はこの後のセクションで解説します ) private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; 130

134 8. 個別属性表示タスクの入力パラメータを指定するために使用する IdentifyParameters クラス を初期化します private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; IdentifyParameters identifyparameters = new IdentifyParameters(); 131

135 9. 個別属性表示タスクによってすべてのレヤが検索されるように IdentifyParameters クラス の LayerOption プロパテゖを all に設定します 検索オプションはその他に 最上位レヤ のみ (top) 表示レヤのみ (visible) に設定することができます private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; IdentifyParameters identifyparameters = new IdentifyParameters(); identifyparameters.layeroption = LayerOption.all; 132

136 10. 個別属性表示タスクの入力パラメータとして現在のマップのエクステント ( 範囲 ) 幅 高さを 設定します private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; IdentifyParameters identifyparameters = new IdentifyParameters(); identifyparameters.layeroption = LayerOption.all; identifyparameters.mapextent = MyMap.Extent; identifyparameters.width = (int)mymap.actualwidth; identifyparameters.height = (int)mymap.actualheight; 133

137 11. ユーザがクリックしたマップ上の位置を入力ジオメトリとして設定します private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; IdentifyParameters identifyparameters = new IdentifyParameters(); identifyparameters.layeroption = LayerOption.all; identifyparameters.mapextent = MyMap.Extent; identifyparameters.width = (int)mymap.actualwidth; identifyparameters.height = (int)mymap.actualheight; identifyparameters.geometry = args.mappoint; 134

138 12. IdentifyParameters クラスを入力パラメータとして指定して個別属性表示タスクを実行しま す private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs args) GraphicsLayer graphicslayer = MyMap.Layers["IdentifyIconGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() ; Geometry = args.mappoint, Symbol = IdentifyLocationSymbol graphicslayer.graphics.add(graphic); IdentifyTask identifytask = new IdentifyTask(" ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); identifytask.executecompleted += IdentifyTask_ExecuteCompleted; identifytask.failed += IdentifyTask_Failed; IdentifyParameters identifyparameters = new IdentifyParameters(); identifyparameters.layeroption = LayerOption.all; identifyparameters.mapextent = MyMap.Extent; identifyparameters.width = (int)mymap.actualwidth; identifyparameters.height = (int)mymap.actualheight; identifyparameters.geometry = args.mappoint; identifytask.executeasync(identifyparameters); 135

139 個別属性表示タスクの実行結果の表示 以下の手順では個別属性表示タスクの実行結果をマップに表示する方法を解説します 1. IdentifyTask クラスの ExecuteCompleted ベントのベントハンドラを記述します この ハンドラは個別属性表示タスクが正常に実行完了するたびに呼び出されます このサンプルで はタスクの処理が完了したら 結果のレコードセットを ComboBox コントロールに格納し ComboBox コントロール内で選択されているレコードをマップに描画し 属性情報を DataGrid コントロールに表示します private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) 2. タスクの前回の実行結果をクリゕし 結果レコードセットが存在するか確認します private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); if (args.identifyresults.count > 0) else 136

140 3. 結果レコードセットが存在する場合 結果を表示するための ComboBox コントロールと DatGrid コントロールを表示します private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); if (args.identifyresults.count > 0) else IdentifyResultsStackPanel.Visibility = Visibility.Visible; 137

141 4. 結果レコードセットのレコードの値とレヤ名を ComboBox コントロールに追加し ComboBox コントロールのレゕウトを更新します private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); if (args.identifyresults.count > 0) IdentifyResultsStackPanel.Visibility = Visibility.Visible; foreach (IdentifyResult result in args.identifyresults) else string title = string.format("0 (1)", result.value.tostring(), result.layername); IdentifyComboBox.Items.Add(title); IdentifyComboBox.UpdateLayout(); 138

142 5. 個別属性表示タスクの結果レコードセットを格納するためのメンバ変数を宣言します public partial class MainPage : UserControl private List<IdentifyResult> _lastidentifyresult; 6. 個別属性表示タスクの結果レコードセットをメンバ変数に格納します private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); if (args.identifyresults.count > 0) IdentifyResultsStackPanel.Visibility = Visibility.Visible; foreach (IdentifyResult result in args.identifyresults) else string title = string.format("0 (1)", result.value.tostring(), result.layername); IdentifyComboBox.Items.Add(title); IdentifyComboBox.UpdateLayout(); _lastidentifyresult = args.identifyresults; 139

143 7. ComboBox コントロールの選択されているゕテムを初期化し 結果レコードセットの最初の レコードが選択されるようにします この処理はあわせて ComboBox コントロールの SelectionChanged ベントを発生させ 選択されたレコードの属性情報が DataGrid コント ロールに表示され マップに選択されたレコードのグラフゖックが描画されます (SelectionChanged ベントのベントハンドラはこの後の手順で記述します ) private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); if (args.identifyresults.count > 0) IdentifyResultsStackPanel.Visibility = Visibility.Visible; foreach (IdentifyResult result in args.identifyresults) string title = string.format("0 (1)", result.value.tostring(), result.layername); IdentifyComboBox.Items.Add(title); IdentifyComboBox.UpdateLayout(); _lastidentifyresult = args.identifyresults; IdentifyComboBox.SelectedIndex = 0; else 140

144 8. 該当するレコードが見つからない場合 ComboBox コントロールと DatGrid コントロールを 非表示にし ユーザに通知します private void IdentifyTask_ExecuteCompleted(object sender, IdentifyEventArgs args) IdentifyComboBox.Items.Clear(); if (args.identifyresults.count > 0) IdentifyResultsStackPanel.Visibility = Visibility.Visible; foreach (IdentifyResult result in args.identifyresults) string title = string.format("0 (1)", result.value.tostring(), result.layername); IdentifyComboBox.Items.Add(title); IdentifyComboBox.UpdateLayout(); _lastidentifyresult = args.identifyresults; IdentifyComboBox.SelectedIndex = 0; else IdentifyResultsStackPanel.Visibility = Visibility.Collapsed; MessageBox.Show(" 該当するレコードがみつかりません "); 141

145 9. このサンプルコードでは個別属性表示タスクが完了すると ComboBox コントロールに結果 レコードセットが格納され ユーザが ComboBox コントロールの選択ゕテムを変更するた びに マップ上のその選択されているレコードを描画し DataGrid コントロールに属性情報を 表示します このため 出力ンタフェースとして追加した ComboBox コントロールには ComboBox コントロールの選択ゕテムが変更された際に発生する SelectionChanged ベントのベントハンドラがゕタッチされています 以下の手順ではこのベントハンドラに 処理を記述します ( ただし ComboBox コントロールの SelectionChanged ベントはユ ーザ操作 コードの変更に関わらず ComboBox コントロールの選択ゕテムが変更された際 に発生し 仮に選択ゕテムが正しくない場合でも発生する点に注意してください ) void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 10. ComboBox コントロールで選択されているレコードをマップ上に描画するためのグラフゖッ クスレヤを取得し 前回の表示結果をクリゕします void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) GraphicsLayer graphicslayer = MyMap.Layers["ResultsGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); 142

146 11. ComboBox コントロールで選択されているレコードが存在するか確認します ComboBox コ ントロールで選択されているレコードが存在しない場合 ComboBox コントロールの SelectedIndex プロパテゖの値は -1 です void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) GraphicsLayer graphicslayer = MyMap.Layers["ResultsGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (IdentifyComboBox.SelectedIndex > -1) 12. 選択されているレコードが存在する場合 選択されているフゖーチャを取得します _lastidnetifyresult メンバ変数には個別属性表示タスクの最後の実行結果レコードセットで ある LastResult プロパテゖの値が格納されています ComboBox コントロールの選択されて いるレコードのンデックスを使用することでこの結果レコードセットから現在選択されてい るフゖーチャを取得することができます void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) GraphicsLayer graphicslayer = MyMap.Layers["ResultsGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (IdentifyComboBox.SelectedIndex > -1) Graphic selectedfeature = _ lastidentifyresult[identifycombobox.selectedindex].feature; 143

147 13. DataGrid コントロールの ItemSource プロパテゖを選択されたレコードのグラフゖックの Attributes プロパテゖに設定します XAML 内において DataGrild コントロールの列はグラ フゖックの Attributes プロパテゖにバンドされているため ItemSource プロパテゖを変 更することにより DataGrid コントロールに表示される属性情報も選択されているグラフゖッ クの属性情報に変更されます void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) GraphicsLayer graphicslayer = MyMap.Layers["ResultsGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (IdentifyComboBox.SelectedIndex > -1) Graphic selectedfeature = _ lastidentifyresult[identifycombobox.selectedindex].feature; IdentifyDetailsDataGrid.ItemsSource = selectedfeature.attributes; 14. 選択されているレコードのグラフゖックに XAML で定義したシンボルを適用し マップに追加 します void IdentifyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) GraphicsLayer graphicslayer = MyMap.Layers["ResultsGraphicsLayer"] as GraphicsLayer; graphicslayer.cleargraphics(); if (IdentifyComboBox.SelectedIndex > -1) Graphic selectedfeature = _lastidentifyresult[identifycombobox.selectedindex].feature; IdentifyDetailsDataGrid.ItemsSource = selectedfeature.attributes; selectedfeature.symbol = SelectedFeatureSymbol; graphicslayer.graphics.add(selectedfeature); 144

148 個別属性表示タスクのエラー制御 以下では個別属性表示タスクが処理の実行に失敗した場合のエラーを制御する方法について紹介します 1. 個別属性表示タスクの Failed ベントのベントハンドラを記述します このハンドラは個別属性表示タスクが処理の実行に失敗した場合に呼び出されます private void IdentifyTask_Failed(object sender, TaskFailedEventArgs args) 2. MessageBox を使用してユーザにエラーを通知します private void IdentifyTask_Failed(object sender, TaskFailedEventArgs args) MessageBox.Show(" 個別属性表示が失敗しました : " + args.error); 145

149 ArcGIS for Server の使用 ArcGIS for Server 概要 ArcGIS for Server は Esri の主要なサーバ GIS 製品であり 地理情報コンテンツを提供する Web サービスを作成して公開することができます ArcGIS for Server はサーバ GIS 製品として すぐに利用可能なゕプリケーションや空間データ管理 ビジュゕラゼーション 空間解析用のサービスを提供します このセクションでは ArcGIS API for Silverlight を使用して作成したゕプリケーションから ArcGIS for Server のサービスを使用する方法について説明します 146

150 サービスの確認 ArcGIS API for Microsoft Silverlight は REST API を使用して ArcGIS for Server のサービスを利用します ArcGIS for Server REST ンフラストラクチャとして ArcGIS for Server をンストールするとサーバに構成される ArcGIS REST Services Directory と呼ばれる Web ゕプリケーションが提供されており 利用可能なサービスの情報を確認することができます ArcGIS REST Services Directory を使用して 以下に示すような利用可能なサービス ( 特定のログンを必要とするセキュゕなサービスを含む ) の詳細について確認します サービスを利用するための REST エンドポントの URL キャッシュマップサービスのタルレベル 範囲とサポートされたオペレーション レヤ情報 ジオプロセシングサービスのツールの入出力タプ 147

151 ArcGIS REST Services Directory の起動 ArcGIS REST Services Directory を起動するために ArcGIS for Server のンスタンスの URL を把握しておく必要があります ArcGIS for Server のンスタンスは一般的に Web サーバルートの arcgis から利用可能です ArcGIS REST Services Directory は ンスタンスの rest/services に存在します 例えば ArcGIS for Server のンスタンスが から利用できる場合 ArcGIS REST Services Directory は からゕクセスできます 以下の URL より Esri 社が公開している ArcGIS for Server のサービスの REST エンドポントを確認することができます ArcGIS Online ArcGIS REST Services Directory ローカルの ArcGIS for Server の ArcGIS REST Services Directory は Windows メニューより [ すべ てのプログラム ] > [ArcGIS] > [ArcGIS 10.1 for Server] > [Services Directory] と選択することでゕ クセスできます 148

152 サービスについての情報の確認 ArcGIS REST Services Directory を使用して ArcGIS API for Silverlight で ArcGIS for Server のサービスを利用する上で必要な情報を取得します 多くの場合 Web ブラウザのゕドレスバーからサービスの REST エンドポントの URL をコピーし Web ゕプリケーションのコードに貼り付けます 例えば マップサービスの名称が Counties で serverapps101.esri.com サーバからホストされている場合 マップサービスの REST エンドポントは以下のようになります すべての ArcGIS for Server のサービスにおいて サービスの種類が REST エンドポントの URL の 末尾に記載され 使用するサービスの種類を指定する際に必要になります サービスの種類 URL の末尾 マップサービス MapServer ジオプロセシングサービス GPServer ジオメトリサービス GeometryServer メージサービス ImageServer ネットワーク解析サービス NAServer フゖーチャサービス FeatureServer 149

153 ArcGIS REST Services Directory は 特定のレヤ内のフゖーチャに対してクエリや個別属性表示を実行するのに使用可能なレヤ ID を提供しています レヤ ID はマップサービスのプロパテゖページの [ レヤ :] セクションから確認することができます 各レヤには クエリを実行し 結果として返されるフゖールドを定義するのに使用可能なフゖールド名のリストも含まれています 150

154 サービスの利用 ArcGIS API for Silverlight から ArcGIS for Server のサービスを利用するためには サービスの REST エンドポントの URL を把握しておく必要があります REST エンドポントの URL は多くの場合 以下のようになります ( 名 >/< ンスタンス名 >/rest/services/< サービス名 >/< サービスの種類 >) マップサービスの利用 ArcGIS for Server のサービスを利用するために ArcGIS REST Services Directory もしくは ArcGIS for Server の管理者からマップサービスに関する情報を入手する必要があります マップサービスの REST エンドポントの URL に加え マップサービスを利用するために以下のような情報が必要になる場合があります マップのレヤ ID: 複数もしくは特定のレヤに対してクエリを実行する際に必要になります レヤ ID は整数値として提供されるため 実際のマップのレヤ名とは異なります レヤの属性フゖールド名 : クエリの実行完了後 結果として返されるフゖールドを定義する際に必要になります マップや個々のレヤの空間範囲やレヤのフゖーチャタプ ( ポント ラン ポリゴン ) レヤの最小 最大表示縮尺 マップサービスがキャッシュマップサービスもしくはダナミックマップサービスかどうか キャッシュマップサービスの場合 タルの情報も含まれます 151

155 その他のサービスタイプの利用 その他のタプのサービスはマップサービスとは異なる情報を提供します ジオプロセシングサービスは 空間解析機能およびデータ処理機能を提供します ジオプロセシングサービスは 1 つ以上のタスクを含んでおり 各タスクは一連の入出力パラメータを保持しています 入力パラメータは 出力結果を生成するために設定します これらのパラメータは 特定のデータタプでなければならない場合があります メージサービスは マップサービスのように扱うことができ 衛星画像や航空写真などのラスタメージへの動的で対話的なゕクセスを提供します ジオメトリサービスは (ArcGIS for Server で Geometry という名称のサービスで構成 ) 標準的なユーテゖリテゖメソッドを提供します ユーテゖリテゖメソッドとして 投影変換やバッフゔ処理 面積と距離の計測などの幾何学計算機能が含まれます これらのサービスの情報も ArcGIS REST Services Directory から確認することができます 152

156 異なるドメイン間のサービスの利用 Silverlight ゕプリケーションはセキュリテゖ上の理由から自身をホストしているドメン以外のサービス を呼び出すことはできません 異なるドメン間のサービスにゕクセスできるようにするためには 明示的にドメン間のゕクセスを許 可する必要があります Silverlight では 異なるドメン間のサービスを利用できるようにするために 以下の 2 つの手法がサポートされています clientaccesspolicy.xml フゔルによる複数ドメン間のゕクセス許可 crossdomain.xml フゔルによる複数ドメン間のゕクセス許可 一般的に Silverlight ゕプリケーションは まず clientaccesspolicy.xml フゔルを探し このゕクセス によりエラー (ex. 404 Not Found) が検知されると Adobe Flash ドメン間ポリシーフゔルである crossdomain.xml フゔルを探します 153

ArcGIS Runtime SDK for Windows Phone スタートアップ ガイド (v10.1.x)

ArcGIS Runtime SDK for Windows Phone スタートアップ ガイド (v10.1.x) 10.1.x スタートアップガイド 目次 はじめに... 1 スタートゕップガドについて... 1 ArcGIS Runtime SDK for Windows Phone とは... 1 ArcGIS Runtime SDK for Windows Phone の開発環境... 1 モバイルマッピングアプリケーションの開発... 2 API ラブラリのンストール... 2 モバルマッピングゕプリケーションの開発...

More information

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

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

More information

ArcGIS for Server での Web マップの作成方法

ArcGIS for Server での Web マップの作成方法 ArcGIS for Server での Web マップの作成方法 1 目次 はじめに... 3 このドキュメントについて... 3 ArcGIS アプリケーションとは... 3 ArcGIS for Server での Web マップの作成... 5 コンテンツサーバ... 6 モバイルコンテンツディレクトリ... 6 マップコンテンツの検索とフォルダの操作... 7 Web マップの作成...

More information

ArcGIS API for Silverlight スタートアップ ガイド (v2.x) Expression Blend 4 用

ArcGIS API for Silverlight スタートアップ ガイド (v2.x) Expression Blend 4 用 ArcGIS API for Microsoft Silverlight スタートアップ ガイド Expression Blend 4 用 目次 はじめに... 2 このスタートゕップガドについて... 2 ArcGIS API for Microsoft Silverlight とは... 2 ArcGIS API for Microsoft Silverlight の開発環境... 3 Web

More information

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する XAML Do-It-Yourself シリーズ 第 3 回ベントとトリガー -1- XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述することで ゕプリケーションのユーザーンターフェスを実現していました

More information

Web GIS Template Uploader 利用ガイド

Web GIS Template Uploader 利用ガイド Web GIS Template Uploader 利用ガイド 概要 Web GIS Template Uploader について Web GIS Template Uploader は ESRI ジャパンが提供する ArcGIS ソリューションテンプレート ( ) をご使用の ArcGIS ポータル (ArcGIS Online もしくは Portal for ArcGIS の組織サイト ) にアップロードするためのツールです

More information

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

ArcGIS API for JavaScript スタートアップ ガイド ArcGIS API for JavaScript スタートアップ ガイド 目次 はじめに... 2 このスタートアップガイドについて... 2 ArcGIS API for JavaScript とは... 2 ArcGIS API for JavaScript の開発環境... 3 WEB マッピングアプリケーションの開発... 4 ArcGIS API for JavaScript によるアプリケーションの作成...

More information

ArcGIS Runtime SDK for .NET アプリケーション配布ガイド

ArcGIS Runtime SDK for .NET アプリケーション配布ガイド ArcGIS Runtime SDK for.net アプリケーション配布ガイド 目次 はじめに... 1 対象の製品バージョン... 1 ライセンス認証のステップ... 2 使用するライセンスの選択... 3 クライアント ID の取得... 4 Basic レベルのライセンス認証... 6 Standard レベルのライセンス認証... 8 ArcGIS Online / Portal for

More information

Chart3D for WPF/Silverlight

Chart3D for WPF/Silverlight 2018.04.10 更新 グレープシティ株式会社 目次 製品の概要 2 ComponentOne for WPF/Silverlight のヘルプ 2 主な特長 3 クイックスタート 4 手順 1: プロジェクトへのコントロールの追加 4-5 手順 2: データの追加 5-6 手順 3: グラフの外観の変更 6-7 手順 4: 凡例の追加 7 手順 5: プロジェクトの実行 7 XAML クイックリファレンス

More information

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな Visual Studio Do-It-Yourself シリーズ 第 9 回ユーザーコントロール -1- Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではなく

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 01 Visual C# 2010 を使ってみよう BMI 計算プログラム 1 Visual Studio 2010 の起動 1 2 画面左下 タスクバーの左端にある スタートボタン をクリック 表示されたメニューにある すべてのプログラム をクリック 2 1 3 4 メニューから Microsoft Visual Studio 2010 のフォルダを探して これをクリック フォルダが展開されて

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 02 グラフゖックで簡単な図形を描く図形描画プログラム 1 今回作成するゕプリケーションの概要 ボタンをクリックすると図形を描くプログラム 行われる動作 [1] ボタンをクリック [2] そのボタンに対する図形を描く これを使用者とコンピュータの関係で描くと [ 使用者 コンピュータ ] ボタンをクリック [ 使用者 コンピュータ ] 図形を描画して見せる 使用者がコンピュータにすること ボタンをクリック

More information

9 WEB監視

9  WEB監視 2018/10/31 02:15 1/8 9 WEB 監視 9 WEB 監視 9.1 目標 Zabbix ウェブ監視は以下を目標に開発されています : ウェブアプリケーションのパフォーマンスの監視 ウェブアプリケーションの可用性の監視 HTTPとHTTPSのサポート 複数ステップで構成される複雑なシナリオ (HTTP 要求 ) のサポート 2010/08/08 08:16 Kumi 9.2 概要 Zabbix

More information

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成 KDDI ホスティングサービス (G120, G200) ブック ASP.NET 利用ガイド ( ご参考資料 ) rev.1.0 KDDI 株式会社 1 ( 目次 ) 1. はじめに... 3 2. 開発環境の準備... 3 2.1 仮想ディレクトリーの作成... 3 2.2 ASP.NET のWeb アプリケーション開発環境準備... 7 3. データベースの作成...10 3.1 データベースの追加...10

More information

ArcGIS 10.1 for Server 製品概要

ArcGIS 10.1 for Server 製品概要 10.1 ArcGIS 10.1 for Server 製品概要 目次 はじめに... 1 ArcGIS for Server の概要... 2 ArcGIS Server... 2 ArcGIS Web Adaptor... 3 ArcSDE テクノロジ... 3 ゕーキテクチャと構成... 4 構成ストアとサーバディレクトリ... 8 ArcSDE テクノロジ... 10 ArcGIS Web

More information

ArcGIS Server 10 機能比較表

ArcGIS Server 10 機能比較表 機能比較表 目次 はじめに... 1 機能... 2 エクステンション... 2 規模... 3 機能詳細... 4 ジオデータベース管理... 4 ジオデータベースレプリケーション... 4 GIS Web サービス... 5 Web マッピングアプリケーション... 6 Web 編集... 7 ジオプロセシング (ArcView レベル )... 7 高度なジオプロセシング (ArcInfo レベル

More information

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. IM- 共通マスタの拡張について 2.1. 前提となる知識 2.1.1. Plugin Manager 2.2. 表記について 3. 汎用検索画面の拡張 3.1. 動作の概要 3.1.1. 汎用検索画面タブの動作概要 3.2. 実装の詳細 3.2.1. 汎用検索画面タブの実装

More information

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23 SharpShooter Reports.Silverlight 基本的な使い方 Last modified on: August 16, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されます 目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 1...

More information

リアルタイム気象ビューアー利用ガイド

リアルタイム気象ビューアー利用ガイド リアルタイム気象ビューアー利用ガイド 概要 リアルタイム気象ビューアーについて リアルタイム気象ビューアーは ESRI ジャパンデータコンテンツの Online Suite のコンテンツとして配信される気象オンラインサービスをより便利に活用するためのアプリケーションです 気象オンラインサービスを利用するためには ArcGIS Online 組織サイト内の どなたか 1 名が気象オンラインサービスの利用申請を行っていただく必要があります

More information

ArcGIS API for Android アプリケーション利用ガイド

ArcGIS API for Android アプリケーション利用ガイド 10.1 アプリケーション利用ガイド バージョン 目次 はじめに... 1 動作環境... 3 ArcGIS for Android ゕプリケーションのンストール... 4 ArcGIS for Android ゕプリケーションの基本操作... 8 アプリケーションの構成... 15 マップの検索機能... 16 ArcGIS Online サンン... 17 ArcGIS Online 上に公開されているマップ

More information

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5) ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5) 目次 はじめに... 1 インストールガイドについて... 1 ArcGIS Runtime SDK for WPF とは... 1 対象の製品バージョン... 1 ArcGIS Runtime SDK for WPF のライセンス形態... 2 インストールのための前提条件... 3 サポートされる開発環境の準備...

More information

XNA Framework

XNA Framework XNA Framework 2.0 M@STER SESSION 01 XNA Framework の技術的背景 システム基盤は.NET Framework マネージ環境で実行 クロスプラットフォーム Windows, Xbox360, Zune DirectX, MDX から独立している 開発 実行環境の構造 XNA Game Studio (Visual Studio 2005) XNA Framework

More information

使用する前に

使用する前に この章では Cisco Secure ACS リリース 5.5 以降から Cisco ISE リリース 2.4 システムへのデー タ移行に使用される Cisco Secure ACS to Cisco ISE Migration Tool について説明します 移行の概要 1 ページ Cisco Secure ACS から データ移行 1 ページ Cisco Secure ACS to Cisco ISE

More information

intra-mart Accel Platform

intra-mart Accel Platform intra-mart Accel Platform IM- 共通マスタスマートフォン拡張プログラミングガイド 2012/10/01 初版 変更年月日 2012/10/01 初版 > 変更内容 目次 > 1 IM- 共通マスタの拡張について...2 1.1 前提となる知識...2 1.1.1 Plugin Manager...2 1.2 表記について...2 2 汎用検索画面の拡張...3

More information

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版   Copyright 2018 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 辞書項目 API 3.1. 最新バージョン 3.1.1. 最新バージョンの辞書を取得する 3.2. 辞書項目 3.2.1. 辞書項目を取得する 3.2.2.

More information

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spark API との通信 このラーニングモジュールでは Python を使用した Spark API とのインターフェイスを扱います

More information

XAML Do-It-Yourself シリーズ 第 1 回 XAML 概要 -1-

XAML Do-It-Yourself シリーズ 第 1 回 XAML 概要 -1- XAML Do-It-Yourself シリーズ 第 1 回 XAML 概要 -1- XAML Do-It-Yourself 第 1 回 XAML 概要 はじめに - XAML Do-It-Yourself について 本 XAML Do-It-Yourself シリーズでは 13 回にわたって XAML (Extensible Application Markup Language) の基礎を学習していきます

More information

AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ

AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ 改訂履歴 Ver. 改訂日改訂内容 1.0 2019/08/22 新規発行 1.1 2019/10/04 1.3 ワークフロー設定画面を開くには に 1.3.2 Salesforce 版の操作手順 を 追加しました 本書に記載されている会社名 製品名 サービス名などは 提供各社の商標 登録商標 商品名です なお 本文中に TM マーク

More information

C#の基本

C#の基本 C# の基本 ~ 開発環境の使い方 ~ C# とは プログラミング言語のひとつであり C C++ Java 等に並ぶ代表的な言語の一つである 容易に GUI( グラフィックやボタンとの連携ができる ) プログラミングが可能である メモリ管理等の煩雑な操作が必要なく 比較的初心者向きの言語である C# の利点 C C++ に比べて メモリ管理が必要ない GUIが作りやすい Javaに比べて コードの制限が少ない

More information

Team Foundation Server 2018 を使用したバージョン管理 補足資料

Team Foundation Server 2018 を使用したバージョン管理 補足資料 Team Foundation Server 2018 を使用したバージョン管理 Magic xpa 3.0/Magic xpa 2.5/uniPaaS V1Plus 補足資料 マジックソフトウェア ジャパン株式会社 2018 年 8 月 24 日 本ドキュメントは Magic xpa 3.0/Magic xpa 2.5/uniPaaS V1Plus で Team Foundation Server(

More information

ArcGIS Viewer for Flex スタートアップ ガイド

ArcGIS Viewer for Flex スタートアップ ガイド スタートアップガイド バージョン ArcGIS Viewer for Flex スタートアップ ガイド 目次 はじめに... 1 このスタートゕップ ガ ドについて... 1 ArcGIS Viewer for Flex とは... 1 ArcGIS Viewer for Flex のサンプル ゕプリケーション... 2 動作環境... 4 クライアント環境... 4 Web サーバ... 4 Application

More information

データベースアクセス

データベースアクセス データベースアクセスコンポーネント 1. 概要 データベースアクセスコンポーネントとは SQL データベースにアクセスして SQL 文を実行することによりデータベース検索を行う機能を提供するコンポーネントです また データベースアクセスコンポーネントでは データベースの構成情報 接続情報 エラー情報等を取得することも可能です データベースアクセスコンポーネントは アプリケーションビルダーのメニューから以下のように選びます

More information

XAML Do-It-Yourself シリーズ 第 8 回ゕニメーション -1-

XAML Do-It-Yourself シリーズ 第 8 回ゕニメーション -1- XAML Do-It-Yourself シリーズ 第 8 回ゕニメーション -1- XAML Do-It-Yourself 第 8 回ゕニメーション XAML Do-It-Yourself 第 8 回は ゕニメーションについて学習します XAML (WPF) が提供するゕニメ ーション機能は 時間の経過と共に コントロールのプロパテゖを変化させる機能です コントロールに 含まれるほとんどのプロパテゖに対して

More information

Microsoft Word - ModelAnalys操作マニュアル_

Microsoft Word - ModelAnalys操作マニュアル_ モデル分析アドイン操作マニュアル Ver.0.5.0 205/0/05 株式会社グローバルアシスト 目次 概要... 3. ツール概要... 3.2 対象... 3 2 インストールと設定... 4 2. モデル分析アドインのインストール... 4 2.2 モデル分析アドイン画面の起動... 6 3 モデル分析機能... 7 3. 要求分析機能... 7 3.. ID について... 0 3.2 要求ツリー抽出機能...

More information

試作ツールは MIT ライセンスによって提供いたします その他 内包された オープンソース ソフトウェアについてはそれぞれのライセンスに従ってご利用ください

試作ツールは MIT ライセンスによって提供いたします その他 内包された オープンソース ソフトウェアについてはそれぞれのライセンスに従ってご利用ください 情報連携用語彙データベースと連携するデータ設計 作成支援ツール群の試作及び試用並びに概念モデルの構築 ( 金沢区 ) 操作説明書 2014 年 9 月 30 日 実施企業 : 株式会社三菱総合研究所独立行政法人情報処理推進機構 (IPA) 試作ツールは MIT ライセンスによって提供いたします その他 内包された オープンソース ソフトウェアについてはそれぞれのライセンスに従ってご利用ください 目次

More information

Python によるジオプロセシング スクリプト入門

Python によるジオプロセシング スクリプト入門 アイコンの説明... 8 第 1 章イントロダクション... 9 本コースの目的... 11 講習内容... 11 講習資料... 12 イントロダクション... 12 ArcGIS... 13 Web サイト... 13 開発者向けプログラム / サービス... 14 演習 1: 演習環境の構築... 15 ステップ 1: Windows へのログオン ( オプション )... 15 ステップ 2:

More information

HANDyTRUSt「携帯電話操作編《(DOCOMO 900シーズ)

HANDyTRUSt「携帯電話操作編《(DOCOMO 900シーズ) HANDyTRUSt スマートフォン操作編 本書について 本書は スマートフォン (Windows Mobile 6.0) に対応した取扱説明書です 本書に記載されている画面およびラストはメージです 実際の製品とは異なる場合があります 本書の内容を一部 または全部を無断転載することは禁止されています 本書の内容は 将来 予告なしに変更することがあります 利用環境 HANDyTRUSt をご利用になる際

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft Excel 2010( テキスト内では Excel と記述します ) 画面の設定 ( 解像度 ) ピクセル 本テキストは 次の環境でも利用可能です Windows 7 Home

本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft Excel 2010( テキスト内では Excel と記述します ) 画面の設定 ( 解像度 ) ピクセル 本テキストは 次の環境でも利用可能です Windows 7 Home 本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft Excel 2010( テキスト内では Excel と記述します ) 画面の設定 ( 解像度 ) 1024 768 ピクセル 本テキストは 次の環境でも利用可能です Windows 7 Home Premium 以外のオペレーティングシステムで Microsoft Excel 2010 が動作

More information

ArcGIS Runtime SDK for .NET インストール ガイド (v10.2.6)

ArcGIS Runtime SDK for .NET インストール ガイド (v10.2.6) ArcGIS Runtime SDK for.net インストールガイド (v10.2.6) 目次 はじめに... 1 インストールガイドについて... 1 ArcGIS Runtime SDK for.net とは... 1 対象の製品バージョン... 1 ArcGIS Runtime SDK for.net のライセンス形態... 2 インストールのための前提条件... 3 サポートされる開発環境の準備...

More information

<4D F736F F D C815B835E838B837D836A B5F92A18A4F94C55F2E646F63>

<4D F736F F D C815B835E838B837D836A B5F92A18A4F94C55F2E646F63> 情報システム研究機構新領域融合研究センター 2009 年 5 月国立極地研究所 目次 第 1 章 GIS ポータルサイトの概要 1 第 1 節 動作環境......1 第 2 節 画面構成......2 第 2 章各種機能 4 第 1 節地図操作......4 第 1 項 基本地図操作... 4 第 2 項 個別属性表示... 5 第 3 項 計測... 6 第 2 節レポート作成......6 第

More information

概要 ABAP 開発者が SAP システム内の SAP ソースまたは SAP ディクショナリーオブジェクトを変更しようとすると 2 つのアクセスキーを入力するよう求められます 1 特定のユーザーを開発者として登録する開発者キー このキーは一度だけ入力します 2 SAP ソースまたは SAP ディクシ

概要 ABAP 開発者が SAP システム内の SAP ソースまたは SAP ディクショナリーオブジェクトを変更しようとすると 2 つのアクセスキーを入力するよう求められます 1 特定のユーザーを開発者として登録する開発者キー このキーは一度だけ入力します 2 SAP ソースまたは SAP ディクシ オンラインヘルプ :SAP ソフトウェア変更登録 (SSCR) キーの登録 目次 概要... 2 参考リンク... 3 アプリケーションの起動... 4 アプリケーションとメインコントロールの概要... 5 キーリストのカスタマイズ... 7 リストのフィルタリング... 7 表のレイアウトのカスタマイズ... 8 新しい開発者の登録... 10 新しいオブジェクトの登録... 12 特定のインストレーションから別のインストレーションに個々の

More information

VBAのライセンス登録ガイド

VBAのライセンス登録ガイド ArcGIS Desktop VBA のライセンス登録ガイド 目次 はじめに... 1 ArcGIS 10 の VBA について... 1 手順の概要... 1 VBA のインストールから使用まで... 2 ArcGIS Desktop VBA Resources for Developers のンストール... 2 VBA 認証番号の取得... 7 VBA ラセンスの認証... 8 単独使用ラセンス

More information

Prog2_12th

Prog2_12th 2018 年 12 月 13 日 ( 木 ) 実施クラスの継承オブジェクト指向プログラミングの基本的な属性として, 親クラスのメンバを再利用, 拡張, または変更する子クラスを定義することが出来る メンバの再利用を継承と呼び, 継承元となるクラスを基底クラスと呼ぶ また, 基底クラスのメンバを継承するクラスを, 派生クラスと呼ぶ なお, メンバの中でコンストラクタは継承されない C# 言語では,Java

More information

プレポスト【問題】

プレポスト【問題】 コース名 : サーブレット /JSP/JDBC プログラミング ~Eclipse による開発 ~ 受講日 氏名 1 JDBC の説明として 間違っているものを 1 つ選びなさい 1. JDBC を使用してデータベースへアクセスするときには JDBC API が必要である 2. JDBC API は java.lang パッケージとして提供されている 3. JDBC には JDBC API JDBC

More information

ステップ 5: ファイルの管理 ステップ 6: レイヤーのデータソースの変更 演習のまとめ 第 3 章レイヤーの操作と共有 第 3 章概要 画面移動 1 : レイヤーの全体表示 画面移動 2 : [XY へ移動 ] ツール...

ステップ 5: ファイルの管理 ステップ 6: レイヤーのデータソースの変更 演習のまとめ 第 3 章レイヤーの操作と共有 第 3 章概要 画面移動 1 : レイヤーの全体表示 画面移動 2 : [XY へ移動 ] ツール... 目次 アイコンの説明... 10 第 1 章はじめに... 11 はじめに... 13 本講習の目的... 13 講習内容 (1 日目 )... 14 講習内容 (2 日目 )... 14 講習内容 (3 日目 )... 15 講習資料... 16 ArcGIS の紹介... 16 ArcGIS プラットフォーム... 16 サポート Web サイト... 17 ArcGIS ヘルプサイト... 17

More information

はじめに 本ドキュメントでは Salesforce 標準機能である 変更セット を使用して Visualforce ページ Apex クラスを Sandbox から本番環境に移行する手順を説明します 但し前提条件として Sandbox 本番環境共に SkyVisualEditor がインストールされ

はじめに 本ドキュメントでは Salesforce 標準機能である 変更セット を使用して Visualforce ページ Apex クラスを Sandbox から本番環境に移行する手順を説明します 但し前提条件として Sandbox 本番環境共に SkyVisualEditor がインストールされ Sandbox から本番環境への移行手順 - Visualforce page Apex Class のデプロイ - Ver 2.1.0 2017 年 6 月 21 日 株式会社テラスカイ 1 / 15 はじめに 本ドキュメントでは Salesforce 標準機能である 変更セット を使用して Visualforce ページ Apex クラスを Sandbox から本番環境に移行する手順を説明します

More information

ArcGIS Desktop Ⅱ 基礎編

ArcGIS Desktop Ⅱ 基礎編 目次 アイコンの説明... 10 第 1 章はじめに... 11 はじめに... 13 本コースの目的... 13 講習内容 (1 日目 )... 14 講習内容 (2 日目 )... 14 講習内容 (3 日目 )... 15 講習資料... 15 ArcGIS の紹介... 16 ArcGIS プラットフォーム... 16 Web ページ : サポート情報... 17 Web ページ :ArcGIS

More information

Web AppBuilder for ArcGIS (Developer Edition) インストールガイド

Web AppBuilder for ArcGIS (Developer Edition) インストールガイド インストールガイド 目次 はじめに... 1 Web AppBuilder for ArcGIS (Developer Edition) インストールガイドについて... 1 Web AppBuilder for ArcGIS (Developer Edition) とは... 1 動作環境... 2 ライセンス... 2 インストール手順... 3 Web AppBuilder for ArcGIS

More information

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能. Viewer manual by SparxSystems Japan Enterprise Architect 読み込み専用版 (Viewer) 利用マニュアル 内容 1 はじめに...3 2 インストールの手順...3 3 起動の手順...6 4 Enterprise Architect のプロジェクトファイルを開く...7 5 内容を参照する...8 5.1 プロジェクトブラウザを利用する...8

More information

Sparkline for WPF

Sparkline for WPF 2018.04.11 更新 グレープシティ株式会社 目次 Sparkline for WPF の概要 2 WPF Edition のヘルプ 2 主要な機能 2 クイックスタート :Sparkline for WPF 2-4 機能 4 軸 4 日付軸 4-5 データ連結 5 スパークラインのタイプ 5-7 スパークラインタイプの設定 7 マーカー 7-9 マーカーの色のカスタマイズ 9-10 タスク別ヘルプ

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作 Access 2007 と SQL Server Express を使用 SQL 文は SQL Server 主体で解説 Access 版ノースウィンドウデータベースを使用 DBMS プログラム サーバーエクスプローラ SQL 文 実行結果 データベース エンジン データベース SQL 文とは 1 度のコマンドで必要なデータを効率よく取得するための技術といえます

More information

ARCHI Box Windows版 ヘルプ(お施主様向け)

ARCHI Box Windows版 ヘルプ(お施主様向け) ARCHI Box for Windows ヘルプ ARCHI Box for Windows は ARCHI Box または TREND Net にアップロードした図面 パースな どを パソコンで閲覧 プレゼンするためのアプリケーションです 基本操作 ログインする プレゼンデータを閲覧する 機能解説 画面周りの機能 施工事例 朱書き ARCHI Box 3D 1 画面周りの機能 トップページに戻る

More information

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2 レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager 2.2.0 < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2 Platform Standard Edition Development Kit 5.0 Java SE Development Kit 6 < 追加機能一覧

More information

Visual Studio 2013 によるコードマップを使用した 特定のコード内での依存関係の対応付け 2014 Microsoft Corporation. All rights reserved. 1

Visual Studio 2013 によるコードマップを使用した 特定のコード内での依存関係の対応付け 2014 Microsoft Corporation. All rights reserved. 1 Visual Studio 2013 によるコードマップを使用した 特定のコード内での依存関係の対応付け 2014 Microsoft Corporation. All rights reserved. 1 目次 Visual Studio 2013 によるコードマップを使用した 特定のコード内での依存関 係の対応付け... 1 1. コードマップを利用するための前準備... 4 2. コードマップによる依存関係グラフのナビゲート...

More information

Visual Studio Do-It-Yourself シリーズ 第 1 回 Windows ゕプリケーション開発の概要 -1-

Visual Studio Do-It-Yourself シリーズ 第 1 回 Windows ゕプリケーション開発の概要 -1- Visual Studio Do-It-Yourself シリーズ 第 1 回 Windows ゕプリケーション開発の概要 -1- Visual Studio Do-It-Yourself 第 1 回 Windows ゕプリケーション開発の概要 はじめに - Visual Studio Do-It-Yourself について 本 Visual Studio Do-It-Yourself シリーズでは

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション JAN コード登録マニュアル 項目説明 CSV で商品データを upload するに当たり 間違えやすいカラムについてまとめました 項目 説明 備考 コントロールカラム CSV 上で当該商品情報をどうするのか ( 更新 削除等 ) 指示するコード "u": 更新 "d": 削除等 商品管理番号 出来上がった商品ページURLの一部であり 入力がない場合は自動採番される web 上で商品を特定するキーコード

More information

HOW DO I WebBrowser コントロールで HTML5 を 使用するには ここでは以下の手順で説明します Video 要素を使用する Silverlight と JavaScript の間でやり取りする Canvas 要素を使用する Video 要素を使用する 1. Visual Stu

HOW DO I WebBrowser コントロールで HTML5 を 使用するには ここでは以下の手順で説明します Video 要素を使用する Silverlight と JavaScript の間でやり取りする Canvas 要素を使用する Video 要素を使用する 1. Visual Stu HOW DO I WebBrowser コントロールで HTML5 を 使用するには ここでは以下の手順で説明します Video 要素を使用する Silverlight と JavaScript の間でやり取りする Canvas 要素を使用する Video 要素を使用する 1. Visual Studio で "Windows Phone ゕプリケーション " プロジェクトテンプレートを使って "HTML5BrowserFeatures"

More information

XAML の勉強上要! WPF アプリケーションは作れます

XAML の勉強上要!  WPF アプリケーションは作れます ゕジェンダ 自己紹介 はじめに 簡単なゕプリケーションを作ってみる Binding 概要 Linq to SQL とのバンデゖング ゕニメーション 3D グラフゖック まとめ 自己紹介 福井県越前市 ( 武生市 ) 出身 東京都杉並区在住 ソフトウェゕ業務歴 28 年 フリ- 技術者歴 20 年以上 でも 永遠の28 歳 4Bitワンチップからワークステーションまでのソフトを開発 開発言語も多種多様

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

ArcGIS for Server 機能比較表

ArcGIS for Server 機能比較表 10.1 ArcGIS 10.1 for Server 比較表 目次 ArcGIS 10.1 for Server 比較表... 1 はじめに... 1 比較表... 1 ArcGIS for Server の最適なとレベルの選択... 1 ArcGIS for Server のインストール... 3 詳細な比較表... 4 空間タイプをサポートするデータベースの使用... 4 ジオデータベース管理...

More information

Prog2_15th

Prog2_15th 2019 年 7 月 25 日 ( 木 ) 実施メニューメニューバーとコンテクストメニュー Visual C# では, メニューはコントロールの一つとして扱われ, フォームアプリケーションの上部に配置されるメニューバーと, コントロール上でマウスを右クリックすると表示されるコンテクストメニューとに対応している これ等は選択するとメニューアイテムのリストが表示されるプルダウンメニューと呼ばれる形式に従う

More information

Webサービスを利用して機能UP!

Webサービスを利用して機能UP! 福井和彦 / 畑中侑 株式会社ミガロ. システム事業部システム 2 課 Web サービスを利用して機能 UP! 既存機能に住所検索を追加 Delphi/400 で Web サービスを活用する この仕組みと方法を 住所検索の実装を通して紹介する はじめに 住所検索実装の課題 Web サービスを利用する 仕組みについて 画面イメージと実装機能 実装方法 既存機能への組み込み 最後に 略歴福井和彦 1972

More information

Microsoft Word _みちのくGIDAS_操作マニュアル_ docx

Microsoft Word _みちのくGIDAS_操作マニュアル_ docx 平成 29 年 4 月 1 日とうほく地盤情報システム運営協議会事務局 みちのく GIDAS 閲覧 登録マニュアル この資料は 実際のデータ登録手順を記載しております ご利用には事前登録が必要となりますので 事務局までお問い合わせください 目次 1. みちのく GIDAS にログイン 2 2. 地図を操作 3 2-1. ツールバーの役割 3 2-2. 地図を移動する 5 2-3. 地図の拡大縮小 6

More information

FileExplorer for ASP.NET Web Forms

FileExplorer for ASP.NET Web Forms FileExplorer for ASP.NET Web Forms 2018.04.12 更新 グレープシティ株式会社 目次 製品の概要 2 ComponentOne for ASP.NET Web Formsのヘルプ 2 ビジュアル要素 3 クイックスタート : フォルダパスの追加 4-5 エクスプローラーの機能 6 複数ファイルの選択 6-7 フォルダの作成と管理 7 ファイル操作の無効化 7

More information

クイックスタートマニュアル目次 スマホサイトビルダーモビークとは? モビークの特徴 ドラッグ& ドロップで簡単編集 スタイリッシュなデザイン部品 PC サイトと自動連動 最高のSEO 対策導入までの流れ STEP1 初期デザイン設定 STEP2 ページの登録 STEP3 スマホページの編集 STEP

クイックスタートマニュアル目次 スマホサイトビルダーモビークとは? モビークの特徴 ドラッグ& ドロップで簡単編集 スタイリッシュなデザイン部品 PC サイトと自動連動 最高のSEO 対策導入までの流れ STEP1 初期デザイン設定 STEP2 ページの登録 STEP3 スマホページの編集 STEP スマホサイトビルダーモビーククイックスタートマニュアル 更新日 :2014 年 06 月 02 日 Ver:2.0.0 Copyright2012-2014mobeekAllRightsreserved. クイックスタートマニュアル目次 スマホサイトビルダーモビークとは? モビークの特徴 ドラッグ& ドロップで簡単編集 スタイリッシュなデザイン部品 PC サイトと自動連動 最高のSEO 対策導入までの流れ

More information

サイト名

サイト名 2014 年 9 月 18 日 株式会社デジタル ナレッジ KnowledgeDeliver 5.11 リリースノート 日頃は弊社 KnowledgeDeliver / KnowledgeClassroom をご愛顧いただき 誠にありがとうございます 本ドキュメントでは KnowledgeDeliver の最新バージョン 5.11 と KnowledgeClassroom 1.11 の更新について説明します

More information

1

1 DevPartner メモリ分析機能について DevPartner Studio ( 以降 DPS と記す ) のメモリ分析機能は Visual Studio 2005 2008 2010 2012 の VB.NET や C# などのマネージ言語で作成したシステムのメモリ使用状態を分析する機能です このドキュメントは メモリ分析 の代表的な使用方法を簡単に説明するものです ) 当資料は DPS11.1(

More information

Mindjet MindManager Version 9 for Windows サービスパック 2 リリースノート : 2011 年 4 月 20 日

Mindjet MindManager Version 9 for Windows サービスパック 2 リリースノート : 2011 年 4 月 20 日 Mindjet MindManager Version 9 for Windows サービスパック 2 : 2011 年 4 月 20 日 MindManager Version 9 for Windows で修正された問題 MindManager 9 ビルド 9.2.545 合計期間が 1 日未満の仕事間の依存関係が 強制的に別の日に開始された 依存する仕事の合計期間が一作業日未満である場合は それらの仕事を同じ日に開始できるようになりました

More information

Eschartマニュアル

Eschartマニュアル Eschart マニュアル 株式会社スマートエナジー研究所 Version 1.0.0, 2018-09-26 目次 1. 概要........................................................ 1 2. 各部名称 概要................................................. 2 3. 基本操作.....................................................

More information

すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は

すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は DC さくらの画面構成 DC さくらが起動している間は デスクトップ右下のタスクトレイに DC さくらのアイコンが表示されます この DC さくらのアイコンを右クリックしてください ( 下の図はスクリーンショットです ) この青色のアイコンが DC さくらのアイコンです DCさくらのアイコンを右クリックすると 以下の図のような操作メニューが表示されます メニュー項目には 操作を行うための各コマンドが配置されております

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 2 第 8 回表形式データ (1) 1 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ データの登録 データの検索 データの更新 実際的はソフトウェアでは 表形式データの ( 例えば データベースのデータ ) を利用する場面が非常に多く とても重要である そこで 表形式を扱うプログラミングを繰り返しとりあげる 2 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ

More information

クイックマニュアル(利用者編)

クイックマニュアル(利用者編) クイックマニュアル エコノス株式会社 目次 1. 利用イメージ 2. ログイン画面 3. 検索画面 4. クロールサイト管理画面 5. ユーザ管理 6. 検索履歴確認 7. クロール結果確認 8. ダウンロードパスワード設定 9. URLチェック 2 1. ご利用イメージ (1/2) 基本的な機能のご利用について 1 サイトへアクセスしログイン関連ページ :2. ログイン画面 2 検索対象の URL

More information

目次 1. プロフィール画像工房の概要 3 2. プロフィール画像の作成 8 3. プロフィール画像の登録 まとめ 27 レッスン内容 プロフィール画像工房 インターネット上に提供されているさまざまなサービス ( これ以降 サービス と記述します ) を利用するときには 利用するユーザー

目次 1. プロフィール画像工房の概要 3 2. プロフィール画像の作成 8 3. プロフィール画像の登録 まとめ 27 レッスン内容 プロフィール画像工房 インターネット上に提供されているさまざまなサービス ( これ以降 サービス と記述します ) を利用するときには 利用するユーザー 本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft Word 2013( テキスト内では Word と記述します ) Internet Explorer 11 画面の設定( 解像度 ) 1024 768 ピクセル テキスト内の解説で利用しているマイクロソフト社の Web メールサービス Outlook.com については 2014 年 9 月時点で提供している内容にもとづいています

More information

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編 手順 4 Excel データを活用する ( リスト / グラフ 色分け ) 外部の表データ (CSV 形式 ) を読み込み リスト表示やカード表示 その値によって簡単なグラフ ( 円 正方形 棒の 3 種類 ) や色分け表示することができます この機能を使って地図太郎の属性情報に無い項目も Excel で作成し CSV 形式で保存することにより 自由に作成することができます (Excel でデータを保存するとき

More information

スケジューリングおよび通知フォーム のカスタマイズ

スケジューリングおよび通知フォーム のカスタマイズ CHAPTER 6 この章では Outlook 予定表から会議をスケジュールまたは会議に参加するために [MeetingPlace] タブをクリックしたときに表示される項目の最も簡単なカスタマイズ方法について説明します 次の項を参照してください スケジューリングフォームと会議通知 (P.6-1) スケジューリングフォームおよび会議通知のカスタマイズ (P.6-2) MeetingPlace タブのフォームのデフォルト情報とオプション

More information

NAC(CCA): ACS 5.x 以降を使用した Clean Access Manager での認証の設定

NAC(CCA): ACS 5.x 以降を使用した Clean Access Manager での認証の設定 NAC(CCA): ACS 5.x 以降を使用した Clean Access Manager での認証の設定 目次 概要前提条件要件使用するコンポーネント表記法設定ネットワーク図 ACS 5.x を使用した CCA での認証の設定 ACS5.x の設定トラブルシューティング関連情報 概要 このドキュメントでは Cisco Secure Access Control System(ACS)5.x 以降を使用して

More information

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版   Copyright 2019 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 前処理プログラム 3.1. 前処理を実装する 3.1.1. 前処理の実装方式 3.1.2. 前処理の実行順序と引数 3.1.3. リクエストパラメータの解析

More information

GIS利用クイックチュートリアル

GIS利用クイックチュートリアル CommonMP-GIS クイックチュートリアル 本書の目的本書は 初めて CommonMP-GIS を操作される方を対象に ここで紹介する CommonMP-GIS の基本的な操作をとおして システムの操作概要をマスターしてもらうことを目的としたチュートリアルです なお CommonMP-GIS のインストール方法については CommonMP Ver1.5 インストール手順書 CommonMP-GIS

More information

Microsoft Word - JDBCドラバーの設定.doc

Microsoft Word - JDBCドラバーの設定.doc JDBC ドライバーの設定方法 対象バージョン : 2007 SP7 および 9.0.0 ページ - 1 - はじめに このガイドは Fiorano SOA プラットフォームの DB コンポーネントからデータベースにアクセスする際に必要となる JDBC ドライバーについて その設定方法を説明するものです Fiorano SOA プラットフォームのサーバーアーキテクチャや DB コンポーネントの使用方法

More information

インストール ダウンロード サービスリリースダウンロード. リリースノート コンポーネント カテゴリ 説明 の Column Fixing および Editing Core 機能が有効になっている場合 セルが編集モ ードに入り エディタープロバイダーが表示されると セルが隣接するセルと

インストール ダウンロード サービスリリースダウンロード. リリースノート コンポーネント カテゴリ 説明 の Column Fixing および Editing Core 機能が有効になっている場合 セルが編集モ ードに入り エディタープロバイダーが表示されると セルが隣接するセルと Infragistics ASP.NET 2015.2 リリースノート ASP.NET AJAX は パフォーマンスに注力して設計されたグリッド 快適な UX に不可欠なツリー タブ メニューなど ASP.NET AJAX に準拠した高パフォーマンスな ASP.NET Web Forms アプリケーションを作成するツールセットです インストール ダウンロード 2015.2 サービスリリースダウンロード.

More information

CSR生成手順-Microsoft IIS 7.x

CSR生成手順-Microsoft IIS 7.x JPRS サーバー証明書発行サービス CSR 生成手順 Microsoft IIS 7.x ( 新規 / 更新 ) Version 1.1 株式会社日本レジストリサービス (JPRS) Copyright 2016 Japan Registry Services Co., Ltd. 更新履歴 日付 Version 2016/07/29 1.0 初版リリース 2017/10/18 1.1 6. 識別名

More information

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0)

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0) Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0) このドキュメントは現状版として提供されます このドキュメントに記載されている情報や見解 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更されることがあります このドキュメントに記載された例は 説明のみを目的とした架空のものです

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 本セッションは 赤間さんのセッションで時間的な都合から紹介しきれなかった WPF と Silverlight の検証機能を解説し グレープシテゖが現在開発中の InputMan for WPF で提供する検証機能をご紹介するセッションです 本セッションはそれぞれの最新バージョンである WPF 3.5 SP1 と Silverlight 3 を前提にした内容となっています 2 検証の基本エラー表示の方法

More information

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降)

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降) クイックスタートガイド Cisco ViewMail for Microsoft Outlook クイックスタートガイド ( リリース 8. 以降 ) Cisco ViewMail for Microsoft Outlook( リリース 8. 以降 ) Cisco ViewMail for Microsoft Outlook の概要 Outlook 010 および Outlook 007 での ViewMail

More information

Actual4Test Actual4test - actual test exam dumps-pass for IT exams

Actual4Test   Actual4test - actual test exam dumps-pass for IT exams Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : C9510-318 日本語版 Title : IBM WebSphere Application Server Network Deployment V8.5 Core Administration

More information

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター 平成 30 年度 プログラミング研修講座 岩手県立総合教育センター 目次第 1 章プログラミングについて 1 ソフトウェアの働き 1 2 プログラミング言語 1 3 主なプログラミング言語の歴史 2 第 2 章 Visual Basic について 1 Visual Basic とは 3 2.NET Framework の環境 3 3 Visual Basic と.NET Framework の関係

More information

ArcGIS 10 3D Analyst パフォーマンス ヒント

ArcGIS 10 3D Analyst  パフォーマンス ヒント ArcGIS 10 3D Analyst パフォーマンス ヒント ESRI ジャパン株式会社 ArcGIS 3D Analyst 技術資料 内容 はじめに ArcGIS 3D Analyst 製品概要 ArcGIS 3D Analyst 動作環境 ArcGIS 3D Analyst の最適化 ArcScene の最適化 ArcGlobe の最適化 FAQs : グラフゖックカードの選定 はじめに 本技術資料は

More information

目次 1. アニメーションの仕組み 3 2. ワードアートでムービーのタイトルを作成 7 3. まとめ 課題にチャレンジ 19 [ アニメーション ] 機能 PowerPoint に搭載されている [ アニメーション ] 機能を使用すると 文字や図形にアニメーション ( さまざまな動きや

目次 1. アニメーションの仕組み 3 2. ワードアートでムービーのタイトルを作成 7 3. まとめ 課題にチャレンジ 19 [ アニメーション ] 機能 PowerPoint に搭載されている [ アニメーション ] 機能を使用すると 文字や図形にアニメーション ( さまざまな動きや PowerPoint で楽しむムービー作成講座 第 1 回 アニメーションの仕組みとタイトル作成 本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft PowerPoint 2010( テキスト内では PowerPoint と記述します ) 画面の設定 ( 解像度 ) 1024 768 ピクセル 本テキストは 次の環境でも利用可能です Windows

More information

ASA WEB 1.7 リリースノート

ASA WEB 1.7 リリースノート インポーター / ディストリビュータ様向け Revision: 1.0 20 August 2019 CONTENTS リリースノート... 3 リリース日... 3 新機能... 4 3.1 複数市向け VIN 検索... 4 3.2 ASA Desktop アプリケーションからのメモファイルの移行... 4 3.3 イラスト上の矩形描画による複数 PNC 選択... 5 3.4 PNC クリックピック...

More information

工程’S 9 ヘルプ Excelバーチャート

工程’S 9 ヘルプ Excelバーチャート 工程 S 9.1 ヘルプ Excel バーチャート 株式会社ウェッブアイ [2018 年 3 月 ] 目次 はじめに... 2 Excel バーチャートについて... 2 商標について... 3 動作環境... 3 バージョン情報... 3 Excel バーチャートの実行... 4 Excel バーチャートの起動... 4 対象の工程 s ファイルを開く... 5 Excel バーチャートの出力...

More information

HTTP 404 への対処

HTTP 404 への対処 Sitecore CMS 6 HTTP 404 への対処 Rev: 2010-12-10 Sitecore CMS 6 HTTP 404 への対処 Sitecore を使用して HTTP 404 Page Not Found 状態に対処するための開発者向けガイド 目次 Chapter 1 イントロダクション... 3 Chapter 2 HTTP 404 Page Not Found 状態... 4

More information

スライド 0

スライド 0 第 2 章情報記入とプラン地図上に情報記入や 行動計画をシミュレーションするプランの説明をします 2-1 カスタム情報の記入カスタム情報とは 地図上に名称 ( タイトル ) としてアイコンと文字 ( または画像 ) を表示し 内部に住所などのコメントや写真 動画 EXCEL ファイル PDF Web リンクを持つことができるものです 初期状態 ( デフォルト ) では テキスト作成時の動作は カスタム情報記入ウィザードを開くように設定されています

More information

Oracle SALTを使用してTuxedoサービスをSOAP Webサービスとして公開する方法

Oracle SALTを使用してTuxedoサービスをSOAP Webサービスとして公開する方法 Oracle SALT を使用して Tuxedo サービスを SOAP Web サービスとして公開する方法 概要 このドキュメントは Oracle Service Architecture Leveraging Tuxedo(Oracle SALT) のユースケースをほんの数分で実装できるように作成されています Oracle SALT を使用すると プロジェクトをゼロからブートストラップし 既存のプロジェクトに

More information

brieart変換設定画面マニュアル

brieart変換設定画面マニュアル 変換設定画面マニュアル Ver. 1.1 更新日 :2012/11/19 株式会社アイ エヌ ジーシステム Copyright (C) 2012 ING System Co., Ltd. All Rights Reserved. 目次 1. brieartとは? 3 ラベル 26 リスト 29 brieartとは 3 開閉 ( アコーディオン ) 32 注意事項 制限事項など 4 ボタン 35 パネル

More information

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2 第 1 版 改版履歴 版数 改版日付 改版内容 1 2013/03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2 目次 1. 使用しているデータベース (DPMDBI インスタンス ) を SQL Server

More information

オートビュー

オートビュー IODEP マニュアル PKB-065 プログラマブルキーボード rev 1.0 2013/04/18 株式会社 Javatel 2013 Javatel 1 目次 IODEP マニュアル MOXA E2000 シリーズ rev 1.0... 1 目次... 2 1 この文書について... 3 2 変更履歴... 4 3 ハードウェアの準備... 5 3.1 MOXA E2000 シリーズの準備...

More information

MMO ゲームパッド JC-DUX60BK ドライバー設定ガイド このドライバー設定ガイドは JC-DUX60BK に付属のドライバーを使った 各ボタンやスティックへの機能割り当てや連射の設定などの操作について説明しています ドライバーのインストール方法については JC-DUX60BK に付属のユー

MMO ゲームパッド JC-DUX60BK ドライバー設定ガイド このドライバー設定ガイドは JC-DUX60BK に付属のドライバーを使った 各ボタンやスティックへの機能割り当てや連射の設定などの操作について説明しています ドライバーのインストール方法については JC-DUX60BK に付属のユー MMO ゲームパッド JC-DUX60BK ドライバー設定ガイド このドライバー設定ガイドは JC-DUX60BK に付属のドライバーを使った 各ボタンやスティックへの機能割り当てや連射の設定などの操作について説明しています ドライバーのインストール方法については JC-DUX60BK に付属のユーザーズマニュアルをご覧ください このドライバー設定ガイドは Windows 10 の画面で説明しています

More information

スライド 1

スライド 1 第 6 章表計算 B(Excel 2003) ( 解答と解説 ) 6B-1. 表計算ソフトの操作 1 条件付き書式の設定 1. ( ア )=E ( イ )= お 条件付き書式とは セルの数値によりセルの背景に色を付けたり 文字に色を付けたり アイコンをつけたりして分類することができる機能です 本問題では 以下の手順が解答となります 1 2 ユーザー定義の表示形式 1. ( ア )=2 ( イ )=4

More information