Geographic Shape 시리즈의 Angular 모양 스타일링
이 주제에서는 Angular IgxGeographicMapComponent
의 IgxGeographicShapeSeriesComponent
에 사용자 지정 스타일을 적용하는 방법을 설명합니다.
Angular Shape Styling on Geographic Shape Series Example
Like this sample? Get access to our complete Ignite UI for Angular toolkit and start building your own apps in minutes. Download it for free.
Required Imports
모양 스타일을 지정하려면 다음 클래스를 가져와야 합니다.
import { IgxGeographicShapeSeries } from 'igniteui-angular-maps';
import { IgxStyleShapeEventArgs } from 'igniteui-angular-charts';
import { IgxShapeDataSource } from 'igniteui-angular-core';
import { IgxShapefileRecord } from 'igniteui-angular-core';
ts
다음 코드 예제에서는 모양 스타일을 지정하는 네 가지 방법을 제공하는 모양 스타일링 유틸리티 파일을 사용하고 있습니다.
Shape Random Styling
이 코드 조각은 세계 국가에 채우기 색상을 무작위로 할당하는 ShapeRandomStyling 인스턴스를 생성합니다.
import { ShapeRandomStyling } from './ShapeStylingUtility';
// ...
this.shapeRandomStyling = new ShapeRandomStyling();
this.shapeRandomStyling.shapeStrokeColors = ['Black'];
this.shapeRandomStyling.shapeFillColors = ['#8C23D1', '#0E9759', '#B4D336', '#F2A464', '#D74545', 'DodgerBlue'];
this.geoSeries = new IgxGeographicShapeSeries();
this.geoSeries.styleShape = this.onStylingShape;
// ...
public onStylingShape(s: IgxGeographicShapeSeries, args: IgxStyleShapeEventArgs) {
const itemRecord = args.item as IgxShapefileRecord;
const shapeStyle = this.ShapeRandomStyling.getStyle(itemRecord);
args.shapeOpacity = shapeStyle.opacity;
args.shapeFill = shapeStyle.fill;
args.shapeStroke = shapeStyle.stroke;
args.shapeStrokeThickness = shapeStyle.strokeThickness;
}
ts
Shape Scale Styling
이 코드 조각은 로그 척도로 조정된 인구를 기준으로 국가 모양에 채우기 색상을 할당하는 ShapeScaleStyling 인스턴스를 생성합니다.
import { ShapeScaleStyling } from './ShapeStylingUtility';
// ...
this.shapeScaleStyling = new ShapeScaleStyling();
this.shapeScaleStyling.itemMinimumValue = 5000;
this.shapeScaleStyling.itemMaximumValue = 2000000000; // 2 Billions
this.shapeScaleStyling.itemMemberPath = 'Population';
this.shapeScaleStyling.isLogarithmic = true;
this.shapeScaleStyling.defaultFill = 'Gray';
this.shapeScaleStyling.shapeStrokeColors = ['Black'];
this.shapeScaleStyling.shapeFillColors = ['DodgerBlue', 'yellow', '#c2f542', '#e8c902', '#e8b602', '#e87902', 'brown'];
this.geoSeries = new IgxGeographicShapeSeries();
this.geoSeries.styleShape = this.onStylingShape;
// ...
public onStylingShape(s: IgxGeographicShapeSeries, args: IgxStyleShapeEventArgs) {
const itemRecord = args.item as IgxShapefileRecord;
const shapeStyle = this.shapeScaleStyling.getStyle(itemRecord);
args.shapeOpacity = shapeStyle.opacity;
args.shapeFill = shapeStyle.fill;
args.shapeStroke = shapeStyle.stroke;
args.shapeStrokeThickness = shapeStyle.strokeThickness;
}
ts
Shape Range Styling
이 코드 조각은 인구 범위에 따라 국가 모양에 색상을 할당하는 ShapeRangeStyling 인스턴스를 생성합니다.
import { ShapeRangeStyling } from './ShapeStylingUtility';
// ...
this.shapeRangeStyling = new ShapeRangeStyling();
this.shapeRangeStyling.defaultFill = 'Gray';
this.shapeRangeStyling.itemMemberPath = 'Population';
this.shapeRangeStyling.ranges = [
{ fill: 'yellow', minimum: 5000, maximum: 10000000, }, // 5 K - 10 M
{ fill: 'orange', minimum: 10000000, maximum: 100000000, }, // 10 M - 100 M
{ fill: 'red', minimum: 100000000, maximum: 500000000, }, // 100 M - 500 M
{ fill: 'brown', minimum: 500000000, maximum: 2000000000, }, // 500 M - 2 B
];
this.geoSeries = new IgxGeographicShapeSeries();
this.geoSeries.styleShape = this.onStylingShape;
// ...
public onStylingShape(s: IgxGeographicShapeSeries, args: IgxStyleShapeEventArgs) {
const itemRecord = args.item as IgxShapefileRecord;
const shapeStyle = this.shapeRangeStyling.getStyle(itemRecord);
args.shapeOpacity = shapeStyle.opacity;
args.shapeFill = shapeStyle.fill;
args.shapeStroke = shapeStyle.stroke;
args.shapeStrokeThickness = shapeStyle.strokeThickness;
}
ts
Shape Comparison Styling
이 코드 조각은 세계의 지역 이름을 기반으로 국가에 색상을 할당하는 ShapeComparisonStyling 인스턴스를 생성합니다.
import { ShapeComparisonStyling } from './ShapeStylingUtility';
this.shapeComparisonStyling = new ShapeComparisonStyling();
this.shapeComparisonStyling.defaultFill = 'Gray';
this.shapeComparisonStyling.itemMemberPath = 'Region';
this.shapeComparisonStyling.itemMappings = [
{ fill: 'Red', itemValue: 'Eastern Europe' },
{ fill: 'Red', itemValue: 'Central Asia' },
{ fill: 'Red', itemValue: 'Eastern Asia' },
{ fill: 'Orange', itemValue: 'Southern Asia' },
{ fill: 'Orange', itemValue: 'Middle East' },
{ fill: 'Orange', itemValue: 'Northern Africa' },
{ fill: 'Yellow', itemValue: 'Eastern Africa' },
{ fill: 'Yellow', itemValue: 'Western Africa' },
{ fill: 'Yellow', itemValue: 'Middle Africa' },
{ fill: 'Yellow', itemValue: 'Southern Africa' },
{ fill: 'DodgerBlue', itemValue: 'Central America' },
{ fill: 'DodgerBlue', itemValue: 'Northern America' },
{ fill: 'DodgerBlue', itemValue: 'Western Europe' },
{ fill: 'DodgerBlue', itemValue: 'Southern Europe' },
{ fill: 'DodgerBlue', itemValue: 'Northern Europe' },
{ fill: '#22c928', itemValue: 'South America' },
{ fill: '#b64fff', itemValue: 'Melanesia' },
{ fill: '#b64fff', itemValue: 'Micronesia' },
{ fill: '#b64fff', itemValue: 'Polynesia' },
{ fill: '#b64fff', itemValue: 'Australia' },
];
this.geoSeries = new IgxGeographicShapeSeries();
this.geoSeries.styleShape = this.onStylingShape;
// ...
public onStylingShape(s: IgxGeographicShapeSeries, args: IgxStyleShapeEventArgs) {
const itemRecord = args.item as IgxShapefileRecord;
const shapeStyle = this.shapeComparisonStyling.getStyle(itemRecord);
args.shapeOpacity = shapeStyle.opacity;
args.shapeFill = shapeStyle.fill;
args.shapeStroke = shapeStyle.stroke;
args.shapeStrokeThickness = shapeStyle.strokeThickness;
}
ts
API References
에서 페이지 보기
GitHub