このトピックでは、XamGeographicMap™ コントロールで GeographicTileSeries タイプのシリーズを使用する方法を提供します。
このトピックを理解するためには、以下のトピックを理解しておく必要があります。
このトピックは、以下のセクションで構成されます。
GeographicTileSeries は、 XamGeographicMap コントロールの BackgroundContent プロパティで定義されたベース タイル画像に対し追加のタイル画像をオーバーレイする XamGeographicMap コントロールに属する視覚マップ要素です。
GeographicTileSeries は、ポリライン関数がポリラインを描画するのでなくタイルのビジュアルをクリップする点を除いて GeographicPolylineSeries に似ています。
GeographicTileSeries シリーズの不透明度プロパティを設定すると、コントロールの複数の GeographicTileSeries シリーズを使用して複合/オーバーレイ タイル マップを作成できます。
以下のスクリーンショットでは、Open Source Map を BackgroundContent に設定し、Bing Map を世界の Shapefile にクリップされた TileImagery に設定した XamGeographicMap コントロールをプレビューします。
GeographicTileSeries シリーズの TileImagery プロパティを使用してシリーズの地理画像ソースを表示します。このプロパティは、XamGeographicMap コントロールの BackgroundContent を設定する方法と同じ方法を設定できます。 GeographicTileSeries は、Bing Maps のように同じタイプの地理的画像ソースをサポートします。詳細は、「 地理的画像を使用」トピックを参照してください。
XamGeographicMap コントロールの地理的シリーズの他のタイプと同様、 GeographicTileSeries には、データ バインディングのための ItemsSource プロパティがあります。このオプションのプロパティは、インターフェイスを実装するオブジェクトにバインドできます。さらに、このオブジェクト内の各項目は、< Point> または < IEnumerable< Point>> の構造を使用してシェイプの地理的位置 (緯度および経度) を保存するデータ列があります。後者は、シェイプ ファイルおよび ShapefileConverter クラスで使用される標準的なデータ構造です。このデータ列を ShapeMemberPath プロパティにマップします。 GeographicTileSeries は、XamGeographicMap コントロールでポリラインをクリップするために、このマップされたデータ列のポイントを使用します。
以下のスクリーン ショットは、以下の設定の結果として、 GeographicTileSeries オブジェクトの TileImagery および Opacity プロパティを持つ XamGeographicMap コントロールがどのように表示されるのかを示します。
BingMapsMapImagery クラスの ImageryStyle が BingMapsImageryStyle.Aerialとして設定
XAML の場合:
<ig:XamGeographicMap x:Name="GeoMap"
HorizontalZoomable="True"
VerticalZoomable="True">
<ig:XamGeographicMap.BackgroundContent>
<ig:OpenStreetMapImagery/>
</ig:XamGeographicMap.BackgroundContent>
<ig:XamGeographicMap.Series>
<ig:GeographicTileSeries Opacity="0.5">
<ig:GeographicTileSeries.TileImagery>
<ig:BingMapsMapImagery ApiKey="API_KEY" ImageryStyle="Aerial"
/>
</ig:GeographicTileSeries.TileImagery>
</ig:GeographicTileSeries>
</ig:XamGeographicMap.Series>
</ig:XamGeographicMap>
C# の場合:
var series = this.GeoMap.Series.OfType<GeographicTileSeries>().First();
series.Opacity = 0.5;
series.TileImagery = new BingMapsMapImagery { ImageryStyle = BingMapsImageryStyle.Aerial, ApiKey = API_KEY};
Visual Basic の場合:
Dim series As var = Me.GeoMap.Series.OfType.First
Series.Opacity = 0.5
series.TileImagery = New BingMapsMapImagery() {ImageryStyle=BingMapsImageryStyle.Aerial, ApiKey=API_KEY}
以下のスクリーンショットは、簡易な地理的四角形に設定された ItemsSource プロパティでどのように xamGeorgraphicMap コントロールを描画するかを示します。
C# の場合:
var customRegion = new List<List<Point>>();
var shapePoints = new List<Point>
{
new Point(-100, 60),
new Point(100, 60),
new Point(100, -30),
new Point(-100, -30)
};
customRegion.Add(shapePoints);
var series = this.GeoMap.Series.OfType<GeographicTileSeries>().First();
series.ShapeMemberPath = "";
series.ItemsSource = customRegion;
Visual Basic の場合:
Dim customRegion As var = New List(Of List)
Dim shapePoints As var = New List(Of Point)()
{New Point(-100, 60), New Point(100, 60), New Point(100, -30), NewPoint(-100, -30)}
customRegion.Add(shapePoints)
Dim series As var = Me.GeoMap.Series.OfType.First
series.ShapeMemberPath = ""
series.ItemsSource = customRegion
表の後のスクリーンショットは、ShapeFileConverter に設定された ItemsSource プロパティのある xamGeorgraphicMap コントロールが以下の設定でどのように描画するかを示します。
XAML の場合:
<ResourceDictionary>
<!-- ShapeFileProvider provides absolute path to a shape file -->
<providers:ShapeFileProvider x:Key="WorldContinentsProvider"
ShapeFileRelativePath="/world/world_continents.shp"
ShapeDatabaseRelativePath="world/world_continents.dbf"/>
<!-- ShapefileConverter loads shapes from shape files (SHP) and -->
<!-- stores them in the Points property as List<List<Point>> object type -->
<ig:ShapefileConverter x:Key="WorldContinentsShapefile"
ImportCompleted="OnShapefileImportCompleted"
CollectionChanged="OnShapefileCollectionChanged"
ShapefileSource="{Binding Path=ShapeFileAbsolutePath, Source={StaticResource WorldContinentsProvider}}"
DatabaseSource="{Binding Path=ShapeDatabaseAbsolutePath, Source={StaticResource WorldContinentsProvider}}" />
</ResourceDictionary>
<Grid x:Name="LayoutRoot">
<ig:XamGeographicMap x:Name="GeoMap"
Zoomable="True"
BackgroundContent="{x:Null}" >
<ig:XamGeographicMap.Series>
<ig:GeographicTileSeries ItemsSource="{StaticResource WorldContinentsShapefile}"
ShapeMemberPath="Points" >
<ig:GeographicTileSeries.TileImagery>
<ig:OpenStreetMapImagery />
</ig:GeographicTileSeries.TileImagery>
</ig:GeographicTileSeries>
</ig:XamGeographicMap.Series>
</ig:XamGeographicMap>
</Grid>
C# の場合:
series.ShapeMemberPath = "Points";
series.ItemsSource = this.Resources["WorldContinentsShapefile"] as ShapefileConverter;
Visual Basic の場合:
series.ShapeMemberPath = "Points"
series.ItemsSource = CType(Me.Resources("WorldContinentsShapefile"),ShapefileConverter)
このトピックの追加情報については、以下のトピックも合わせてご参照ください。