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

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

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

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

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

GIS サーバ

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

地図画像の配信

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

GIS サーバ

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

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

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

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

フィーチャ レイヤ

特定のレイヤから、

座標、属性情報を取得

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

pg. 68 Copyright ESRI Japan Corporation. All rights reserved.

マップ サービス レイヤ

マップ サービス レ゗ヤが利用する GIS サーバのマップ サービスは、REST 形 式で公開されており、マップ サービス レ゗ヤはこの REST サービスのエンドポ

゗ントにゕクセスすることで、GIS サーバが生成したマップ サービスの画像を表 示することができます。マップ サービス レ゗ヤには、ArcGIS Server が公開す る様々なマップ サービス や Bing Maps サービスなど様々なサービスに対応す るために、以下のようなマップ サービス レ゗ヤ クラスが用意されています。

マップ サービス レイヤ クラス:

ArcGISTiledMapServiceLayer ArcGIS Server のマップ キャッシュ サービスをデータソースと して使用します。

ArcGISDynamicMapServiceLayer ArcGIS Server のダイナミック マップ サービスをデータソース として使用します。

ArcGISImageServiceLayer ArcGIS Server のイメージ サービスをデータソースとして使用 します。

TileLayer Bing Maps のマップ イメージ サービスをデータソースとして使

用します。

マップ サービス レ゗ヤ クラスのデータソースを指定するには、クラスの Url 属 性にマップ サービスの REST エンドポ゗ントを指定します。本スタートゕップ ガ゗ドで紹介したコードでは Esri 社がホストしている ArcGIS Online の世界道 路地図の REST エンドポ゗ントを <esri:ArcGISTiledMapServiceLayer> タグ の Url 属性に指定しています。

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

マップ サービス レ゗ヤが利用する ArcGIS Server のマップ サービスの REST エンドポ゗ントは ArcGIS Server を゗ンストールするとサーバに構成される ArcGIS Services Directory と呼ばれる簡易 Web ゕプリケーションから確認す ることができます。以下の URL より Esri 社が公開している ArcGIS Server の マップ サービスの REST エンドポ゗ントを確認することができます。

ArcGIS Online ArcGIS Services Directory

http://server.arcgisonline.com/ArcGIS/Rest/Services

「Services:」セクションに表示されるサービスの一覧から使用したいサービスを クリックします。例えば世界道路地図 の REST エンドポ゗ントを確認するには、

Home ページにて、 [World_Street_Map] をクリックします。

pg. 70 Copyright ESRI Japan Corporation. All rights reserved.

World_Street_Map サービスの詳細が表示されます。サービスの REST エンド ポ゗ントはブラウザに表示される URL です。

ローカルの ArcGIS Server (ArcGIS Server 9.3.1 以降)の ArcGIS Services Directory は Windows メニューより [すべてのプログラム] > [ArcGIS] > [ArcGIS Server for Microsoft .NET Framework] > [ArcGIS Services Directory] と選択することでゕクセ スできます。

Silverlight ゕプリケーションはセキュリテゖ上の理由から自身をホストしているドメ゗

ン以外のサービスを呼び出すことはできません。Silverlight ゕプリケーションに複数ドメ

゗ン間のゕクセスを許可する方法については下記をご参照ください。

Microsoft:ドメ゗ンの境界を越えてサービスを利用できるようにする

http://msdn.microsoft.com/ja-jp/library/cc197955(VS.95).aspx

フィーチャ レイヤ

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

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

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

pg. 72 Copyright ESRI Japan Corporation. All rights reserved.

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

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

ントを確認します。

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

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

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

pg. 74 Copyright ESRI Japan Corporation. All rights reserved.

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

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

pg. 76 Copyright ESRI Japan Corporation. All rights reserved.

5. 以下の例では上記手順で確認した、Cities レ゗ヤを ArcGIS Online の世界道 路地図の上に重ねています。フゖーチャ レ゗ヤ クラス(FeatureLayer)の Url プロパテゖに REST エンドポ゗ントを指定しています。その他に、

FeatureLayer の Where プロパテゖを使用して Cities レ゗ヤの POP1990 列の値が 100000 よりも大きいレコード(人口が 10 万人以上)のみを取得 すると言う条件句を設定しています(Where="POP1990 > 100000")

<esri:Map x:Name="MyMap">

<esri:ArcGISTiledMapServiceLayer ^

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

services/World_Street_Map/MapServer" />

<esri:FeatureLayer ^

Url="http://sampleserver1.arcgisonline.com/ArcGIS/^

rest/services/Specialty/ESRI_StatesCitiesRivers_USA/^

MapServer/0"

Where="POP1990 > 100000"/>

</esri:Map>

FeatureLayer クラスにはその他にもサーバからのデータの取得方式を設定 する MODE プロパテゖや、自動的にポ゗ントを集約して表示するクラスタ シンボルを設定するための Clusterer プロパテゖなどが用意されています。

詳細は API Reference をご参照ください。

API Reference:FeatureLayer

http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI .ArcGIS.Client.FeatureLayer.html

ローカルの ArcGIS Server (ArcGIS Server 9.3.1 以降)の ArcGIS Services Directory は Windows メニューより [すべてのプログラム] > [ArcGIS] > [ArcGIS Server for Microsoft .NET Framework] > [ArcGIS Services Directory] と選択することでゕクセ スできます。

Silverlight ゕプリケーションはセキュリテゖ上の理由から自身をホストしているドメ゗

ン以外のサービスを呼び出すことはできません。Silverlight ゕプリケーションに複数ドメ

゗ン間のゕクセスを許可する方法については下記をご参照ください。

Microsoft:ドメ゗ンの境界を越えてサービスを利用できるようにする

http://msdn.microsoft.com/ja-jp/library/cc197955(VS.95).aspx

pg. 78 Copyright ESRI Japan Corporation. All rights reserved.

その他のレイヤ

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

HeatMapLayer

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

OpenSreetMapLayer

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

GeoRssLayer

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

pg. 80 Copyright ESRI Japan Corporation. All rights reserved.

WmsLayer

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

KmlLayer

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

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

関連したドキュメント