Blazor 複数データ ソースのバインド

    Ignite UI for Blazor マップでは、カスタム データ ソースを地理空間データとオーバーレイするために複数の地理的シリーズ オブジェクトを追加できます。たとえば、空港の地理的位置をプロットするための IgbGeographicSymbolSeries、空港間のフライトをプロットするための IgbGeographicPolylineSeries、主要な地理座標のグリッド線をプロットするための別の IgbGeographicPolylineSeries などです。

    Blazor 複数データ ソースのバインドの例

    このトピックでは、以下の地理空間データをプロットする複数の地理的シリーズを表示するための手順を説明します。

    目的のデータをプロットするために、地理的シリーズをこの組み合わせまたは他の組み合わせでも使用できます。

    データ ソースの作成

    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();
        }
    }
    

    API リファレンス