<igMap:ShapeFileReader Uri="/../../Shapefiles/usa_st" DataMapping="Caption=STATE_ABBR" />
ここでは、 xamMap コントロール、およびその主要な特性と機能について解説しています。このセクションのトピックを読むと、アプリケーションで xamMap を使用することの利点を理解できます。
xamMap のデータ マッピングによって、 MapElement プロパティをデータソースの値にバインドすることができます。これを実行するには、 ShapeFileReader を使用して Shapefile を読み取る前に、そのリーダーの DataMapping プロパティを設定する必要があります。
DataMapping プロパティは、セミコロンで区切られたキーと値の組み合わせの文字列を取ります。トークンは大文字と小文字を識別し、マップされる列とプロパティを決定します。以下はデータ マップの例で、米国の州の Shapefile が提供されています:
XAML の場合:
<igMap:ShapeFileReader Uri="/../../Shapefiles/usa_st" DataMapping="Caption=STATE_ABBR" />
この例はマップ要素の Caption プロパティを Shapefile からの STATE_ABBR 列のデータにバインドします。表示するのは米国の州のマップで、各州は短縮形の州名のキャプションを表示します。
列のデータをエレメントの任意のプロパティに保存することも可能です:
XAML の場合:
<igMap:ShapeFileReader Uri="/../../Shapefiles/usa_st" DataMapping="STATE_ABBREVIATIONS=STATE_ABBR"/>
この XAML スニペットは STATE_ABBR 列のデータをエレメントごとに STATE_ABBREVIATIONS という名前のプロパティに保存します。データ マッピングを指定しない場合、xamMap が Shapefile を読み取る時に、すべてのデータ列は列と同じ名前の各要素の任意のプロパティにマップされます。プロパティ名を要素の GetProperty メソッドに渡すことによってプロパティにアクセスできます。たとえば、明示的なデータ マッピングが設定されていない場合、"STATE_ABBR" を渡すと個々のエレメントの州名の短縮形を取得します。SetProperty メソッドを使用して設定するプロパティ名と値を渡すことによってプロパティを設定することも可能です。
xamMap コントロールは、マップ データのソースとして一般的な Shapefile フォーマットを使用します。Shapefile は、点、線分群、多角形を記述する地理空間ベクトル データ フォーマットです。Shapefile は一般的にファイルの集合を指し、一般的な接頭辞名、たとえば "states" を使用する場合、拡張子 ".shp"、".shx"、および ".dbf" が通常付きます。
xamMap コントロールは Shapefile に基づいて異なりますが、都市、道路、州などの点、線分群、多角形ベクトル データを表示できます。このコントロールは、シェープファイルごとにレイヤーを 1 つ使用します。
MapLayer オブジェクトは xamMap で Shapefile データを表示するための方法です。複数のレイヤーを使用することによって複数の Shapefile を表示できます。
Shapefile のコンテンツを読み取りレイヤーにコンテンツを表示するために ShapeFileReader オブジェクトを使用できます。Shapefile は Web プロジェクトの ClientBin フォルダーに配置する必要があります。さらに、より多くの情報を表示するために Shapefile のデータとマップのエレメントのプロパティ間のデータ マッピングを実行することができます。
Shapefile の読み取りとデータ マッピングの使用に関する詳細は、 シェープファイルをバインドを参照してください。
マップ要素は特定のレイヤーで図形、線、多角形を表します。xamMap によって表示される図形を操作する方法を提供します。マップ要素はこれらの要素が存在するレイヤーからプロパティを取得します。これらのプロパティは個々に設定することも可能です。マップ 要素の詳細は、 マップ要素の表示を参照してください。
xamMap コントロールは子コントロール、ペイン、および図形矩形のコンテナーとして機能します。これらの要素は一緒にになってマップの視覚的表現を構成するのに役立ちます。
以下は xamMap で使用可能なペインのリストです:
これらの異なる要素をレイアウトするために、xamMap はそれぞれマップの本体のコンテンツを定義し、コントロールの位置を指定するためにレイヤーのコレクションと xamDock パネルを含んでいます。
マップの子が Layers コレクションに配置されない場合、LogicalChildren にルートされ、xamDock コントロールの子として描画されます。そのようなものとして、ドック位置は xamDock.Edge 添付プロパティを使用して設定できます。
マップ レイヤーおよびそれらのすべての要素は、コントロール領域の中央にドックされるマップビューポート内に含まれます。
ビューポートはマップの表示可能な領域で、マップ空間データを表示するために予約されています。ビューポートは以下の機能があります:
パンニング、ズーム、フィットのための組み込みキーボード ナビゲーション
ドラッグ パンニング、プレビューによる領域ズーム、および領域選択のための組み込みマウス ナビゲーション
xamMap コントロールによって、コンテンツのパンとズームが可能となります。これは多数の方法で実行できます:
組み込みキーボード ナビゲーション。
組み込みマウス ナビゲーション。
ナビゲーション ペイン。詳細について、 地図画像マップをナビゲートを参照してください。
IsPannable および IsZoomable ブール値プロパティを使用してパンとズームを制限することができます。
WindowScale プロパティで表現される xamMap コントロールのウィンドウ スケールを増すことでズームが機能します。ウィンドウ スケールの増減の係数は、 WindowZoomBase プロパティによって制御されます。デフォルトでは、このプロパティは 1.3 の値を持ちます。ズーム レベルを 1 増加するとウィンドウ スケールは 1.3 倍されます。ズーム レベルを 1 減少するとウィンドウ スケールは 1.3 で割り算されます。
WindowScale 値に基づいてズーム レベルを決定するには、xamMap コントロールの ScaleToZoom メソッドを使用します。
WindowZoomMinimum および WindowZoomMaximum プロパティを設定することで xamMap の最小および最大ズーム レベルを設定できます。
xamMap コントロールはマップの形状を視覚化するためにマップ投影法を使用します。マップ投影法は球表面と平面表示の間で変換するシステマティックなプロセスなので、地域的データのマップはマップ投影法の使用が必要です。xamMap コントロールは、測地座標とデカルト座標の間で変換するためにマップ投影法を使用します。
当然のことながら、地表面の形状を平らな地図の上で正確に再現することはできないため、投影図法の利用には歪みが伴います。特定の投影法はマップの特定の特徴で他よりも正確です。これはどの投影法が基準に最も当てはまるかを決定するのかはマップ製作者に任されます。
xamMap コントロールはマップ投影法の広範な選択肢を提供します。ShapefileReader は入力投影がないことを前提としますが、入力投影は ShapeFileReader オブジェクトの CoordinateSystem プロパティを使用して構成できます。座標系の変更の詳細は、 マップ座標システムを変更を参照してください。
マップ投影法の詳細は、以下のオンライン リソース (英語) を参照してください。