このトピックは、 XamGeographicMap™ コントロールで複数の地理的シリーズを表示する方法を提供します。
以下の表に、このトピックを理解するための前提条件として求められるトピックをリストします。
XamGeographicMap コントロールの Series プロパティは、地理的シリーズの無制限の数の描画をサポートするために使用されます。このプロパティは、地理的シリーズ オブジェクトのコレクションで、任意のタイプの地理的シリーズをそれに追加できます。たとえば、都市などの地理的位置をプロットするために GeographicSymbolSeries を追加でき、またこれらの地理的位置の間の接続 (たとえば、道路) をプロットするために GeographicPolylineSeries を追加できます。
以下は、複数の地理的シリーズがある XamGeographicMap コントロールのプレビューです。
このトピックは、複数の地理的シリーズを XamGeographicMap コントロールに表示する方法を順に説明します。 Series プロパティにすべての地理的シリーズが追加され、 ShapefileConverter クラスを使用して、シェープ ファイルから読み込まれた以下の地理的データをプロットします。
GeographicShapeSeries - 世界の国々を表示します。
GeographicSymbolSeries - 主要都市の場所を表示します。
GeographicPolylineSeries - 主要都市間の道路を表示します。
希望のデータをプロットするために、これまたは他の組み合わせで地理的シリーズを使用できます。また、シェープ ファイルがアプリケーション用に十分な地理的コンテンツを提供していれば、マップ背景コンテンツから地理的画像を非表示にしたい場合があります。この詳細は、 「マップ背景コンテンツで地理的画像を非表示にする」のトピックを参照してください。
以下はプロセスの概念的概要です。
ShapefileConverter オブジェクトをリソースとして追加します。
XamGeographicMap コントロールを追加します。
GeographicShapeSeries オブジェクトを追加します。
GeographicPolylineSeries オブジェクトを追加します。
GeographicSymbolSeries オブジェクトを追加します。
結果を確認します。
以下は、複数の地理的シリーズを XamGeographicMap コントロールに表示する手順です。
利用者のページのリソース セクションで、XamGeographicMap コントロールに表示したい各シェープ ファイルに ShapefileConverter を追加します。
XAML の場合:
<ig:ShapefileConverter x:Key="countriesShapeSource"
ShapefileSource="ShapeFiles/world_countries.shp"
DatabaseSource="ShapeFiles/world_countries.dbf" >
</ig:ShapefileConverter>
<ig:ShapefileConverter x:Key="roadsShapeSource"
ShapefileSource="ShapeFiles/north_america_primary_roads.shp"
DatabaseSource="ShapeFiles/north_america_primary_roads.dbf" >
</ig:ShapefileConverter>
<ig:ShapefileConverter x:Key="citiesLocationSource"
ShapefileSource="ShapeFiles/world_cities.shp"
DatabaseSource="ShapeFiles/world_cities.dbf" >
</ig:ShapefileConverter>
Visual Basic の場合:
Dim countriesShapeSource = New ShapefileConverter()
countriesShapeSource.ShapefileSource = "ShapeFiles/world_countries.shp"
countriesShapeSource.DatabaseSource = "ShapeFiles/world_countries.dbf"
Dim roadsShapeSource = New ShapefileConverter()
roadsShapeSource.ShapefileSource = "ShapeFiles/north_america_primary_roads.shp"
roadsShapeSource.DatabaseSource = "ShapeFiles/north_america_primary_roads.dbf"
Dim citiesLocationSource = New ShapefileConverter()
citiesLocationSource.ShapefileSource = "ShapeFiles/world_cities.shp"
citiesLocationSource.DatabaseSource = "ShapeFiles/world_cities.dbf"
C# の場合:
var countriesShapeSource = new ShapefileConverter();
countriesShapeSource.ShapefileSource="ShapeFiles/world_countries.shp";
countriesShapeSource.DatabaseSource="ShapeFiles/world_countries.dbf";
var roadsShapeSource = new ShapefileConverter();
roadsShapeSource.ShapefileSource="ShapeFiles/north_america_primary_roads.shp";
roadsShapeSource.DatabaseSource="ShapeFiles/north_america_primary_roads.dbf";
var citiesLocationSource = new ShapefileConverter();
citiesLocationSource.ShapefileSource="ShapeFiles/world_cities.shp";
citiesLocationSource.DatabaseSource="ShapeFiles/world_cities.dbf";
null 値に設定された BackgroundContent プロパティで XamGeographicMap コントロールを追加します。
XAML の場合:
<ig:XamGeographicMap x:Name="GeoMap" BackgroundContent="{x:Null}" >
<ig:XamGeographicMap.Series>
<!-- TODO: ここに GeographicShapeSeries を追加 -->
<!-- TODO: ここに GeographicPolylineSeries を追加 -->
<!-- TODO: ここに GeographicSymbolSeries を追加 -->
</ig:XamGeographicMap.Series>
</ig:XamGeographicMap>
Visual Basic の場合:
Dim GeoMap = New XamGeographicMap()
GeoMap.BackgroundContent = Nothing
‘ TODO: ここに GeographicShapeSeries を追加
‘ TODO: ここに GeographicPolylineSeries を追加
‘ TODO: ここに GeographicSymbolSeries を追加
Me.Children.Add(GeoMap)
C# の場合:
var GeoMap = new XamGeographicMap();
GeoMap.BackgroundContent = null;
// TODO: ここに GeographicShapeSeries を追加
// TODO: ここに GeographicPolylineSeries を追加
// TODO: ここに GeographicSymbolSeries を追加
this.Children.Add(GeoMap);
XamGeographicMap コントロールの Series コレクションで、世界の国々の図形を表示するために GeographicShapeSeries オブジェクトを追加します。
XAML の場合:
<ig:GeographicShapeSeries ItemsSource="{StaticResource countriesShapeSource}"
ShapeMemberPath="Points">
</ig:GeographicShapeSeries>
Visual Basic の場合:
Dim geoShapeSeries = New GeographicShapeSeries()
geoShapeSeries.ItemsSource = countriesShapeSource
geoShapeSeries.ShapeMemberPath = "Points"
Me.GeoMap.Series.Add(geoShapeSeries)
C# の場合:
var geoShapeSeries = new GeographicShapeSeries();
geoShapeSeries.ItemsSource = shapefileConverter;
geoShapeSeries.ShapeMemberPath = "Points";
this.GeoMap.Series.Add(geoShapeSeries);
XamGeographicMap コントロールの Series コレクションに、主要都市間の道路を表示するために GeographicPolylineSeries オブジェクトを追加します。
XAML の場合:
<ig:GeographicPolylineSeries ItemsSource="{StaticResource roadsShapeSource}"
ShapeMemberPath="Points">
</ig:GeographicPolylineSeries>
Visual Basic の場合:
Dim geoPolylineSeries = New GeographicPolylineSeries()
geoPolylineSeries.ItemsSource = roadsShapeSource
geoPolylineSeries.ShapeMemberPath = "Points"
Me.GeoMap.Series.Add(geoPolylineSeries)
C# の場合:
var geoPolylineSeries = new GeographicPolylineSeries();
geoPolylineSeries.ItemsSource = shapefileConverter;
geoPolylineSeries.ShapeMemberPath = "Points";
this.GeoMap.Series.Add(geoPolylineSeries);
XamGeographicMap コントロールの Series コレクションで、主要都市の位置を表示するために GeographicSymbolSeries オブジェクトを追加します。
XAML の場合:
<ig:GeographicSymbolSeries ItemsSource="{StaticResource citiesLocationSource}"
LongitudeMemberPath="Points[0][0].X"
LatitudeMemberPath="Points[0][0].Y">
</ig:GeographicSymbolSeries>
Visual Basic の場合:
Dim geoSymbolSeries = New GeographicSymbolSeries()
geoSymbolSeries.ItemsSource = citiesLocationSource
geoSymbolSeries.LongitudeMemberPath = "Points[0][0].X"
geoSymbolSeries.LatitudeMemberPath = "Points[0][0].Y"
Me.GeoMap.Series.Add(geoSymbolSeries)
C# の場合:
var geoSymbolSeries = new GeographicSymbolSeries();
geoSymbolSeries.ItemsSource = citiesLocationSource;
geoSymbolSeries.LongitudeMemberPath = "Points[0][0].X";
geoSymbolSeries.LatitudeMemberPath = "Points[0][0].Y";
this.GeoMap.Series.Add(geoSymbolSeries);
結果を確認するために、プロジェクトをビルドおよび実行します。手順を正しく実装した場合、XamGeographicMap は上記のプレビュー セクションで示したように表示されるはずです。
以下のトピックでは、このトピックに関連する情報を提供しています。