Blazor シェープ ファイルを地理的データにバインディング

    Ignite UI for Blazor Map コンポーネントの IgbShapeDataSource クラスは、形状ファイルから地理空間データ (ポイント/位置、ポリライン、ポリゴン) を読み込み、それを IgbShapefileRecord オブジェクトのコレクションに変換します。

    Blazor シェープ ファイルを地理的データにバインディングの例

    以下の表は、シェイプ ファイルを読み込むための IgbShapeDataSource クラスのプロパティを説明します。

    プロパティ 概要
    ShapefileSource string シェイプ ファイル(.shp) から読み込まれた 1 つの地理空間シェープにすべてのポイントが含まれます。
    DatabaseSource string たとえば、シェープファイルで日本は、以下でポイント オブジェクト リストのリストとして表されます。

    両方のソース プロパティが null 以外の値に設定されると、IgbShapeDataSource オブジェクトの ImportAsync メソッドが起動し、シェイプ ファイルを取得して読み込み、最終的に変換を実行します。この操作が完了すると、IgbShapeDataSourceIgbShapefileRecord オブジェクトで生成され、シェイプ ファイルから地理空間データを読み込んで変換するプロセスが完了したことを通知するために、ImportCompleted イベントが起動されます。

    シェープファイルの読み込み

    以下のコードは、世界の主要都市の場所を含むシェイプ ファイルを読み込むための IgbShapeDataSource オブジェクトのインスタンスを作成します。また、xamGeographicMap コントロールにデータをバインドするための前提条件として ImportCompleted イベントを処理する方法も示します。

    シェープファイルをバインド

    Map コンポーネントでは、Geographic Series は、シェイプ ファイルから読み込まれる地理的データを表示するために使用されます。すべてのタイプの地理的シリーズには、オブジェクトの配列にバインドできる DataSource プロパティがあります。IgbShapeDataSourceIgbShapefileRecord オブジェクトのリストを含むため、このような配列の例です。

    IgbShapefileRecord クラスは、以下の表にリストする地理的データを保存するためのプロパティを提供します。

    プロパティ 概要
    Points シェイプ ファイル(.shp) から読み込まれた 1 つの地理空間シェープにすべてのポイントが含まれます。たとえば、シェープファイルで日本は、以下でポイント オブジェクト リストのリストとして表されます。
    • ポイントの最初のリストは北海道のシェイプを表します。
    • ポイントの 2 番目のリストは本州のシェイプを表します。
    • ポイントの 3 番目のリストは九州のシェイプを表します。
    • ポイントの 4 番目のリストは四国のシェイプを表します。
    | | `Fields` |列名でキーが付けられたシェイプ データベース ファイル (.dbf) からのデータ行を含みます。たとえば、日本についてのデータには、人口、地域、首都名などが含まれます。|

    このデータ構造は、適切なデータ列がマップされている限り、ほとんどの地理的シリーズでの使用に適しています。

    コード スニペット

    このコード例は、シェープ ファイルが IgbShapeDataSource を使用して読み込まれたことを前提としています。 以下のコードは、マップ コンポーネント内の IgbGeographicPolylineSeriesIgbShapeDataSource にバインドし、すべての IgbShapefileRecord オブジェクトの Points プロパティをマップします。

    @using IgniteUI.Blazor.Controls
    
    
    <IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
        <IgbGeographicPolylineSeries ShapefileDataSource="@DataSource"
            ShapeFilterResolution="0.0"
            ShapeStrokeThickness="3"
            ShapeStroke="rgb(82, 82, 82, 0.4)"/>
    </IgbGeographicMap>
    
    @code {
    
        private ShapeDataSource DataSource;
    
        protected override void OnInitialized()
        {
            this.DataSource = new IgbShapeDataSource()
            {
                ShapefileSource = "https://static.infragistics.com/xplatform/shapes/WorldCableRoutes.shp",
                DatabaseSource = "https://static.infragistics.com/xplatform/shapes/WorldCableRoutes.dbf"
            };
        }
    }
    

    API リファレンス