バージョン

シェープ ファイルを地理的データにバインディング

トピックの概要

目的

このトピックは、シェープ ファイルを読み込んで、 XamGeographicMap™ コントロールに地理的データをバインドする方法を提供します。

前提条件

以下の表に、このトピックを理解するための前提条件として求められるトピックをリストします。

トピック 目的

このトピックは、 XamGeographicMap コントロールをアプリケーション ページに追加する方法を示します。

このトピックは、マップ、シェープ ファイル、および地理的な関連資料についての情報を提供します。このトピックを使用して、地理的シェープ ファイルおよび編集のためのツールの詳細を学習し入手します。

このトピックは、 XamGeographicMap コントロールによってサポートされている地理的シリーズのタイプの概要を提供します。

シェープ ファイルをアプリケーションに追加

概要

アプリケーションへのシェープ ファイルの追加は、画像、オーディオ、ビデオ ファイルなどの実行可能ではないデータ ファイルの通常の追加と同じです。開発者として、アプリケーションでシェープ ファイルを配置するための多くの方法があります。これらの方法は、以下の MSDN トピックで説明されています。

すべてのシェープ ファイルは、アプリケーションの同じフォルダに配置してください。

以下の画像は、リソース ファイルとして追加されたシェープ ファイルがある WPF アプリケーション プロジェクトのサンプル構造を示します。

GeographicMap Binding Shape Files with Geospatial Data 1.png

シェープ ファイルから地理的データを読み込む

概要

XamGeographicMap コントロールでは、 ShapefileConverter クラスはシェープ ファイルから地理的データを読み込んで、それを ShapefileRecord オブジェクトのコレクションに変換します。

以下の表は、シェープ ファイルを読み込むための ShapefileConverter クラスのプロパティを説明します。

プロパティ タイプ 説明

Uri

Uri を地理的データ項目を含むシェープ ファイル (.shp) に指定します。

Uri

Uri を地理的データ項目のデータ テーブルを含むシェイプ データベース ファイル (.dbf) に指定します。

シェープ ファイルのソース プロパティは両方とも Uri タイプです。つまり、シェープ ファイルは、インターネット上(http を介して) assembly または で、アプリケーション アセンブリ内の埋め込みリソースとすることができます。この手順の詳細については、「地理的データでシェープ ファイルをバインディング」のセクションを参照してください。Uri オブジェクトを解決するルールは、たとえば BitmapImage.UriSource プロパティの標準的な Uri プロパティと同じです。

両方のソース プロパティが null 以外の値に設定されると、 ShapefileConverter オブジェクトの ImportAsync メソッドが起動し、シェープ ファイルを取得して読み込み、最終的に変換を実行します。この操作が完了すると、 ShapefileConverterShapefileRecord オブジェクトで生成され、シェープ ファイルから地理的データを読み込んで変換するプロセスが完了したことを通知するために、 ImportCompleted イベントが起動されます。

以下のコードは、世界の主要都市の場所を含むシェープ ファイルを読み込むための ShapefileConverter オブジェクトのインスタンスを作成します。また、XamGeographicMap コントロールにデータをバインドするための前提条件として ImportCompleted イベントを処理する方法も示します。

XAML の場合:

xmlns:ig="http://schemas.infragistics.com/xaml"
<ig:ShapefileConverter x:Key="shapefileConverter"
      ImportCompleted="OnShapefileImportCompleted"
      ShapefileSource="ShapeFiles/world_countries.shp"
      DatabaseSource="ShapeFiles/world_countries.dbf" >
</ig:ShapefileConverter>

Visual Basic の場合:

Imports Infragistics.Controls.Maps

Private WithEvents shapefileConverter As New ShapefileConverter()

shapefileConverter.ShapefileSource = New Uri("ShapeFiles/world_countries.shp", UriKind.RelativeOrAbsolute)
shapefileConverter.DatabaseSource = New Uri("ShapeFiles/world_countries.dbf", UriKind.RelativeOrAbsolute)
Private Sub OnShapefileConverterImportCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles shapefileConverter.ImportCompleted
      ' TODO: bind shapefileConverter to the XamGeographicMap control
End Sub

C# の場合:

using Infragistics.Controls.Maps;
ShapefileConverter shapefileConverter = new ShapefileConverter();
shapefileConverter.ImportCompleted += OnShapefileImportCompleted;
shapefileConverter.ShapefileSource = new Uri("ShapeFiles/world_countries.shp", UriKind.RelativeOrAbsolute);
shapefileConverter.DatabaseSource = new Uri("ShapeFiles/world_countries.dbf", UriKind.RelativeOrAbsolute);
private void OnShapefileImportCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
      // TODO: shapefileConverter を XamGeographicMap コントロールにバインドします
}

地理的データを地理的シリーズにバインディング

概要

XamGeographicMap コントロールでは、地理的シリーズは、シェープ ファイルから読み込まれる地理的データを表示するために使用されます。XamGeographicMap コントロールによってサポートされている地理的シリーズの概要については、 「地理的シリーズを使用」のトピックを参照してください。地理的シリーズのすべてのタイプには、このインターフェイス(たとえば、 ListCollectionQueueStack)を実装するオブジェクトにバインドできる ItemsSource プロパティがあります。 ShapefileConverter は Enumerable オブジェクトのもうひとつの例です。 ShapefileRecord オブジェクトのコレクションを実装するからです。

ShapefileRecord クラスは、以下の表にリストする地理的データを保存するためのプロパティを提供します。

プロパティ タイプ 説明

<List<Point>>

シェープ ファイル(.shp) から読み込まれた 1 つの地理的シェイプにすべてのポイントが含まれます。たとえば、日本のシェープ ファイルでは、次のように世界はポイント オブジェクトのリストとして表されます。

  • ポイントの最初のリストは北海道のシェイプを表します。

  • ポイントの 2 番目のリストは本州のシェイプを表します。

  • ポイントの 3 番目のリストは九州のシェイプを表します。

  • ポイントの 4 番目のリストは四国のシェイプを表します。

国のすべてのシェイプ/県/島が表されるまでポイントが続きます。

列名でキーが付けられたシェイプ データベース ファイル (.dbf) からのデータ行を含みます。たとえば、日本についてのデータには、人口、地域、首都名などが含まれます。

このデータ構造は、適切なデータ列がマップされている限り、ほとんどの地理的シリーズでの使用に適しています。

以下のトピックは、地理的シリーズの各タイプのバインディングおよびデータ要件を詳細に説明しています。

プレビュー

以下の画像は、世界のシェープ ファイルにバインドされている GeographicShapeSeries のある XamGeographicMap コントロールのプレビューです。

GeographicMap Binding Shape Files with Geospatial Data 4.png

このコードは、このトピックの 「地理的データでシェープ ファイルをバインディング」のセクションで説明しているように、シェープ ファイルが ShapefileConverter を使用して読み込まれることを想定しています。

以下のコードは、XamGeographicMap コントロールの GeographicShapeSeriesShapefileConverter にバインドし、すべての ShapefileRecord オブジェクトの Points プロパティをマップします。

XAML の場合:

<ig:XamGeographicMap x:Name="GeoMap">
     <ig:XamGeographicMap.Series>
          <ig:GeographicShapeSeries Brush="DimGray"
                                    ItemsSource="{StaticResource shapeFileSource}"
                                    ShapeMemberPath="Points" >
          </ig:GeographicShapeSeries>
     </ig:XamGeographicMap.Series>
</ig:XamGeographicMap>

Visual Basic の場合:

Private Sub OnShapefileConverterImportCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles shapeFileConverter.ImportCompleted
      Me.GeoMap.Series[0].ItemsSource = shapefileConverter
      Me.GeoMap.Series[0].ShapeMemberPath = “Points”
End Sub

C# の場合:

private void OnShapefileConverterImportCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
      this.GeoMap.Series[0].ItemsSource = shapefileConverter;
      this.GeoMap.Series[0].ShapeMemberPath = “Points”;
}

関連コンテンツ

以下のトピックでは、このトピックに関連する情報を提供しています。

トピック 目的

このトピックは、XamGeographicMap コントロールをアプリケーション ページに追加する方法を示します。

このトピックは、マップ、シェープ ファイル、および地理的な関連資料についての情報を提供します。このトピックを使用して、地理的シェープ ファイルおよび編集のためのツールの詳細を学習し入手します。

このトピックは、XamGeographicMap コントロールによってサポートされている地理的シリーズのタイプの概要を提供します。

このトピックは、XamGeographicMap コントロールで GeographicShapeSeries を使用する方法を提供します。

このトピックは、XamGeographicMap コントロールで GeographicSymbolSeries を使用する方法を提供します。

このトピックは、XamGeographicMap コントロールで GeographicPolylineSeries を使用する方法を提供します。

このトピックは、XamGeographicMap コントロールおよびそのコンポーネントのキー クラスとプロパティの API 概要を提供します。