バージョン

地理等高線シリーズの使用

トピックの概要

目的

このトピックでは、 XamGeographicMap™ コントロールでシリーズの GeographicContourLineSeries タイプを使用する方法を提供します。

前提条件

以下の表は、このトピックを理解するための前提条件として必要なトピックを示しています。

トピック 目的

このトピックでは、XamGeographicMap コントロールのマップ要素のレイアウトについての情報を提供します。

このトピックでは、データ ポイントの三角測量がどのように機能するか、また XamGeographicMap コントロールでデータ描画のパフォーマンスをいかに向上できるのかを説明します。

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

地理等高線シリーズ

概要

XamGeographicMap コントロールで、 GeographicContourLineSeries は、各ポイントに数値が割り当てられた緯度および経度データの三角測量に基づいて、地理的コンテキストで色が付けられた等高線を描画するビジュアル マップ要素です。

このタイプの地理的シリーズは、温度、気圧、降水量、人口分布、地理的データなど地理的位置によって定義された散布データの描画に役に立ちます。 GeographicContourLineSeries は、塗りつぶしスケールと地理散布エリア シリーズを使用して色がつけられた等高線でデータを表し、カラー スケールを使用して補間された面でデータを表す点を除いて GeographicScatterAreaSeries と多くの点で同じように機能します。

プレビュー

以下は、アメリカの降水量をプロットする GeographicContourLineSeries のある XamGeographicMap コントロールのプレビューです。濃い青の等高線は降水量が少ないことを示し、明るい赤の等高線は降水量が多いことを示します。

GeographicMap Using Geographic Contour Line Series 1.png

データ要件

XamGeographicMap コントロールの地理的シリーズの他のタイプと同様、 GeographicContourLineSeries には、データ バインディングのための ItemsSource プロパティがあります。このプロパティは、 IEnumerable インターフェイスを実装するオブジェクトにバインドできます。

さらに、項目ソースの各項目にはデータ列が 3 つあり、2 つは地理的位置 (経度および緯度座標) を保管し、1 つのデータ列は地理的位置に関連した値を保管します。これらのデータ列は、地理的シリーズの LongitudeMemberPathLatitudeMemberPath および ValueMemberPath プロパティによって識別されます。

GeographicContourLineSeries は、三角測量が TrianglesSource プロパティに設定されていない場合、 ItemsSource の項目で定義済みのデータ三角測量を自動的に実行します。ただし、三角測量の計算は非常に時間のかかるプロセスであるため、このプロパティのために TriangulationSource を指定すると、ランタイム パフォーマンスがよくなります。特にデータ項目が多数ある場合には顕著です。

Note
注:

三角測量データの作成、保存、読み込みのプロセスに関する詳細は、 地理的データを三角測量を参照してください。

データ バインディング

以下の表に、データ バインドに使用される GeographicContourLineSeries のプロパティをまとめています。

プロパティ名 プロパティ タイプ 説明

IEnumerable

TrianglesSource プロパティに提供する三角測量データがない場合三角測量を実行するための項目のソースを取得または設定します。

IEnumerable

三角測量データのソースを取得または設定します。 TriangulationSource オブジェクトの Triangles をこのプロパティに設定すると、ランタイム パフォーマンスと地理的シリーズの描画の両方が向上します。

String

ItemsSource の各項目の経度を含むプロパティの名前。

String

ItemsSource の各項目の緯度を含むプロパティの名前。

String

FillScale プロパティに設定された塗りつぶしスケールによってブラシへの変換が可能な数値を含む各データ項目のプロパティの名前。

String

ItemsSource で最初の頂点のインデックスを含む、各三角形の TrianglesSource 項目のプロパティ名。このプロパティを設定することは義務ではありません。カスタムの三角測量ロジックが提供されない場合はデフォルトで取られます。

String

ItemsSource で最初の頂点のインデックスを含む、各三角形の TrianglesSource 項目のプロパティ名。このプロパティを設定することは義務ではありません。カスタムの三角測量ロジックが提供されない場合はデフォルトで取られます。

String

ItemsSource で最初の頂点のインデックスを含む、各三角形の TrianglesSource 項目のプロパティ名。このプロパティを設定することは義務ではありません。カスタムの三角測量ロジックが提供されない場合はデフォルトで取られます。

等高線の塗りつぶしスケール

GeographicContourLineSeriesFillScale を使用して地理的シリーズの等高線の塗りつぶしブラシを解決します。

提供された ValueBrushScale クラスはユーザーのほとんどのカラリング ニーズを満たすはずですが、カスタムのカラリング ロジックのアプリケーションが ValueBrushScale クラスを継承します。

以下の表は GeographicContourLineSeries の面のカラリングに影響する CustomPaletteColorScale プロパティをリストします。

プロパティ名 プロパティ タイプ 説明

Brushes

GeographicContourLineSeries の塗りつぶし等高線のためのブラシのコレクションを取得または設定します。

double

塗りつぶしスケールでブラシを割り当てるための最高値。

double

塗りつぶしスケールでブラシを割り当てるための最低値。

等高線値リゾルバー

GeographicContourLineSeries は、 ValueMemberPath プロパティにマップされた項目の最小値と最大値の間を等間隔でちょうど 10 本の等高線を使用して描画します。これより多くの等高線が必要な場合、またはこれより少ない等高線が必要な場合、等高線の数を持つ LinearContourValueResolverGeographicContourLineSeriesValueResolver プロパティに割り当てることができます。

以下のコードは、 GeographicContourLineSeries の等高線の数を構成する方法を示します。

XAML の場合:

<ig:GeographicContourLineSeries
        <ig:GeographicContourLineSeries.ValueResolver>
                  <ig:LinearContourValueResolver ValueCount="5" />
        </ig:GeographicContourLineSeries.ValueResolver>
</ig:GeographicContourLineSeries>

アプリケーションで等高線の位置を決定するには、カスタムの値リゾルバーを実装します。これは、 ContourValueResolver から継承し GetContourValues メソッドをオーバーライドすることによって実行されます。

以下のコードは、定義済みの位置に等高線を指定するカスタムの等高線値リゾルバーの実装を示します。

C# の場合:

public class CustomValueResolver : Infragistics.Controls.Charts.ContourValueResolver
{
    public override IEnumerable<double> GetContourValues(IFastItemColumn<double> valueColumn)
    {
        return new double[] {1, 2, 4, 5, 8};
    }
}

以下のコードは、 GeographicContourLineSeries をアメリカの降水量を表す三角測量データにバインドする方法を示します。

XAML の場合:

<ig:ItfConverter x:Key="itfConverter" Source="precipitation_observed_20110831.itf" />
<ig:XamGeographicMap.Series>
    <ig:GeographicContourLineSeries
          ValueMemberPath="Value"
          LongitudeMemberPath="Point.X"
          LatitudeMemberPath="Point.Y"
          ItemsSource="{Binding TriangulationSource.Points, Source={StaticResource itfConverter}}"
          TrianglesSource="{Binding TriangulationSource.Triangles, Source={StaticResource itfConverter}}"
          TriangleVertexMemberPath1="V1"
          TriangleVertexMemberPath2="V2"
          TriangleVertexMemberPath3="V3">
        <ig:GeographicContourLineSeries.FillScale>
            <ig:ValueBrushScale MinimumValue="0.05" MaximumValue="1.75">
                        <ig:ValueBrushScale.Brushes>
                                <SolidColorBrush Color="DarkRed"/>
                                <SolidColorBrush Color="Red"/>
                                <SolidColorBrush Color="Orange"/>
                                <SolidColorBrush Color="Yellow"/>
                        </ig:ValueBrushScale.Brushes>
            </ig:ValueBrushScale>
        </ig:GeographicContourLineSeries.FillScale>
    </ig:GeographicContourLineSeries>
</ig:XamGeographicMap.Series>

Visual Basic の場合:

Dim itfConverter = New ItfConverter()
itfConverter.Source = New Uri("precipitation_observed_20110831.itf", UriKind.RelativeOrAbsolute)
Dim fillScale = New ValueBrushScale()
fillScale.MinimumValue = 0.05
fillScale.MinimumValue = 1.75
fillScale.Brushes = New BrushCollection()
fillScale.Brushes.Add(New SolidColorBrush(Colors.DarkRed))
fillScale.Brushes.Add(New SolidColorBrush(Colors.Red))
fillScale.Brushes.Add(New SolidColorBrush(Colors.Orange))
fillScale.Brushes.Add(New SolidColorBrush(Colors.Yellow))
Dim geoSeries = New GeographicContourLineSeries()
geoSeries.FillScale = fillScale
geoSeries.LongitudeMemberPath = "Point.X"
geoSeries.LatitudeMemberPath = "Point.Y"
geoSeries.TriangleVertexMemberPath1 = "V1"
geoSeries.TriangleVertexMemberPath2 = "V2"
geoSeries.TriangleVertexMemberPath3 = "V3"
geoSeries.ItemsSource = itfConverter.TriangulationSource.Points
geoSeries.TrianglesSource = itfConverter.TriangulationSource.Triangles

C# の場合:

var itfConverter = new ItfConverter();
itfConverter.Source = new Uri("precipitation_observed_20110831.itf", UriKind.RelativeOrAbsolute);
var fillScale = new ValueBrushScale();
fillScale.MinimumValue = 0.05;
fillScale.MinimumValue = 1.75;
fillScale.Brushes = new BrushCollection();
fillScale.Brushes.Add(new SolidColorBrush(Colors.DarkRed));
fillScale.Brushes.Add(new SolidColorBrush(Colors.Red));
fillScale.Brushes.Add(new SolidColorBrush(Colors.Orange));
fillScale.Brushes.Add(new SolidColorBrush(Colors.Yellow));
var geoSeries = new GeographicContourLineSeries();
geoSeries.FillScale = fillScale;
geoSeries.LongitudeMemberPath = "Point.X";
geoSeries.LatitudeMemberPath = "Point.Y";
geoSeries.TriangleVertexMemberPath1 = "V1";
geoSeries.TriangleVertexMemberPath2 = "V2";
geoSeries.TriangleVertexMemberPath3 = "V3";
geoSeries.ItemsSource = itfConverter.TriangulationSource.Points;
geoSeries.TrianglesSource = itfConverter.TriangulationSource.Triangles;

関連コンテンツ

このトピックについては、以下のトピックも参照してください。

トピック 目的

このトピックでは、XamGeographicMap コントロールのマップ要素のレイアウトについての情報を提供します。

このトピックでは、データ ポイントの三角測量がどのように機能するか、また XamGeographicMap コントロールでデータ描画のパフォーマンスをいかに向上できるのかを説明します。

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

このトピックでは、XamGeographicMap コントロールでシリーズの GeographicScatterAreaSeries タイプを使用する方法を提供します。