Mapa geográfico Angular de alta densidad
En el componente de mapa Angular, puede utilizar IgxGeographicHighDensityScatterSeriesComponent
para vincular y mostrar datos dispersos que van desde cientos hasta millones de puntos de datos que requieren un tiempo de carga extremadamente corto.
Angular Geographic High Density Map Example
La demostración anterior muestra la serie IgxGeographicHighDensityScatterSeriesComponent
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
De manera similar a otros tipos de series de dispersión en el control de mapa, la serie IgxGeographicHighDensityScatterSeriesComponent
tiene la propiedad ItemsSource
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 |
---|---|---|
ItemsSource |
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 IgxGeographicHighDensityScatterSeriesComponent
<div className="sampleRoot" >
<igx-geographic-map #map
width="700px"
height="500px"
zoomable="true" >
</igx-geographic-map>
</div>
<ng-template let-series="series" let-item="item" #template>
<div>
<span>
{{item.n}}
</span>
</div>
</ng-template>
import { AfterViewInit, Component, TemplateRef, ViewChild } from "@angular/core";
import { IgxShapeDataSource } from 'igniteui-angular-core';
import { IgxGeographicHighDensityScatterSeriesComponent } from 'igniteui-angular-maps';
import { IgxGeographicMapComponent } from 'igniteui-angular-maps';
import { WorldUtils } from "../../utilities/WorldUtils";
@Component({
selector: "app-map-geographic-scatter-density-series",
styleUrls: ["./map-geographic-scatter-density-series.component.scss"],
templateUrl: ".map-geographic-scatter-density-series.component.html"
})
export class MapTypeScatterDensitySeriesComponent implements AfterViewInit {
@ViewChild ("map")
public map: IgxGeographicMapComponent;
@ViewChild("template")
public tooltip: TemplateRef<object>;
public geoLocations;
constructor() {
}
public ngAfterViewInit(): void {
// fetching geographic locations from public JSON folder
fetch("assets/Data/AusPlaces.json")
.then((response) => response.json())
.then((data) => this.onDataLoaded(data, ""));
}
public onDataLoaded(sds: IgxShapeDataSource, e: any) {
this.geoLocations = sds;
// creating HD series with loaded data
const geoSeries = new IgxGeographicHighDensityScatterSeriesComponent();
geoSeries.dataSource = sds;
geoSeries.longitudeMemberPath = "x";
geoSeries.latitudeMemberPath = "y";
geoSeries.heatMaximumColor = "Red";
geoSeries.heatMinimumColor = "Black";
geoSeries.heatMinimum = 0;
geoSeries.heatMaximum = 5;
geoSeries.pointExtent = 1;
geoSeries.tooltipTemplate = this.tooltip;
geoSeries.mouseOverEnabled = true;
// adding HD series to the geographic amp
this.map.series.add(geoSeries);
// zooming to bound of all geographic locations
const geoBounds = WorldUtils.getBounds(this.geoLocations);
geoBounds.top = 0;
geoBounds.height = -50;
this.map.zoomToGeographic(geoBounds);
}
}
API References
IgxGeographicHighDensityScatterSeriesComponent
IgxGeographicHighDensityScatterSeriesComponent
heatMaximumColor
heatMinimumColor
ItemsSource
latitudeMemberPath
longitudeMemberPath