|
|
|
@ -14,6 +14,9 @@ import { FeatureAirZone } from './feature/FeatureAirZone';
|
|
|
|
|
import geoJson from '../../map/geojson/airArea.json'; |
|
|
|
|
// import gimPo from '../../map/geojson/gimpoAirportAirArea.json';
|
|
|
|
|
import gimPo from '../../map/geojson/gimpoAirportAirArea.json'; |
|
|
|
|
// 김포 격자 공역
|
|
|
|
|
import gimPoGrid from '../../../components/map/geojson/airportAirArea.json'; |
|
|
|
|
// 김포 선형 공역
|
|
|
|
|
import flatGimpo from '../../map/geojson/flatGimpoAirportAirArea.json'; |
|
|
|
|
// import DronPlan from './dron/DronPlan';
|
|
|
|
|
// import NewDronPlan from './dron/NewDronPlan';
|
|
|
|
@ -211,6 +214,9 @@ const uamPosition = {
|
|
|
|
|
] |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
let gridCoords = []; |
|
|
|
|
let altitudeMarker = []; |
|
|
|
|
|
|
|
|
|
export default function MapBoxMap() { |
|
|
|
|
const naver = window.naver; |
|
|
|
|
|
|
|
|
@ -260,7 +266,8 @@ export default function MapBoxMap() {
|
|
|
|
|
mapControl.area0003, |
|
|
|
|
mapControl.area0004, |
|
|
|
|
mapControl.area0005, |
|
|
|
|
mapControl.area0006 |
|
|
|
|
mapControl.area0006, |
|
|
|
|
mapControl.liner |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
const handlerCreateAirSpace = ( |
|
|
|
@ -271,10 +278,83 @@ export default function MapBoxMap() {
|
|
|
|
|
features: [...geoJson.features, ...flatGimpo.features] |
|
|
|
|
} |
|
|
|
|
) => { |
|
|
|
|
useGeoJson = mapControl.liner |
|
|
|
|
? { |
|
|
|
|
...geoJson, |
|
|
|
|
...flatGimpo, |
|
|
|
|
features: [...geoJson.features, ...flatGimpo.features] |
|
|
|
|
} |
|
|
|
|
: { |
|
|
|
|
...geoJson, |
|
|
|
|
...gimPoGrid, |
|
|
|
|
features: [...geoJson.features, ...gimPoGrid.features] |
|
|
|
|
}; |
|
|
|
|
if (map.getLayer('maine')) { |
|
|
|
|
map.removeLayer('maine'); |
|
|
|
|
map.removeSource('maine'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (altitudeMarker.length > 0) { |
|
|
|
|
altitudeMarker.map(i => { |
|
|
|
|
i.remove(); |
|
|
|
|
}); |
|
|
|
|
gridCoords = []; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!mapControl.liner) { |
|
|
|
|
if (gridCoords.length <= 0) { |
|
|
|
|
gimPoGrid.features.map(air => { |
|
|
|
|
gridCoords.push({ |
|
|
|
|
lat: |
|
|
|
|
(Math.max( |
|
|
|
|
air.geometry.coordinates[0][0][1], |
|
|
|
|
air.geometry.coordinates[0][1][1], |
|
|
|
|
air.geometry.coordinates[0][2][1], |
|
|
|
|
air.geometry.coordinates[0][3][1] |
|
|
|
|
) + |
|
|
|
|
Math.min( |
|
|
|
|
air.geometry.coordinates[0][0][1], |
|
|
|
|
air.geometry.coordinates[0][1][1], |
|
|
|
|
air.geometry.coordinates[0][2][1], |
|
|
|
|
air.geometry.coordinates[0][3][1] |
|
|
|
|
)) / |
|
|
|
|
2, |
|
|
|
|
lng: |
|
|
|
|
(Math.max( |
|
|
|
|
air.geometry.coordinates[0][0][0], |
|
|
|
|
air.geometry.coordinates[0][1][0], |
|
|
|
|
air.geometry.coordinates[0][2][0], |
|
|
|
|
air.geometry.coordinates[0][3][0] |
|
|
|
|
) + |
|
|
|
|
Math.min( |
|
|
|
|
air.geometry.coordinates[0][0][0], |
|
|
|
|
air.geometry.coordinates[0][1][0], |
|
|
|
|
air.geometry.coordinates[0][2][0], |
|
|
|
|
air.geometry.coordinates[0][3][0] |
|
|
|
|
)) / |
|
|
|
|
2, |
|
|
|
|
airspace: air.properties.airspace, |
|
|
|
|
type: air.properties.type |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
gridCoords.map(val => { |
|
|
|
|
if (mapControl[`area${val.type}`]) { |
|
|
|
|
const el = document.createElement('div'); |
|
|
|
|
el.style.color = '#000000'; |
|
|
|
|
el.style.fontSize = '10px'; |
|
|
|
|
el.innerText = val.airspace; |
|
|
|
|
const marker = new mapboxgl.Marker({ |
|
|
|
|
element: el |
|
|
|
|
}) |
|
|
|
|
.setLngLat([val.lng.toFixed(6), val.lat.toFixed(6)]) |
|
|
|
|
.addTo(map); |
|
|
|
|
marker.type = val.type; |
|
|
|
|
altitudeMarker.push(marker); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let arrGeoJson = []; |
|
|
|
|
useGeoJson.features.map(item => { |
|
|
|
|
if (item.properties.type === '0001' && mapControl.area0001) { |
|
|
|
@ -362,7 +442,7 @@ export default function MapBoxMap() {
|
|
|
|
|
const labelLayerId = layers.find( |
|
|
|
|
layer => layer.type === 'symbol' && layer.layout['text-field'] |
|
|
|
|
).id; |
|
|
|
|
console.log('?@?@?@'); |
|
|
|
|
|
|
|
|
|
// 지형 3d start
|
|
|
|
|
map.addSource('mapbox-dem', { |
|
|
|
|
type: 'raster-dem', |
|
|
|
|