Web Components 지리적 데이터 모델 바인딩
The Ignite UI for Web Components map component is designed to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps. The ItemsSource property of geographic series is used for the purpose of binding to data models. This property can be bound an array of custom objects.
Web Components Binding Geographic Data Models Example
다음 표에는 각 지역 시리즈 유형에 필요한 데이터 구조가 요약되어 있습니다.
| 지리적 시리즈 | 속성 | 설명 |
|---|---|---|
IgcGeographicSymbolSeriesComponent |
longitudeMemberPath, latitudeMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates |
IgcGeographicHighDensityScatterSeriesComponent |
longitudeMemberPath, latitudeMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates |
IgcGeographicProportionalSymbolSeriesComponent |
longitudeMemberPath, latitudeMemberPath, radiusMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for size/radius of symbols |
IgcGeographicScatterAreaSeriesComponent |
longitudeMemberPath, latitudeMemberPath, colorMemberPath |
값의 삼각측량을 위한 2개의 숫자 경도 및 위도 좌표와 1개의 숫자 열의 이름을 지정합니다. |
IgcGeographicContourLineSeriesComponent |
longitudeMemberPath, latitudeMemberPath, valueMemberPath |
값의 삼각측량을 위한 2개의 숫자 경도 및 위도 좌표와 1개의 숫자 열의 이름을 지정합니다. |
IgcGeographicShapeSeriesComponent |
shapeMemberPath |
데이터 열의 이름을 지정합니다.ItemsSource 모양의 지리적 지점을 포함하는 항목입니다. 이 속성은 x 및 y 속성이 있는 객체 배열의 배열에 매핑되어야 합니다. |
IgcGeographicPolylineSeriesComponent |
shapeMemberPath |
데이터 열의 이름을 지정합니다.ItemsSource 선의 지리적 좌표를 포함하는 항목입니다. 이 속성은 x 및 y 속성이 있는 객체 배열의 배열에 매핑되어야 합니다. |
Code Snippet
다음 코드는 다음 파일을 어떻게 결합하는지 보여줍니다.IgcGeographicSymbolSeriesComponent 전 세계 일부 도시의 지리적 위치를 경도와 위도 좌표로 저장한 맞춤형 데이터 모델로 변환합니다. 또한, 우리는IgcGeographicPolylineSeriesComponent이 위치 간 최단 지리적 경로를 다음과 같이 그려 월드유틸리티
<igc-geographic-map id="geoMap" width="100%" height="100%">
</igc-geographic-map>
public flights: any[];
constructor() {
super();
const cityDAL = { lat: 32.763, lon: -96.663, country: "US", name: "Dallas" };
const citySYD = { lat: -33.889, lon: 151.028, country: "Australia", name: "Sydney" };
const cityNZL = { lat: -36.848, lon: 174.763, country: "New Zealand", name: "Auckland" };
const cityQTR = { lat: 25.285, lon: 51.531, country: "Qatar", name: "Doha" };
const cityPAN = { lat: 8.949, lon: -79.400, country: "Panama", name: "Panama" };
const cityCHL = { lat: -33.475, lon: -70.647, country: "Chile", name: "Santiago" };
const cityJAP = { lat: 35.683, lon: 139.809, country: "Japan", name: "Tokyo" };
const cityALT = { lat: 33.795, lon: -84.349, country: "US", name: "Atlanta" };
const cityJOH = { lat: -26.178, lon: 28.004, country: "South Africa", name: "Johannesburg" };
const cityNYC = { lat: 40.750, lon: -74.0999, country: "US", name: "New York" };
const citySNG = { lat: 1.229, lon: 104.177, country: "Singapore", name: "Singapore" };
const cityMOS = { lat: 55.750, lon: 37.700, country: "Russia", name: "Moscow" };
const cityROM = { lat: 41.880, lon: 12.520, country: "Italy", name: "Roma" };
const cityLAX = { lat: 34.000, lon: -118.25, country: "US", name: "Los Angeles" };
this.flights = [
{ origin: cityDAL, dest: citySNG, color: "Green" },
{ origin: cityMOS, dest: cityNZL, color: "Red" },
{ origin: cityCHL, dest: cityJAP, color: "Blue" },
{ origin: cityPAN, dest: cityROM, color: "Orange" },
{ origin: cityALT, dest: cityJOH, color: "Black" },
{ origin: cityNYC, dest: cityQTR, color: "Purple" },
{ origin: cityLAX, dest: citySYD, color: "Gray" },
];
}
connectedCallback() {
this.geoMap = document.getElementById("geoMap") as IgcGeographicMapComponent;
for (const flight of this.flights) {
this.createPolylineSeries(flight);
this.createSymbolSeries(flight);
}
}
createSymbolSeries(flight: any)
{
const geoLocations = [flight.origin, flight.dest ];
const symbolSeries = new IgcGeographicSymbolSeriesComponent();
symbolSeries.dataSource = geoLocations;
symbolSeries.markerType = MarkerType.Circle;
symbolSeries.latitudeMemberPath = "lat";
symbolSeries.longitudeMemberPath = "lon";
symbolSeries.markerBrush = "White";
symbolSeries.markerOutline = flight.color;
symbolSeries.thickness = 1;
this.geoMap.series.add(symbolSeries);
}
createPolylineSeries(flight: any)
{
const geoPath = WorldUtils.calcPaths(flight.origin, flight.dest);
const geoDistance = WorldUtils.calcDistance(flight.origin, flight.dest);
const geoRoutes = [
{ points: geoPath ,
origin: flight.origin,
dest: flight.dest,
distance: geoDistance,
time: geoDistance / 850,
}];
const lineSeries = new IgcGeographicPolylineSeriesComponent();
lineSeries.dataSource = geoRoutes;
lineSeries.shapeMemberPath = "points";
lineSeries.shapeStrokeThickness = 9;
lineSeries.shapeOpacity = 0.5;
lineSeries.shapeStroke = flight.color;
this.geoMap.series.add(lineSeries);
}
API References
colorMemberPathIgcGeographicContourLineSeriesComponentIgcGeographicHighDensityScatterSeriesComponentIgcGeographicPolylineSeriesComponentIgcGeographicProportionalSymbolSeriesComponentIgcGeographicScatterAreaSeriesComponentIgcGeographicSymbolSeriesComponentItemsSourcelatitudeMemberPathlongitudeMemberPathradiusMemberPathvalueMemberPath