Mapa geográfico de alta densidad Blazor
En el componente de mapa Blazor, puede utilizar IgbGeographicHighDensityScatterSeries
para vincular y mostrar datos dispersos que van desde cientos hasta millones de puntos de datos que requieren un tiempo de carga extremadamente corto.
Blazor Geographic High Density Map Example
La demostración anterior muestra la serie IgbGeographicHighDensityScatterSeries
en el componente de mapa vinculada a cientos o incluso miles de puntos de datos que representan la densidad de población de Australia. El área de trazado del mapa con puntos de datos más densamente poblados se representa como coalescencias de píxeles rojos y puntos de datos distribuidos libremente mediante píxeles azules discretos.
Debido a que hay tantos puntos de datos, la serie muestra los datos dispersos como puntos pequeños en lugar de marcadores de tamaño completo, y muestra las áreas con la mayor cantidad de datos utilizando una mayor densidad de color que representa un grupo de puntos de datos.
Data Requirements
Al igual que otros tipos de series de dispersión en el control de mapa, la serie IgbGeographicHighDensityScatterSeries
tiene la propiedad DataSource
que se puede vincular a una matriz de objetos. Además, cada elemento de datos en el origen de elementos debe tener dos columnas de datos que almacenen coordenadas geográficas de longitud y latitud y utilice las propiedades LongitudeMemberPath
y LatitudeMemberPath
para asignar estas columnas de datos.
Data Binding
La siguiente tabla resume las propiedades de la serie GeographicHighDensityScatterSeries utilizadas para el enlace de datos.
Propiedad | Tipo | Descripción |
---|---|---|
DataSource |
cualquier | Obtiene o establece el origen de los elementos. |
LongitudeMemberPath |
cadena | Utiliza la propiedad ItemsSource para determinar la ubicación de los valores de longitud en los elementos asignados. |
LatitudeMemberPath |
cadena | Utiliza la propiedad ItemsSource para determinar la ubicación de los valores de latitud en los elementos asignados. |
Heat Color Scale
La Escala de colores térmicos, una característica opcional, determina el patrón de colores dentro de la serie. La siguiente tabla resume las propiedades utilizadas para determinar la escala de colores.
Propiedad | Tipo | Descripción |
---|---|---|
HeatMinimum |
Doble | Define el valor doble que representa el extremo mínimo de la escala de colores. |
HeatMaximum |
Doble | Define el valor doble que representa el extremo máximo de la escala de colores. |
HeatMinimumColor |
Color | Define el color de densidad de puntos utilizado en el extremo inferior de la escala de colores. |
HeatMaximumColor |
Color | Define el color de densidad de puntos utilizado en el extremo superior de la escala de colores. |
Code Example
El siguiente código demuestra cómo configurar las propiedades HeatMinimumColor
y HeatMaximumColor
de IgbGeographicHighDensityScatterSeries
@using IgniteUI.Blazor.Controls
@inject HttpClient Http
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicHighDensityScatterSeries DataSource="DataSource"
LongitudeMemberPath="Lon"
LatitudeMemberPath="Lat"
HeatMaximumColor="Red"
HeatMinimumColor="10"
HeatMaximum="5"
HeatMinimum="0"
PointExtent="1"
MouseOverEnabled="true" />
</IgbGeographicMap>
@code {
private List<AusPlaceCsv> DataSource;
private Rect GeoBounds;
protected override async Task OnInitializedAsync()
{
string url = "https://static.infragistics.com/xplatform/data/AusPlaces.csv";
string csv = await Http.GetStringAsync(url);
string[] csvLines = csv.Split(Environment.NewLine);
List<AusPlaceCsv> dataItems = new List<AusPlaceCsv>();
for (int i = 1; i < csvLines.Length - 1; i++)
{
string[] columns = csvLines[i].Split(",");
AusPlaceCsv location = new AusPlaceCsv()
{
Lat = double.Parse(columns[2]),
Lon = double.Parse(columns[1]),
Name = columns[0],
};
dataItems.Add(location);
}
this.DataSource = dataItems;
await Task.Delay(1);
}
public class AusPlaceCsv
{
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; }
}
}