このトピックでは、 UltraGeographicMap™ コントロールでシリーズの GeographicContourLineSeries タイプを使用する方法を提供します。
以下の表は、このトピックを理解するための前提条件として必要なトピックを示しています。
UltraGeographicMap コントロールで、 GeographicContourLineSeries は、各ポイントに数値が割り当てられた緯度および経度データの三角測量に基づいて、地理的コンテキストで色が付けられた等高線を描画するビジュアル マップ要素です。
このタイプの地理的シリーズは、温度、気圧、降水量、人口分布、地理的データなど地理的位置によって定義された散布データの描画に役に立ちます。 GeographicContourLineSeries は、塗りつぶしスケールと地理散布エリア シリーズを使用して色がつけられた等高線でデータを表し、カラー スケールを使用して補間された面でデータを表す点を除いて GeographicScatterAreaSeries と多くの点で同じように機能します。
以下は、アメリカの降水量をプロットする GeographicContourLineSeries のある UltraGeographicMap コントロールのプレビューです。濃い青の等高線は降水量が少ないことを示し、明るい赤の等高線は降水量が多いことを示します。
UltraGeographicMap コントロールの地理的シリーズの他のタイプと同様、 GeographicContourLineSeries には、データ バインディングのための DataSource プロパティがあります。このプロパティは、 IEnumerable インターフェイスを実装するオブジェクトにバインドできます。
さらに、項目ソースの各項目にはデータ列が 3 つあり、2 つは地理的位置 (経度および緯度座標) を保管し、1 つのデータ列は地理的位置に関連した値を保管します。これらのデータ列は、地理的シリーズの LongitudeMemberPath、 LatitudeMemberPath および ValueMemberPath プロパティによって識別されます。
GeographicContourLineSeries は、三角測量が TrianglesSource プロパティに設定されていない場合、 DataSource の項目で定義済みのデータ三角測量を自動的に実行します。ただし、三角測量の計算は非常に時間のかかるプロセスであるため、このプロパティのために TriangulationSource を指定すると、ランタイム パフォーマンスがよくなります。特にデータ項目が多数ある場合には顕著です。
GeographicContourLineSeries の FillScale を使用して地理的シリーズの等高線の塗りつぶしブラシを解決します。
提供された ValueBrushScale クラスはユーザーのほとんどのカラリング ニーズを満たすはずですが、カスタムのカラリング ロジックのアプリケーションが ValueBrushScale クラスを継承します。
以下の表は GeographicContourLineSeries の面のカラリングに影響する CustomPaletteColorScale プロパティをリストします。
以下のコードは、 GeographicContourLineSeries をアメリカの降水量を表す三角測量データにバインドする方法を示します。
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.DataSource = 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.DataSource = itfConverter.TriangulationSource.Points;
geoSeries.TrianglesSource = itfConverter.TriangulationSource.Triangles;
このトピックについては、以下のトピックも参照してください。