Blazor 複数データ ソースのバインド
Ignite UI for Blazor マップでは、カスタム データ ソースを地理空間データとオーバーレイするために複数の地理的シリーズ オブジェクトを追加できます。たとえば、空港の地理的位置をプロットするための IgbGeographicSymbolSeries
、空港間のフライトをプロットするための IgbGeographicPolylineSeries
、主要な地理座標のグリッド線をプロットするための別の IgbGeographicPolylineSeries
などです。
Blazor 複数データ ソースのバインドの例
このトピックでは、以下の地理空間データをプロットする複数の地理的シリーズを表示するための手順を説明します。
IgbGeographicSymbolSeries
– 主要空港の場所を表示します。IgbGeographicPolylineSeries
– 空港間のフライトを表示します。IgbGeographicPolylineSeries
– 主座標のグリッド線を表示します。
目的のデータをプロットするために、地理的シリーズをこの組み合わせまたは他の組み合わせでも使用できます。
データ ソースの作成
Ignite UI for Blazor マップに表示するすべての地理的シリーズのデータソースを作成します。たとえば、WorldConnections スクリプトを使用できます。
@code {
public List<WorldCity> Airports;
public List<FlightInfo> Flights;
public List<CoordinateLine> Coordinates;
protected override void OnInitialized()
{
Airports = WorldConnections.GetAirports();
Flights = WorldConnections.GetFlights();
Coordinates = WorldConnections.GetGridlines();
}
}
フライトのオーバーレイ
主要空港間のフライト接続を持つ最初の IgbGeographicPolylineSeries
オブジェクトを作成し、Ignite UI for Blazor マップの Series コレクションに追加します。
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Flights" ShapeMemberPath="Points"
ShapeStroke="rgba(196, 14, 14, 0.05)" ShapeStrokeThickness="4" />
</IgbGeographicMap>
グリッド線のオーバーレイ
地理グリッド線を使用して2番目の IgbGeographicPolylineSeries
オブジェクトを作成し、それを XamGeographicMap の Series コレクションに追加します。
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Coordinates" ShapeMemberPath="Points"
ShapeStroke="Gray" ShapeStrokeThickness="1" />
</IgbGeographicMap>
空港のオーバーレイ
空港ポイントを使用して IgbGeographicSymbolSeries
オブジェクトを作成し、それを Ignite UI for Blazor 地理マップの Series コレクションに追加します。
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicSymbolSeries DataSource="Airports" LatitudeMemberPath="Lat"
LongitudeMemberPath="Lon" MarkerType="MarkerType.Circle"
MarkerBrush="#AAD3DF" MarkerOutline="Black" Thickness="1" />
</IgbGeographicMap>
まとめ
上記すべてのコード スニペットを以下のコード ブロックにまとめて、プロジェクトに簡単にコピーできます。
@using IgniteUI.Blazor.Controls
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Flights" ShapeMemberPath="Points"
ShapeStroke="rgba(196, 14, 14, 0.05)" ShapeStrokeThickness="4" />
<IgbGeographicPolylineSeries DataSource="Coordinates" ShapeMemberPath="Points"
ShapeStroke="Gray" ShapeStrokeThickness="1">
</IgbGeographicPolylineSeries>
<IgbGeographicSymbolSeries DataSource="Airports" LatitudeMemberPath="Lat"
LongitudeMemberPath="Lon" MarkerType="MarkerType.Circle"
MarkerBrush="#AAD3DF" MarkerOutline="Black" Thickness="1" />
</IgbGeographicMap>
@code {
private List<WorldCity> Airports;
private List<FlightInfo> Flights;
private List<CoordinateLine> Coordinates;
protected override void OnInitialized()
{
Airports = WorldConnections.GetAirports();
Flights = WorldConnections.GetFlights();
Coordinates = WorldConnections.GetGridlines();
}
}