Browse Source

feat/ 제주공항 장애물제한표면 적용

master
junh_eee(이준희) 3 weeks ago
parent
commit
00068f6289
  1. 75
      src/components/map/mapbox/MapBoxMap.js
  2. 5
      src/utility/MapUtils.js
  3. 7
      src/views/control/setting/ControlSetting.js

75
src/components/map/mapbox/MapBoxMap.js

@ -30,14 +30,18 @@ import FeatureAirZone from './feature/FeatureAirZone';
// v월드 공역 // v월드 공역
import { airArea } from '../geojson/_AirArea'; import { airArea } from '../geojson/_AirArea';
import geoJson from '../../map/geojson/airArea.json';
import gimPo from '../../map/geojson/gimpoAirportAirArea.json';
import ulsan from '../../map/geojson/ulsanAirArea.json';
// 김포 격자 공역 // 김포 격자 공역
import gimPoGrid from '../../../components/map/geojson/airportAirArea.json'; import gimPoGrid from '../../../components/map/geojson/airportAirArea.json';
// 김포 선형 공역
// 3d 공역
import gimPo from '../../map/geojson/gimpoAirportAirArea.json';
import ulsan from '../../map/geojson/ulsanAirArea.json';
import jeju from '../../map/geojson/jejuAirArea.json';
// 선형(flat) 공역
import flatGimpo from '../../map/geojson/flatGimpoAirportAirArea.json'; import flatGimpo from '../../map/geojson/flatGimpoAirportAirArea.json';
import flatUlsan from '../../map/geojson/flatUlsanAirArea.json'; import flatUlsan from '../../map/geojson/flatUlsanAirArea.json';
import flatJeju from '../../map/geojson/flatJejuAirport.json';
import { clientMapInit } from '@src/redux/features/control/map/mapSlice'; import { clientMapInit } from '@src/redux/features/control/map/mapSlice';
import { getDraw } from '@src/utility/MapUtils'; import { getDraw } from '@src/utility/MapUtils';
@ -128,11 +132,13 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
...airArea, ...airArea,
...flatGimpo, ...flatGimpo,
...flatUlsan, ...flatUlsan,
...flatJeju,
features: [ features: [
// ...geoJson.features, // ...geoJson.features,
...airArea.features, ...airArea.features,
...flatGimpo.features, ...flatGimpo.features,
...flatUlsan.features ...flatUlsan.features,
...flatJeju.features
] ]
} }
) => { ) => {
@ -144,18 +150,19 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
...airArea, ...airArea,
...flatGimpo, ...flatGimpo,
...flatUlsan, ...flatUlsan,
...flatJeju,
features: [ features: [
// ...geoJson.features, // ...geoJson.features,
...airArea.features, ...airArea.features,
...flatGimpo.features, ...flatGimpo.features,
...flatUlsan.features ...flatUlsan.features,
...flatJeju.features
] ]
} }
: { : {
// ...geoJson, // ...geoJson,
...airArea, ...airArea,
...gimPoGrid, ...gimPoGrid,
// ...ulsan
features: [ features: [
// ...geoJson.features, // ...geoJson.features,
...airArea.features, ...airArea.features,
@ -459,12 +466,13 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
}, },
labelLayerId labelLayerId
); );
// 김포 3d 공역 // 3d 공역
map.addLayer({ map.addLayer({
id: 'route', id: 'route',
type: 'custom', type: 'custom',
renderingMode: '3d', renderingMode: '3d',
onAdd: function () { onAdd: function () {
// 김포
for (let i = 0; i < gimPo.features.length; i++) { for (let i = 0; i < gimPo.features.length; i++) {
let line; let line;
const options = { const options = {
@ -478,18 +486,7 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
}); });
tb.add(line); tb.add(line);
} }
}, // 울산
render: function () {
tb.update();
}
});
// 울산
map.addLayer({
id: 'routes',
type: 'custom',
renderingMode: '3d',
onAdd: function () {
for (let i = 0; i < ulsan.features.length; i++) { for (let i = 0; i < ulsan.features.length; i++) {
let line; let line;
const options = { const options = {
@ -503,6 +500,20 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
}); });
tb.add(line); tb.add(line);
} }
// 제주
for (let i = 0; i < jeju.features.length; i++) {
let line;
const options = {
path: jeju.features[i].geometry.coordinates
};
let lineGeometry = options.path;
line = tb.line({
geometry: lineGeometry,
width: jeju.features[i].properties['stroke-width'],
color: jeju.features[i].properties.stroke
});
tb.add(line);
}
}, },
render: function () { render: function () {
tb.update(); tb.update();
@ -513,6 +524,7 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
map.setMaxPitch(0); map.setMaxPitch(0);
map.setBearing(0); map.setBearing(0);
map.dragRotate.disable(); map.dragRotate.disable();
// 김포
gimPo.features.map((i, idx) => { gimPo.features.map((i, idx) => {
map.addSource(`lineRoute${idx}`, { map.addSource(`lineRoute${idx}`, {
type: 'geojson', type: 'geojson',
@ -534,6 +546,7 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
} }
}); });
}); });
// 울산
ulsan.features.map((i, idx) => { ulsan.features.map((i, idx) => {
map.addSource(`lineRoute${idx}`, { map.addSource(`lineRoute${idx}`, {
type: 'geojson', type: 'geojson',
@ -555,6 +568,28 @@ export default function MapBoxMap({ handlerDrawObjInit }) {
} }
}); });
}); });
// 제주
jeju.features.map((i, idx) => {
map.addSource(`lineRoute${idx}`, {
type: 'geojson',
data: {
...i
}
});
map.addLayer({
id: `lineRoute${idx}`,
type: 'line',
source: `lineRoute${idx}`,
layout: {
'line-join': 'round',
'line-cap': 'round'
},
paint: {
'line-color': i.properties.stroke,
'line-width': i.properties['stroke-width']
}
});
});
} }
// 지형 높이 표시 // 지형 높이 표시

5
src/utility/MapUtils.js

@ -16,6 +16,7 @@ import { airArea } from '../components/map/geojson/_AirArea';
import geoJson from '../components/map/geojson/airArea.json'; import geoJson from '../components/map/geojson/airArea.json';
import flatGimpo from '../components/map/geojson/flatGimpoAirportAirArea.json'; import flatGimpo from '../components/map/geojson/flatGimpoAirportAirArea.json';
import flatUlsan from '../components/map/geojson/flatUlsanAirArea.json'; import flatUlsan from '../components/map/geojson/flatUlsanAirArea.json';
import flatJeju from '../components/map/geojson/flatJejuAirport.json';
/** /**
* geojson Feature 형식으로 반환 * geojson Feature 형식으로 반환
@ -335,11 +336,13 @@ export const handlerCreateAirSpace = (
...airArea, ...airArea,
...flatGimpo, ...flatGimpo,
...flatUlsan, ...flatUlsan,
...flatJeju,
features: [ features: [
// ...geoJson.features, // ...geoJson.features,
...airArea.features, ...airArea.features,
...flatGimpo.features, ...flatGimpo.features,
...flatUlsan.features ...flatUlsan.features,
...flatJeju.features
] ]
} }
) => { ) => {

7
src/views/control/setting/ControlSetting.js

@ -9,6 +9,7 @@ import {
clientFlightAreaClick, clientFlightAreaClick,
clientMapTypeChange clientMapTypeChange
} from '@src/redux/features/control/map/mapSlice'; } from '@src/redux/features/control/map/mapSlice';
import { clientDispatchTopMenu } from '@src/redux/features/layout/layoutSlice';
// v월드 공역 // v월드 공역
import { airArea } from '../../../components/map/geojson/_AirArea'; import { airArea } from '../../../components/map/geojson/_AirArea';
@ -19,8 +20,8 @@ import gimPo from '../../../components/map/geojson/gimpoAirportAirArea.json';
import gimPoGrid from '../../../components/map/geojson/airportAirArea.json'; import gimPoGrid from '../../../components/map/geojson/airportAirArea.json';
// 김포 선형 공역 // 김포 선형 공역
import flatGimpo from '../../../components/map/geojson/flatGimpoAirportAirArea.json'; import flatGimpo from '../../../components/map/geojson/flatGimpoAirportAirArea.json';
import { clientDispatchTopMenu } from '@src/redux/features/layout/layoutSlice';
import flatUlsan from '../../../components/map/geojson/flatUlsanAirArea.json'; import flatUlsan from '../../../components/map/geojson/flatUlsanAirArea.json';
import flatJeju from '../../../components/map/geojson/flatJejuAirport.json';
const ControlSetting = props => { const ControlSetting = props => {
const [setMapType] = useMapType(); const [setMapType] = useMapType();
@ -42,11 +43,13 @@ const ControlSetting = props => {
...airArea, ...airArea,
...flatGimpo, ...flatGimpo,
...flatUlsan, ...flatUlsan,
...flatJeju,
features: [ features: [
// ...geoJson.features, // ...geoJson.features,
...airArea.features, ...airArea.features,
...flatGimpo.features, ...flatGimpo.features,
...flatUlsan.features ...flatUlsan.features,
...flatJeju.features
] ]
}; };
let arrGeoJson = []; let arrGeoJson = [];

Loading…
Cancel
Save