Blazor CSV ファイルを地理的な場所にバインド
Ignite UI for Blazor Map コンポーネントを使用すると、さまざまな種類のファイルからロードされた地理データをプロットできます。たとえば、カンマ区切り値 (CSV) ファイルから地理的な場所を読み込むことができます。
Blazor CSV ファイルを地理的な場所にバインドの例
データ例
CSV ファイルからのデータの例:
City,Lat,Lon,State,Code,County,Density,Population
New York,40.7856,-74.0093,New Jersey,NJ,Hudson,21057,54227
Dundee,42.5236,-76.9775,New York,NY,Yates,579,1650
コード スニペット
以下のコードは、マップコンポーネント内の IgbGeographicHighDensityScatterSeries
を、ロードされた CSV ファイルから作成された地理的位置を含むオブジェクトの配列にバインドします。
@using IgniteUI.Blazor.Controls
@inject HttpClient Http
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicHighDensityScatterSeries DataSource="DataSource"
LatitudeMemberPath="Lat"
LongitudeMemberPath="Lon"
HeatMaximumColor="Red"
HeatMinimumColor="Black"
HeatMinimum="0"
HeatMaximum="5"
PointExtent="1"
MouseOverEnabled="true" />
</IgbGeographicMap>
@code {
private List<WorldPlaceCsv> DataSource;
protected override async Task OnInitializedAsync()
{
string url = "https://static.infragistics.com/xplatform/data/UsaCitiesPopulation.csv";
string csv = await Http.GetStringAsync(url);
string[] csvLines = csv.Split(Environment.NewLine);
List<WorldPlaceCsv> dataItems = new List<WorldPlaceCsv>();
for (int i = 1; i < csvLines.Length - 1; i++)
{
string[] columns = csvLines[i].Split(",");
WorldPlaceCsv location = new WorldPlaceCsv() {
Lat= double.Parse(columns[1]),
Lon= double.Parse(columns[2]),
Name= columns[0],
Pop= double.Parse(columns[3])
};
dataItems.Add(location);
}
this.DataSource = dataItems;
await Task.Delay(1);
}
public class WorldPlaceCsv {
public string Name { get; set; }
public double Lat { get; set; }
public double Lon { get; set; }
public double Pop { get; set; }
public string Country { get; set; }
public bool Cap { get; set; }
}
}