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 以上を使用する必要があります。