From 6da84dd7b0c38adff4d7083cc9e01ba1f83e56cf Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Sun, 13 Aug 2023 15:34:59 +0100 Subject: [PATCH] Moved code from broken branch. --- client/public/stylesheets/olympus.css | 2 +- .../public/stylesheets/other/contextmenus.css | 40 + client/routes/api/airbases.js | 3 +- client/src/airfields/caucasus.json | 615 +++--- client/src/airfields/marianas.json | 626 ++++-- client/src/airfields/nevada.json | 801 ++++--- client/src/airfields/persiangulf.json | 1306 +++++++----- client/src/airfields/syria.json | 1839 ++++++++++------- client/src/controls/airbasecontextmenu.ts | 69 + client/src/mission/airbase.ts | 44 +- client/src/mission/missionhandler.ts | 39 +- client/views/other/contextmenus.ejs | 21 +- 12 files changed, 3351 insertions(+), 2054 deletions(-) diff --git a/client/public/stylesheets/olympus.css b/client/public/stylesheets/olympus.css index 592eaffa..25b77890 100644 --- a/client/public/stylesheets/olympus.css +++ b/client/public/stylesheets/olympus.css @@ -1075,7 +1075,7 @@ dl.ol-data-grid { } dl.ol-data-grid dd { - width: fit-content; + width: 60%; } dl.ol-data-grid dt.icon { diff --git a/client/public/stylesheets/other/contextmenus.css b/client/public/stylesheets/other/contextmenus.css index 6a8494de..3e2ad830 100644 --- a/client/public/stylesheets/other/contextmenus.css +++ b/client/public/stylesheets/other/contextmenus.css @@ -264,6 +264,9 @@ width: 16px; } + +/* Buttons */ + #center-map::before { content: url("/resources/theme/images/icons/arrows-to-eye-solid.svg"); } @@ -443,4 +446,41 @@ margin-top: 5px; text-align: center; width: 100%; +} + + + +/* Airbase context menu */ +#airbase-contextmenu #airbase-runways { + display:flex; + flex-direction: column; + row-gap:4px; +} + +#airbase-contextmenu #airbase-runways > .runway { + border:1px solid #ccc; + display:flex; + flex-direction: row; + justify-content: space-between; +} + +#airbase-contextmenu #airbase-runways > .runway abbr { + cursor:help; + text-decoration: none; +} + +#airbase-contextmenu #airbase-runways > .runway > .heading { + align-items: center; + column-gap: 4px; + display:flex; + flex-direction: row; +} + +#airbase-contextmenu #airbase-runways > .runway > .heading > abbr { + font-weight: var( --font-weight-bolder ); + padding:4px; +} + +#airbase-contextmenu #airbase-runways > .runway > .heading:last-of-type { + flex-direction: row-reverse; } \ No newline at end of file diff --git a/client/routes/api/airbases.js b/client/routes/api/airbases.js index a080c794..e283040f 100644 --- a/client/routes/api/airbases.js +++ b/client/routes/api/airbases.js @@ -77,7 +77,8 @@ app.get( "/:theatreName/:airbaseName", ( req, res ) => { app.get( "/:theatreName", ( req, res ) => { - const airbases = getAirbasesData( req.params.theatreName ); + const theatreName = req.params.theatreName.toLowerCase().replace( /\s*/g, "" ); + const airbases = getAirbasesData( theatreName ); if ( !airbases ) { sendInvalidTheatre( res ); diff --git a/client/src/airfields/caucasus.json b/client/src/airfields/caucasus.json index 7c060874..5b27dcdc 100644 --- a/client/src/airfields/caucasus.json +++ b/client/src/airfields/caucasus.json @@ -1,361 +1,466 @@ { - "airfields": { + "airfields": { "Anapa-Vityazevo": { "ICAO": "URKA", - "Elevation": "141", + "elevation": "141", "TACAN": "", - "Runways:": { - "04": { - "Mag Hdg": "034", - "Length": "9000", - "ILS": "" - }, - "22": { - "Mag Hdg": "214", - "Length": "9000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "214", + "ILS": "" + }, + "04": { + "magHeading": "034", + "ILS": "" + } + } + ], + "length": "9000" } - } + ] }, "Batumi": { "ICAO": "UGSB", - "Elevation": "33", + "elevation": "33", "TACAN": "16X", - "Runways": { - "13": { - "Mag Hdg": "119", - "Length": "7500", - "ILS": "" - }, - "31": { - "Mag Hdg": "299", - "Length": "7500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "119", + "ILS": "" + }, + "31": { + "magHeading": "299", + "ILS": "" + } + } + ], + "length": "7500" } - } + ] }, "Beslan": { "ICAO": "URMO", - "Elevation": "1722", + "elevation": "1722", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "086", - "Length": "9600", - "ILS": "110.50" - }, - "28": { - "Mag Hdg": "266", - "Length": "9600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "086", + "ILS": "110.50" + }, + "28": { + "magHeading": "266", + "ILS": "" + } + } + ], + "length": "9600" } - } + ] }, "Gelendzhik": { "ICAO": "URKG", - "Elevation": "72", + "elevation": "72", "TACAN": "", - "Runways": { - "01": { - "Mag Hdg": "032", - "Length": "5400", - "ILS": "" - }, - "19": { - "Mag Hdg": "212", - "Length": "5400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "19": { + "magHeading": "212", + "ILS": "" + }, + "01": { + "magHeading": "032", + "ILS": "" + } + } + ], + "length": "5400" } - } + ] }, "Gudauta": { "ICAO": "UG23", - "Elevation": "69", + "elevation": "69", "TACAN": "", - "Runways": { - "15": { - "Mag Hdg": "144", - "Length": "7700", - "ILS": "" - }, - "33": { - "Mag Hdg": "324", - "Length": "7700", - "ILS": "" + "runways": [ + { + "headings": [ + { + "15": { + "magHeading": "144", + "ILS": "" + }, + "33": { + "magHeading": "324", + "ILS": "" + } + } + ], + "length": "7700" } - } + ] }, "Kobuleti": { "ICAO": "UG5X", - "Elevation": "69", + "elevation": "69", "TACAN": "67X", - "Runways": { - "07": { - "Mag Hdg": "063", - "Length": "7400", - "ILS": "111.50" - }, - "25": { - "Mag Hdg": "243", - "Length": "7400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "25": { + "magHeading": "243", + "ILS": "" + }, + "07": { + "magHeading": "063", + "ILS": "111.50" + } + } + ], + "length": "7400" } - } + ] }, "Krasnodar-Center": { "ICAO": "URKL", - "Elevation": "98", + "elevation": "98", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "079", - "Length": "7700", - "ILS": "" - }, - "27": { - "Mag Hdg": "259", - "Length": "7700", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "259", + "ILS": "" + }, + "09": { + "magHeading": "079", + "ILS": "" + } + } + ], + "length": "7700" } - } + ] }, "Krasnodar-Pashkovsky": { "ICAO": "URKK", - "Elevation": "112", + "elevation": "112", "TACAN": "", - "Runways": { - "05": { - "Mag Hdg": "039", - "Length": "9600", - "ILS": "" - }, - "23": { - "Mag Hdg": "219", - "Length": "9600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "219", + "ILS": "" + }, + "05": { + "magHeading": "039", + "ILS": "" + } + } + ], + "length": "9600" } - } + ] }, "Krymsk": { "ICAO": "URKW", - "Elevation": "66", + "elevation": "66", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "032", - "Length": "8000", - "ILS": "" - }, - "22": { - "Mag Hdg": "212", - "Length": "8000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "212", + "ILS": "" + }, + "04": { + "magHeading": "032", + "ILS": "" + } + } + ], + "length": "8000" } - } + ] }, "Kutaisi": { "ICAO": "UGKO", - "Elevation": "148", + "elevation": "148", "TACAN": "44X", - "Runways": { - "07": { - "Mag Hdg": "067'", - "Length": "7700", - "ILS": "109.75" - }, - "25": { - "Mag Hdg": "247", - "Length": "7700", - "ILS": "" + "runways": [ + { + "headings": [ + { + "25": { + "magHeading": "247", + "ILS": "" + }, + "07": { + "magHeading": "067'", + "ILS": "109.75" + } + } + ], + "length": "7700" } - } + ] }, "Maykop-Khanskaya": { "ICAO": "URKH", - "Elevation": "591", + "elevation": "591", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "031", - "Length": "10100", - "ILS": "" - }, - "22": { - "Mag Hdg": "211", - "Length": "10100", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "211", + "ILS": "" + }, + "04": { + "magHeading": "031", + "ILS": "" + } + } + ], + "length": "10100" } - } + ] }, "Mineralnye Vody": { "ICAO": "URMM", - "Elevation": "1050", + "elevation": "1050", "TACAN": "", - "Runways": { - "12": { - "Mag Hdg": "108", - "Length": "12700", - "ILS": "111.70" - }, - "30": { - "Mag Hdg": "288", - "Length": "12700", - "ILS": "109.30" + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "108", + "ILS": "111.70" + }, + "30": { + "magHeading": "288", + "ILS": "109.30" + } + } + ], + "length": "12700" } - } + ] }, "Mozdok": { "ICAO": "XRMF", - "Elevation": "507", + "elevation": "507", "TACAN": "", - "Runways": { - "08": { - "Mag Hdg": "075", - "Length": "9400", - "ILS": "" - }, - "26": { - "Mag Hdg": "255", - "Length": "9400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "255", + "ILS": "" + }, + "08": { + "magHeading": "075", + "ILS": "" + } + } + ], + "length": "9400" } - } + ] }, - "Nalchick": { + "Nalchik": { "ICAO": "URMN", - "Elevation": "1411", + "elevation": "1411", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "048'", - "Length": "7000", - "ILS": "" - }, - "24": { - "Mag Hdg": "228", - "Length": "7000", - "ILS": "110.50" + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "228", + "ILS": "110.50" + }, + "06": { + "magHeading": "048'", + "ILS": "" + } + } + ], + "length": "7000" } - } + ] }, "Novorossiysk": { "ICAO": "URKN", - "Elevation": "131", + "elevation": "131", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "034", - "Length": "5400", - "ILS": "" - }, - "22": { - "Mag Hdg": "214", - "Length": "5400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "214", + "ILS": "" + }, + "04": { + "magHeading": "034", + "ILS": "" + } + } + ], + "length": "5400" } - } + ] }, "Senaki-Kolkhi": { "ICAO": "UGKS", - "Elevation": "43", + "elevation": "43", "TACAN": "31X", - "Runways": { - "09": { - "Mag Hdg": "088'", - "Length": "7400", - "ILS": "108.90" - }, - "27": { - "Mag Hdg": "268", - "Length": "7400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088'", + "ILS": "108.90" + } + } + ], + "length": "7400" } - } + ] }, "Sochi-Adler": { "ICAO": "URSS", - "Elevation": "98", + "elevation": "98", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "055", - "Length": "9700", - "ILS": "111.10" - }, - "27": { - "Mag Hdg": "235", - "Length": "9700", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "235", + "ILS": "" + }, + "06": { + "magHeading": "055", + "ILS": "111.10" + } + } + ], + "length": "9700" } - } + ] }, "Tbilisi-Lochini": { "ICAO": "UGTB", - "Elevation": "1574", + "elevation": "1574", "TACAN": "25X", - "Runways": { - "13": { - "Mag Hdg": "121", - "Length": "9300", - "ILS": "110.30" - }, - "31": { - "Mag Hdg": "301", - "Length": "9300", - "ILS": "108.90" + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "121", + "ILS": "110.30" + }, + "31": { + "magHeading": "301", + "ILS": "108.90" + } + } + ], + "length": "9300" } - } + ] }, "Soganlug": { "ICAO": "UG24", - "Elevation": "1500", + "elevation": "1500", "TACAN": "25X", - "Runways": { - "14": { - "Mag Hdg": "125", - "Length": "6500", - "ILS": "" - }, - "32": { - "Mag Hdg": "305", - "Length": "6500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "14": { + "magHeading": "125", + "ILS": "" + }, + "32": { + "magHeading": "305", + "ILS": "" + } + } + ], + "length": "6500" } - } + ] }, "Sukhumi-Babushara": { "ICAO": "UGSS", - "Elevation": "43", + "elevation": "43", "TACAN": "", - "Runways": { - "12": { - "Mag Hdg": "109", - "Length": "11400", - "ILS": "" - }, - "30": { - "Mag Hdg": "289", - "Length": "11400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "109", + "ILS": "" + }, + "30": { + "magHeading": "289", + "ILS": "" + } + } + ], + "length": "11400" } - } + ] }, "Vaziani": { "ICAO": "UG27", - "Elevation": "1524", + "elevation": "1524", "TACAN": "22X", - "Runways": { - "13": { - "Mag Hdg": "129", - "Length": "7700", - "ILS": "108.75" - }, - "31": { - "Mag Hdg": "309", - "Length": "7700", - "ILS": "108.75" + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "129", + "ILS": "108.75" + }, + "31": { + "magHeading": "309", + "ILS": "108.75" + } + } + ], + "length": "7700" } - } + ] } } -} +} \ No newline at end of file diff --git a/client/src/airfields/marianas.json b/client/src/airfields/marianas.json index 3451c203..580c6f89 100644 --- a/client/src/airfields/marianas.json +++ b/client/src/airfields/marianas.json @@ -1,170 +1,466 @@ { "airfields": { - "Andersen_AFB": { - "ICAO": "PGUA", - "Elevation": "606", - "TACAN": "54X", - "Runways:": { - "06L": { - "Mag Hdg": "066", - "Length": "10300", - "ILS": "109.30" - }, - "24R": { - "Mag Hdg": "246", - "Length": "10300", - "ILS": "109.35" - }, - "06R": { - "Mag Hdg": "066", - "Length": "10900", - "ILS": "110.10" - }, - "24l": { - "Mag Hdg": "246", - "Length": "10900", - "ILS": "110.15" - } - } - }, - "Antonio_B._Won_Pat_Int_Airport": { - "ICAO": "PGUM", - "Elevation": "255", - "TACAN": "105X", - "Runways:": { - "06L": { - "Mag Hdg": "066", - "Length": "10600", - "ILS": "110.30" - }, - "24R": { - "Mag Hdg": "245", - "Length": "10600", - "ILS": "" - }, - "06R": { - "Mag Hdg": "066", - "Length": "8600", - "ILS": "110.90" - }, - "24L": { - "Mag Hdg": "245", - "Length": "8600", - "ILS": "" - } - } - }, - "North_West_Field": { - "ICAO": "", - "Elevation": "522", - "TACAN": "", - "Runways:": { - "06": { - "Mag Hdg": "063", - "Length": "4500", - "ILS": "" - }, - "24": { - "Mag Hdg": "243", - "Length": "4500", - "ILS": "" - } - } - }, - "Olf_Orote_Field": { - "ICAO": "", - "Elevation": "94", - "TACAN": "", - "Runways:": { - "07": { - "Mag Hdg": "067", - "Length": "3500", - "ILS": "" - }, - "25": { - "Mag Hdg": "247", - "Length": "3500", - "ILS": "" - } - } - }, - "Pagan_Airstrip": { - "ICAO": "", - "Elevation": "49", - "TACAN": "", - "Runways:": { - "11": { - "Mag Hdg": "112", - "Length": "1800", - "ILS": "" - }, - "29": { - "Mag Hdg": "292", - "Length": "1800", - "ILS": "" - } - } - }, - "Rota_Int": { - "ICAO": "PGRO", - "Elevation": "569", - "TACAN": "", - "Runways:": { - "09": { - "Mag Hdg": "092", - "Length": "6600", - "ILS": "" - }, - "27": { - "Mag Hdg": "272", - "Length": "6600", - "ILS": "" - } - } - }, - "Saipan_Int": { - "ICAO": "PGSN", - "Elevation": "213", - "TACAN": "", - "Runways:": { - "06": { - "Mag Hdg": "068", - "Length": "6200", - "ILS": "" - }, - "24": { - "Mag Hdg": "248", - "Length": "6200", - "ILS": "" - }, - "07": { - "Mag Hdg": "068", - "Length": "10600", - "ILS": "109.90" - }, - "25": { - "Mag Hdg": "248", - "Length": "10600", - "ILS": "" - } - } - }, - "Tinian_Int": { - "ICAO": "PGWT", - "Elevation": "284", - "TACAN": "", - "Runways:": { - "08": { - "Mag Hdg": "079", - "Length": "8200", - "ILS": "" - }, - "26": { - "Mag Hdg": "259", - "Length": "8200", - "ILS": "" - } + "Anapa-Vityazevo": { + "ICAO": "URKA", + "elevation": "141", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "214", + "ILS": "" + }, + "04": { + "magHeading": "034", + "ILS": "" + } + } + ], + "length": "9000" + } + ] + }, + "Batumi": { + "ICAO": "UGSB", + "elevation": "33", + "TACAN": "16X", + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "119", + "ILS": "" + }, + "31": { + "magHeading": "299", + "ILS": "" + } + } + ], + "length": "7500" + } + ] + }, + "Beslan": { + "ICAO": "URMO", + "elevation": "1722", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "086", + "ILS": "110.50" + }, + "28": { + "magHeading": "266", + "ILS": "" + } + } + ], + "length": "9600" + } + ] + }, + "Gelendzhik": { + "ICAO": "URKG", + "elevation": "72", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "19": { + "magHeading": "212", + "ILS": "" + }, + "01": { + "magHeading": "032", + "ILS": "" + } + } + ], + "length": "5400" + } + ] + }, + "Gudauta": { + "ICAO": "UG23", + "elevation": "69", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "15": { + "magHeading": "144", + "ILS": "" + }, + "33": { + "magHeading": "324", + "ILS": "" + } + } + ], + "length": "7700" + } + ] + }, + "Kobuleti": { + "ICAO": "UG5X", + "elevation": "69", + "TACAN": "67X", + "runways": [ + { + "headings": [ + { + "25": { + "magHeading": "243", + "ILS": "" + }, + "07": { + "magHeading": "063", + "ILS": "111.50" + } + } + ], + "length": "7400" + } + ] + }, + "Krasnodar-Center": { + "ICAO": "URKL", + "elevation": "98", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "259", + "ILS": "" + }, + "09": { + "magHeading": "079", + "ILS": "" + } + } + ], + "length": "7700" + } + ] + }, + "Krasnodar-Pashkovsky": { + "ICAO": "URKK", + "elevation": "112", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "219", + "ILS": "" + }, + "05": { + "magHeading": "039", + "ILS": "" + } + } + ], + "length": "9600" + } + ] + }, + "Krymsk": { + "ICAO": "URKW", + "elevation": "66", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "212", + "ILS": "" + }, + "04": { + "magHeading": "032", + "ILS": "" + } + } + ], + "length": "8000" + } + ] + }, + "Kutaisi": { + "ICAO": "UGKO", + "elevation": "148", + "TACAN": "44X", + "runways": [ + { + "headings": [ + { + "25": { + "magHeading": "247", + "ILS": "" + }, + "07": { + "magHeading": "067'", + "ILS": "109.75" + } + } + ], + "length": "7700" + } + ] + }, + "Maykop-Khanskaya": { + "ICAO": "URKH", + "elevation": "591", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "211", + "ILS": "" + }, + "04": { + "magHeading": "031", + "ILS": "" + } + } + ], + "length": "10100" + } + ] + }, + "Mineralnye Vody": { + "ICAO": "URMM", + "elevation": "1050", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "108", + "ILS": "111.70" + }, + "30": { + "magHeading": "288", + "ILS": "109.30" + } + } + ], + "length": "12700" + } + ] + }, + "Mozdok": { + "ICAO": "XRMF", + "elevation": "507", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "255", + "ILS": "" + }, + "08": { + "magHeading": "075", + "ILS": "" + } + } + ], + "length": "9400" + } + ] + }, + "Nalchik": { + "ICAO": "URMN", + "elevation": "1411", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "228", + "ILS": "110.50" + }, + "06": { + "magHeading": "048'", + "ILS": "" + } + } + ], + "length": "7000" + } + ] + }, + "Novorossiysk": { + "ICAO": "URKN", + "elevation": "131", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "214", + "ILS": "" + }, + "04": { + "magHeading": "034", + "ILS": "" + } + } + ], + "length": "5400" + } + ] + }, + "Senaki-Kolkhi": { + "ICAO": "UGKS", + "elevation": "43", + "TACAN": "31X", + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088'", + "ILS": "108.90" + } + } + ], + "length": "7400" + } + ] + }, + "Sochi-Adler": { + "ICAO": "URSS", + "elevation": "98", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "235", + "ILS": "" + }, + "06": { + "magHeading": "055", + "ILS": "111.10" + } + } + ], + "length": "9700" + } + ] + }, + "Tbilisi-Lochini": { + "ICAO": "UGTB", + "elevation": "1574", + "TACAN": "25X", + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "121", + "ILS": "110.30" + }, + "31": { + "magHeading": "301", + "ILS": "108.90" + } + } + ], + "length": "9300" + } + ] + }, + "Soganlug": { + "ICAO": "UG24", + "elevation": "1500", + "TACAN": "25X", + "runways": [ + { + "headings": [ + { + "14": { + "magHeading": "125", + "ILS": "" + }, + "32": { + "magHeading": "305", + "ILS": "" + } + } + ], + "length": "6500" + } + ] + }, + "Sukhumi-Babushara": { + "ICAO": "UGSS", + "elevation": "43", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "109", + "ILS": "" + }, + "30": { + "magHeading": "289", + "ILS": "" + } + } + ], + "length": "11400" + } + ] + }, + "Vaziani": { + "ICAO": "UG27", + "elevation": "1524", + "TACAN": "22X", + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "129", + "ILS": "108.75" + }, + "31": { + "magHeading": "309", + "ILS": "108.75" + } + } + ], + "length": "7700" + } + ] } } - } } \ No newline at end of file diff --git a/client/src/airfields/nevada.json b/client/src/airfields/nevada.json index e94d1d4d..48159c97 100644 --- a/client/src/airfields/nevada.json +++ b/client/src/airfields/nevada.json @@ -1,413 +1,558 @@ { "airfields": { - "BeattyAirport": { + "Beatty": { "ICAO": "KBTY", - "Elevation": "3173", + "elevation": "3173", "TACAN": "94X", - "Runways:": { - "16": { - "Mag Hdg": "168", - "Length": "5500", - "ILS": "" - }, - "34": { - "Mag Hdg": "348", - "Length": "5500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "168", + "ILS": "" + }, + "34": { + "magHeading": "348", + "ILS": "" + } + } + ], + "length": "5500" } - } + ] }, - "BoulderCityAirport": { + "Boulder City": { "ICAO": "KBVU", - "Elevation": "2205", + "elevation": "2205", "TACAN": "114X", - "Runways:": { - "09": { - "Mag Hdg": "087", - "Length": "4400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "15": { + "magHeading": "153", + "ILS": "" + }, + "33": { + "magHeading": "333", + "ILS": "" + } + } + ], + "length": "3700" }, - "27": { - "Mag Hdg": "267", - "Length": "4400", - "ILS": "" - }, - "15": { - "Mag Hdg": "153", - "Length": "3700", - "ILS": "" - }, - "33": { - "Mag Hdg": "333", - "Length": "3700", - "ILS": "" + { + "headings": [ + { + "27": { + "magHeading": "267", + "ILS": "" + }, + "09": { + "magHeading": "087", + "ILS": "" + } + } + ], + "length": "4400" } - } + ] }, "Creech": { "ICAO": "KINS", - "Elevation": "3126", + "elevation": "3126", "TACAN": "87X", - "Runways:": { - "08": { - "Mag Hdg": "080", - "Length": "8700", - "ILS": "108.70" + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "134", + "ILS": "" + }, + "31": { + "magHeading": "314", + "ILS": "" + } + } + ], + "length": "4700" }, - "26": { - "Mag Hdg": "260", - "Length": "8700", - "ILS": "" - }, - "13": { - "Mag Hdg": "134", - "Length": "4700", - "ILS": "" - }, - "31": { - "Mag Hdg": "314", - "Length": "4700", - "ILS": "" + { + "headings": [ + { + "26": { + "magHeading": "260", + "ILS": "" + }, + "08": { + "magHeading": "080", + "ILS": "108.70" + } + } + ], + "length": "8700" } - } + ] }, - "EchoBayAirport": { + "Echo Bay": { "ICAO": "0L9", - "Elevation": "1549", + "elevation": "1549", "TACAN": "", - "Runways:": { - "06": { - "Mag Hdg": "066", - "Length": "3300", - "ILS": "" - }, - "24": { - "Mag Hdg": "246", - "Length": "3300", - "ILS": "" + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "246", + "ILS": "" + }, + "06": { + "magHeading": "066", + "ILS": "" + } + } + ], + "length": "3300" } - } + ] }, - "groom": { + "Groom Lake": { "ICAO": "KXTA", - "Elevation": "4495", + "elevation": "4495", "TACAN": "18X", - "Runways:": { - "14L": { - "Mag Hdg": "145", - "Length": "11700", - "ILS": "" + "runways": [ + { + "headings": [ + { + "14L": { + "magHeading": "145", + "ILS": "" + }, + "32R": { + "magHeading": "325", + "ILS": "109.30" + } + } + ], + "length": "11700" }, - "32R": { - "Mag Hdg": "325", - "Length": "11700", - "ILS": "109.30" - }, - "14R (CLOSED)": { - "Mag Hdg": "145", - "Length": "17800", - "ILS": "" - }, - "32L (CLOSED)": { - "Mag Hdg": "325", - "Length": "17800", - "ILS": "" + { + "headings": [ + { + "14R (CLOSED)": { + "magHeading": "145", + "ILS": "" + }, + "32L (CLOSED)": { + "magHeading": "325", + "ILS": "" + } + } + ], + "length": "17800" } - } + ] }, - "HendersonExecutiveAirport": { + "Henderson Executive": { "ICAO": "KHND", - "Elevation": "2493", + "elevation": "2493", "TACAN": "", - "Runways:": { - "17L": { - "Mag Hdg": "168", - "Length": "4600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "17L": { + "magHeading": "168", + "ILS": "" + }, + "35R": { + "magHeading": "348", + "ILS": "" + } + } + ], + "length": "4600" }, - "35R": { - "Mag Hdg": "348", - "Length": "4600", - "ILS": "" - }, - "17R": { - "Mag Hdg": "168", - "Length": "6100", - "ILS": "" - }, - "35L": { - "Mag Hdg": "348", - "Length": "6100", - "ILS": "" + { + "headings": [ + { + "17R": { + "magHeading": "168", + "ILS": "" + }, + "35L": { + "magHeading": "348", + "ILS": "" + } + } + ], + "length": "6100" } - } + ] }, - "JeanAirport": { + "Jean": { "ICAO": "", - "Elevation": "2825", + "elevation": "2825", "TACAN": "", - "Runways:": { - "02L": { - "Mag Hdg": "020", - "Length": "4500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "02L": { + "magHeading": "020", + "ILS": "" + }, + "20R": { + "magHeading": "200", + "ILS": "" + } + } + ], + "length": "4500" }, - "20R": { - "Mag Hdg": "200", - "Length": "4500", - "ILS": "" - }, - "02R": { - "Mag Hdg": "020", - "Length": "3600", - "ILS": "" - }, - "20L": { - "Mag Hdg": "200", - "Length": "3600", - "ILS": "" + { + "headings": [ + { + "02R": { + "magHeading": "020", + "ILS": "" + }, + "20L": { + "magHeading": "200", + "ILS": "" + } + } + ], + "length": "3600" } - } + ] }, - "LasVegas": { + "McCarran International": { "ICAO": "KLAS", - "Elevation": "2178", + "elevation": "2178", "TACAN": "116X", - "Runways:": { - "01L": { - "Mag Hdg": "013", - "Length": "8000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "01L": { + "magHeading": "013", + "ILS": "" + }, + "19R": { + "magHeading": "193", + "ILS": "" + } + } + ], + "length": "8000" }, - "19R": { - "Mag Hdg": "193", - "Length": "8000", - "ILS": "" + { + "headings": [ + { + "01R": { + "magHeading": "013", + "ILS": "" + }, + "19L": { + "magHeading": "193", + "ILS": "" + } + } + ], + "length": "8000" }, - "01R": { - "Mag Hdg": "013", - "Length": "8000", - "ILS": "" + { + "headings": [ + { + "07L": { + "magHeading": "078", + "ILS": "" + }, + "25R": { + "magHeading": "258", + "ILS": "110.30" + } + } + ], + "length": "10600" }, - "19L": { - "Mag Hdg": "193", - "Length": "8000", - "ILS": "" - }, - "07L": { - "Mag Hdg": "078", - "Length": "10600", - "ILS": "" - }, - "25R": { - "Mag Hdg": "258", - "Length": "10600", - "ILS": "110.30" - }, - "07R": { - "Mag Hdg": "078", - "Length": "10100", - "ILS": "" - }, - "25L": { - "Mag Hdg": "258", - "Length": "10100", - "ILS": "" + { + "headings": [ + { + "07R": { + "magHeading": "078", + "ILS": "" + }, + "25L": { + "magHeading": "258", + "ILS": "" + } + } + ], + "length": "10100" } - } + ] }, - "LaughlinAirport": { + "Laughlin": { "ICAO": "KIFP", - "Elevation": "673", + "elevation": "673", "TACAN": "", - "Runways:": { - "16": { - "Mag Hdg": "164", - "Length": "7100", - "ILS": "" - }, - "34": { - "Mag Hdg": "344", - "Length": "7100", - "ILS": "" + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "164", + "ILS": "" + }, + "34": { + "magHeading": "344", + "ILS": "" + } + } + ], + "length": "7100" } - } + ] }, - "LincolnCountyAirport": { + "Lincoln County": { "ICAO": "", - "Elevation": "4816", + "elevation": "4816", "TACAN": "", - "Runways:": { - "17": { - "Mag Hdg": "170", - "Length": "4500", - "ILS": "" - }, - "35": { - "Mag Hdg": "350", - "Length": "4500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "17": { + "magHeading": "170", + "ILS": "" + }, + "35": { + "magHeading": "350", + "ILS": "" + } + } + ], + "length": "4500" } - } + ] }, - "MesquiteAirport": { + "Mesquite": { "ICAO": "67L", - "Elevation": "1859", + "elevation": "1859", "TACAN": "", - "Runways:": { - "01": { - "Mag Hdg": "017", - "Length": "5000", - "ILS": "" - }, - "19": { - "Mag Hdg": "197", - "Length": "5000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "19": { + "magHeading": "197", + "ILS": "" + }, + "01": { + "magHeading": "017", + "ILS": "" + } + } + ], + "length": "5000" } - } + ] }, - "MinahAirport_3Q0": { + "Mina": { "ICAO": "", - "Elevation": "4560", + "elevation": "4560", "TACAN": "", - "Runways:": { - "13": { - "Mag Hdg": "140", - "Length": "4100", - "ILS": "" - }, - "31": { - "Mag Hdg": "320", - "Length": "4100", - "ILS": "" + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "140", + "ILS": "" + }, + "31": { + "magHeading": "320", + "ILS": "" + } + } + ], + "length": "4100" } - } + ] }, - "nellis": { + "Nellis": { "ICAO": "KLSV", - "Elevation": "1849", + "elevation": "1849", "TACAN": "12X", - "Runways:": { - "03L": { - "Mag Hdg": "029", - "Length": "9800", - "ILS": "" + "runways": [ + { + "headings": [ + { + "03L": { + "magHeading": "029", + "ILS": "" + }, + "21R": { + "magHeading": "209", + "ILS": "" + } + } + ], + "length": "9800" }, - "21R": { - "Mag Hdg": "209", - "Length": "9800", - "ILS": "" - }, - "03R": { - "Mag Hdg": "029", - "Length": "9800", - "ILS": "" - }, - "21L": { - "Mag Hdg": "209", - "Length": "9800", - "ILS": "109.10" + { + "headings": [ + { + "03R": { + "magHeading": "029", + "ILS": "" + }, + "21L": { + "magHeading": "209", + "ILS": "109.10" + } + } + ], + "length": "9800" } - } + ] }, - "NorthLasVegasAirport": { + "North Las Vegas": { "ICAO": "KVGT", - "Elevation": "2228", + "elevation": "2228", "TACAN": "", - "Runways:": { - "07": { - "Mag Hdg": "076", - "Length": "4900", - "ILS": "" + "runways": [ + { + "headings": [ + { + "25": { + "magHeading": "256", + "ILS": "" + }, + "07": { + "magHeading": "076", + "ILS": "" + } + } + ], + "length": "4900" }, - "25": { - "Mag Hdg": "256", - "Length": "4900", - "ILS": "" + { + "headings": [ + { + "12L": { + "magHeading": "122", + "ILS": "110.70" + }, + "30R": { + "magHeading": "302", + "ILS": "109.10" + } + } + ], + "length": "3800" }, - "12L": { - "Mag Hdg": "122", - "Length": "3800", - "ILS": "110.70" - }, - "30R": { - "Mag Hdg": "302", - "Length": "3800", - "ILS": "109.10" - }, - "12R": { - "Mag Hdg": "122", - "Length": "4600", - "ILS": "" - }, - "30L": { - "Mag Hdg": "302", - "Length": "4600", - "ILS": "" + { + "headings": [ + { + "12R": { + "magHeading": "122", + "ILS": "" + }, + "30L": { + "magHeading": "302", + "ILS": "" + } + } + ], + "length": "4600" } - } + ] }, - "PahuteMesaAirstrip": { + "Pahute Mesa": { "ICAO": "", - "Elevation": "5059", + "elevation": "5059", "TACAN": "", - "Runways:": { - "18": { - "Mag Hdg": "182", - "Length": "5500", - "ILS": "" - }, - "36": { - "Mag Hdg": "002", - "Length": "5500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "18": { + "magHeading": "182", + "ILS": "" + }, + "36": { + "magHeading": "002", + "ILS": "" + } + } + ], + "length": "5500" } - } + ] }, - "TonopahAirport": { + "Tonopah": { "ICAO": "KTPH", - "Elevation": "5390", + "elevation": "5390", "TACAN": "119X", - "Runways:": { - "11": { - "Mag Hdg": "113", - "Length": "5600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "113", + "ILS": "" + }, + "29": { + "magHeading": "293", + "ILS": "" + } + } + ], + "length": "5600" }, - "29": { - "Mag Hdg": "293", - "Length": "5600", - "ILS": "" - }, - "15": { - "Mag Hdg": "153", - "Length": "6800", - "ILS": "" - }, - "33": { - "Mag Hdg": "333", - "Length": "6800", - "ILS": "" + { + "headings": [ + { + "15": { + "magHeading": "153", + "ILS": "" + }, + "33": { + "magHeading": "333", + "ILS": "" + } + } + ], + "length": "6800" } - } + ] }, - "TonopathAFB": { + "Tonopah Test Range": { "ICAO": "KTNX", - "Elevation": "5535", + "elevation": "5535", "TACAN": "77X", - "Runways:": { - "14": { - "Mag Hdg": "145", - "Length": "11700", - "ILS": "108.30" - }, - "32": { - "Mag Hdg": "325", - "Length": "11700", - "ILS": "111.70" + "runways": [ + { + "headings": [ + { + "14": { + "magHeading": "145", + "ILS": "108.30" + }, + "32": { + "magHeading": "325", + "ILS": "111.70" + } + } + ], + "length": "11700" } - } + ] } } } \ No newline at end of file diff --git a/client/src/airfields/persiangulf.json b/client/src/airfields/persiangulf.json index 81c3be69..cf3156bd 100644 --- a/client/src/airfields/persiangulf.json +++ b/client/src/airfields/persiangulf.json @@ -1,567 +1,747 @@ { - "airfields": { - "Abu_Dhabi_International_Airport": { - "ICAO": "OMAA", - "Elevation": "92", - "TACAN": "", - "Runways:": { - "13L": { - "Mag Hdg": "127", - "Length": "13100", - "ILS": "" - }, - "13R": { - "Mag Hdg": "127", - "Length": "13200", - "ILS": "" - }, - "31L": { - "Mag Hdg": "307", - "Length": "13100", - "ILS": "" - }, - "31R": { - "Mag Hdg": "307", - "Length": "13200", - "ILS": "" - } + "airfields": { + "Abu_Dhabi_International_Airport": { + "ICAO": "OMAA", + "elevation": "92", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "13L": { + "magHeading": "127", + "ILS": "" + }, + "31R": { + "magHeading": "307", + "ILS": "" + } + } + ], + "length": "13100" + }, + { + "headings": [ + { + "13R": { + "magHeading": "127", + "ILS": "" + }, + "31L": { + "magHeading": "307", + "ILS": "" + } + } + ], + "length": "13200" } - }, - "Ai_Ain_International_Airport": { - "ICAO": "OMAL", - "Elevation": "814", - "TACAN": "", - "Runways:": { - "01": { - "Mag Hdg": "006", - "Length": "12800", - "ILS": "" - }, - "19": { - "Mag Hdg": "186", - "Length": "12800", - "ILS": "" - } + ] + }, + "Ai_Ain_International_Airport": { + "ICAO": "OMAL", + "elevation": "814", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "19": { + "magHeading": "186", + "ILS": "" + }, + "01": { + "magHeading": "006", + "ILS": "" + } + } + ], + "length": "12800" } - }, - "abu_musa_airport": { - "ICAO": "OIBA", - "Elevation": "16", - "TACAN": "", - "Runways:": { - "08": { - "Mag Hdg": "082", - "Length": "7800", - "ILS": "" - }, - "26": { - "Mag Hdg": "262", - "Length": "7800", - "ILS": "" - } - } - }, - "Dhafra_AFB": { - "ICAO": "OMAM", - "Elevation": "52", - "TACAN": "96X", - "Runways:": { - "13L": { - "Mag Hdg": "126", - "Length": "11700", - "ILS": "111.10" - }, - "31R": { - "Mag Hdg": "306", - "Length": "11700", - "ILS": "109.10" - }, - "13R": { - "Mag Hdg": "16", - "Length": "11700", - "ILS": "108.70" - }, - "31L": { - "Mag Hdg": "306", - "Length": "11700", - "ILS": "108.70" - } - } - }, - "Al_Maktoum_International_Airport": { - "ICAO": "OMDW", - "Elevation": "125", - "TACAN": "", - "Runways:": { - "12": { - "Mag Hdg": "120", - "Length": "14400", - "ILS": "111.75" - }, - "30": { - "Mag Hdg": "300", - "Length": "14400", - "ILS": "109.75" - } - } - }, - "Minhad_AFB": { - "ICAO": "OMDM", - "Elevation": "190", - "TACAN": "99X", - "Runways:": { - "09": { - "Mag Hdg": "088", - "Length": "12600", - "ILS": "110.70" - }, - "27": { - "Mag Hdg": "268", - "Length": "12600", - "ILS": "110.75" - } - } - }, - "Al_Bateen_Airport": { - "ICAO": "OMAD", - "Elevation": "12", - "TACAN": "", - "Runways:": { - "13": { - "Mag Hdg": "127", - "Length": "7000", - "ILS": "" - }, - "31": { - "Mag Hdg": "307", - "Length": "7000", - "ILS": "" - } - } - }, - "Bandar_Abbas_airfield": { - "ICAO": "OIKB", - "Elevation": "29", - "TACAN": "78X", - "Runways:": { - "03L": { - "Mag Hdg": "25", - "Length": "11000", - "ILS": "" - }, - "21R": { - "Mag Hdg": "205", - "Length": "10000", - "ILS": "" - }, - "03R": { - "Mag Hdg": "25", - "Length": "11700", - "ILS": "" - }, - "21L": { - "Mag Hdg": "205", - "Length": "11700", - "ILS": "109.90" - } - } - }, - "Bandar_Lengeh_Airport": { - "ICAO": "OIBL", - "Elevation": "82", - "TACAN": "", - "Runways:": { - "08": { - "Mag Hdg": "079", - "Length": "7900", - "ILS": "" - }, - "26": { - "Mag Hdg": "259", - "Length": "7900", - "ILS": "" - } - } - }, - "Bandar_e_Jask_airfield": { - "ICAO": "OIZJ", - "Elevation": "26", - "TACAN": "110X", - "Runways:": { - "06": { - "Mag Hdg": "059", - "Length": "7300", - "ILS": "" - }, - "24": { - "Mag Hdg": "239", - "Length": "7300", - "ILS": "" - } - } - }, - "Dubai_International_Airport": { - "ICAO": "OMDB", - "Elevation": "16", - "TACAN": "", - "Runways:": { - "12L": { - "Mag Hdg": "120", - "Length": "11400", - "ILS": "110.10" - }, - "30R": { - "Mag Hdg": "300", - "Length": "11400", - "ILS": "110.90" - }, - "12R": { - "Mag Hdg": "120", - "Length": "11400", - "ILS": "109.50" - }, - "30L": { - "Mag Hdg": "300", - "Length": "11400", - "ILS": "111.30" - } - } - }, - "Fujarirah_AFB": { - "ICAO": "OMFJ", - "Elevation": "121", - "TACAN": "", - "Runways:": { - "11": { - "Mag Hdg": "111", - "Length": "9700", - "ILS": "" - }, - "29": { - "Mag Hdg": "291", - "Length": "9700", - "ILS": "111.50" - } - } - }, - "Havadarya_AFB": { - "ICAO": "OIKP", - "Elevation": "52", - "TACAN": "47X", - "Runways:": { - "08": { - "Mag Hdg": "077", - "Length": "7200", - "ILS": "108.90" - }, - "26": { - "Mag Hdg": "257", - "Length": "7200", - "ILS": "" - } - } - }, - "Jiroft_airfield": { - "ICAO": "OIKJ", - "Elevation": "2664", - "TACAN": "", - "Runways:": { - "13": { - "Mag Hdg": "125", - "Length": "9600", - "ILS": "" - }, - "31": { - "Mag Hdg": "305", - "Length": "9600", - "ILS": "" - } - } - }, - "Kerman_AFB": { - "ICAO": "OIKK", - "Elevation": "5745", - "TACAN": "97X", - "Runways:": { - "16": { - "Mag Hdg": "155", - "Length": "12400", - "ILS": "" - }, - "34": { - "Mag Hdg": "335", - "Length": "12400", - "ILS": "" - } - } - }, - "Khasab_AFB": { - "ICAO": "OOKB", - "Elevation": "102", - "TACAN": "", - "Runways:": { - "01": { - "Mag Hdg": "012", - "Length": "8000", - "ILS": "" - }, - "19": { - "Mag Hdg": "192", - "Length": "8000", - "ILS": "110.30" - } - } - }, - "Kish_International_Airport": { - "ICAO": "OIBK", - "Elevation": "115", - "TACAN": "112X", - "Runways:": { - "10": { - "Mag Hdg": "094", - "Length": "11700", - "ILS": "" - }, - "28": { - "Mag Hdg": "274", - "Length": "11700", - "ILS": "" - }, - "09R": { - "Mag Hdg": "094", - "Length": "11700", - "ILS": "" - }, - "27L": { - "Mag Hdg": "274", - "Length": "11700", - "ILS": "" - } - } - }, - "Lar_airbase": { - "ICAO": "OISL", - "Elevation": "2635", - "TACAN": "", - "Runways:": { - "09": { - "Mag Hdg": "088", - "Length": "10100", - "ILS": "" - }, - "27": { - "Mag Hdg": "268", - "Length": "10100", - "ILS": "" - } - } - }, - "Lavan_Island_Airport": { - "ICAO": "OIBV", - "Elevation": "75", - "TACAN": "", - "Runways:": { - "11": { - "Mag Hdg": "110", - "Length": "8600", - "ILS": "" - }, - "29": { - "Mag Hdg": "290", - "Length": "8600", - "ILS": "" - } - } - }, - "Liwa_Airbase": { - "ICAO": "OMLW", - "Elevation": "400", - "TACAN": "121X", - "Runways:": { - "13": { - "Mag Hdg": "130", - "Length": "11600", - "ILS": "" - }, - "31": { - "Mag Hdg": "310", - "Length": "11600", - "ILS": "" - } - } - }, - "Qeshm_Airport": { - "ICAO": "OIKQ", - "Elevation": "26", - "TACAN": "", - "Runways:": { - "05": { - "Mag Hdg": "047", - "Length": "13600", - "ILS": "" - }, - "23": { - "Mag Hdg": "227", - "Length": "13600", - "ILS": "" - } - } - }, - "Ras_Ai_Khaimah_International_Airport": { - "ICAO": "OMRK", - "Elevation": "330", - "TACAN": "", - "Runways:": { - "17": { - "Mag Hdg": "163", - "Length": "12000", - "ILS": "" - }, - "35": { - "Mag Hdg": "343", - "Length": "12000", - "ILS": "" - } - } - }, - "Sas_Ai_Nakheel_Airport": { - "ICAO": "OMNK", - "Elevation": "10", - "TACAN": "", - "Runways:": { - "16": { - "Mag Hdg": "160", - "Length": "6000", - "ILS": "" - }, - "34": { - "Mag Hdg": "340", - "Length": "6000", - "ILS": "" - } - } - }, - "Sharjah_International_Airport": { - "ICAO": "OMSJ", - "Elevation": "26", - "TACAN": "", - "Runways:": { - "12L": { - "Mag Hdg": "121", - "Length": "10500", - "ILS": "108.55" - }, - "30R": { - "Mag Hdg": "301", - "Length": "10500", - "ILS": "111.95" - }, - "12R": { - "Mag Hdg": "121", - "Length": "10500", - "ILS": "" - }, - "30L": { - "Mag Hdg": "301", - "Length": "10500", - "ILS": "" - } - } - }, - "Shiraz_AFB": { - "ICAO": "OISS", - "Elevation": "4879", - "TACAN": "94X", - "Runways:": { - "11L": { - "Mag Hdg": "113", - "Length": "14000", - "ILS": "" - }, - "29R": { - "Mag Hdg": "293", - "Length": "14000", - "ILS": "" - }, - "11R": { - "Mag Hdg": "113", - "Length": "13800", - "ILS": "" - }, - "29L": { - "Mag Hdg": "293", - "Length": "13800", - "ILS": "108.50" - } - } - }, - "Sir_Abu_Nuayr": { - "ICAO": "OMSN", - "Elevation": "26", - "TACAN": "", - "Runways:": { - "10": { - "Mag Hdg": "097", - "Length": "2300", - "ILS": "" - }, - "28": { - "Mag Hdg": "277", - "Length": "2300", - "ILS": "" - } - } - }, - "Sirri_Island_AFB": { - "ICAO": "OIBS", - "Elevation": "20", - "TACAN": "", - "Runways:": { - "12": { - "Mag Hdg": "125", - "Length": "7900", - "ILS": "" - }, - "30": { - "Mag Hdg": "305", - "Length": "7900", - "ILS": "" - } - } - }, - "Tunb_Islab_AFB": { - "ICAO": "OIGI", - "Elevation": "43", - "TACAN": "", - "Runways:": { - "03": { - "Mag Hdg": "025", - "Length": "6200", - "ILS": "" - }, - "21": { - "Mag Hdg": "205", - "Length": "6200", - "ILS": "" - } - } - }, - "Tonb_e_Kochak_Airport": { - "ICAO": "OITK", - "Elevation": "16", - "TACAN": "89X", - "Runways:": { - "08": { - "Mag Hdg": "079", - "Length": "2500", - "ILS": "" - }, - "26": { - "Mag Hdg": "259", - "Length": "2500", - "ILS": "" - } - } - } + ] + }, + "abu_musa_airport": { + "ICAO": "OIBA", + "elevation": "16", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "262", + "ILS": "" + }, + "08": { + "magHeading": "082", + "ILS": "" + } + } + ], + "length": "7800" + } + ] + }, + "Dhafra_AFB": { + "ICAO": "OMAM", + "elevation": "52", + "TACAN": "96X", + "runways": [ + { + "headings": [ + { + "13L": { + "magHeading": "126", + "ILS": "111.10" + }, + "31R": { + "magHeading": "306", + "ILS": "109.10" + } + } + ], + "length": "11700" + }, + { + "headings": [ + { + "13R": { + "magHeading": "16", + "ILS": "108.70" + }, + "31L": { + "magHeading": "306", + "ILS": "108.70" + } + } + ], + "length": "11700" + } + ] + }, + "Al_Maktoum_International_Airport": { + "ICAO": "OMDW", + "elevation": "125", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "120", + "ILS": "111.75" + }, + "30": { + "magHeading": "300", + "ILS": "109.75" + } + } + ], + "length": "14400" + } + ] + }, + "Minhad_AFB": { + "ICAO": "OMDM", + "elevation": "190", + "TACAN": "99X", + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "110.75" + }, + "09": { + "magHeading": "088", + "ILS": "110.70" + } + } + ], + "length": "12600" + } + ] + }, + "Al_Bateen_Airport": { + "ICAO": "OMAD", + "elevation": "12", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "127", + "ILS": "" + }, + "31": { + "magHeading": "307", + "ILS": "" + } + } + ], + "length": "7000" + } + ] + }, + "Bandar_Abbas_airfield": { + "ICAO": "OIKB", + "elevation": "29", + "TACAN": "78X", + "runways": [ + { + "headings": [ + { + "03L": { + "magHeading": "25", + "ILS": "" + }, + "21R": { + "magHeading": "205", + "ILS": "" + } + } + ], + "length": "11000" + }, + { + "headings": [ + { + "03R": { + "magHeading": "25", + "ILS": "" + }, + "21L": { + "magHeading": "205", + "ILS": "109.90" + } + } + ], + "length": "11700" + } + ] + }, + "Bandar_Lengeh_Airport": { + "ICAO": "OIBL", + "elevation": "82", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "259", + "ILS": "" + }, + "08": { + "magHeading": "079", + "ILS": "" + } + } + ], + "length": "7900" + } + ] + }, + "Bandar_e_Jask_airfield": { + "ICAO": "OIZJ", + "elevation": "26", + "TACAN": "110X", + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "239", + "ILS": "" + }, + "06": { + "magHeading": "059", + "ILS": "" + } + } + ], + "length": "7300" + } + ] + }, + "Dubai_International_Airport": { + "ICAO": "OMDB", + "elevation": "16", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "12L": { + "magHeading": "120", + "ILS": "110.10" + }, + "30R": { + "magHeading": "300", + "ILS": "110.90" + } + } + ], + "length": "11400" + }, + { + "headings": [ + { + "12R": { + "magHeading": "120", + "ILS": "109.50" + }, + "30L": { + "magHeading": "300", + "ILS": "111.30" + } + } + ], + "length": "11400" + } + ] + }, + "Fujarirah_AFB": { + "ICAO": "OMFJ", + "elevation": "121", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "111", + "ILS": "" + }, + "29": { + "magHeading": "291", + "ILS": "111.50" + } + } + ], + "length": "9700" + } + ] + }, + "Havadarya_AFB": { + "ICAO": "OIKP", + "elevation": "52", + "TACAN": "47X", + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "257", + "ILS": "" + }, + "08": { + "magHeading": "077", + "ILS": "108.90" + } + } + ], + "length": "7200" + } + ] + }, + "Jiroft_airfield": { + "ICAO": "OIKJ", + "elevation": "2664", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "125", + "ILS": "" + }, + "31": { + "magHeading": "305", + "ILS": "" + } + } + ], + "length": "9600" + } + ] + }, + "Kerman_AFB": { + "ICAO": "OIKK", + "elevation": "5745", + "TACAN": "97X", + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "155", + "ILS": "" + }, + "34": { + "magHeading": "335", + "ILS": "" + } + } + ], + "length": "12400" + } + ] + }, + "Khasab_AFB": { + "ICAO": "OOKB", + "elevation": "102", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "19": { + "magHeading": "192", + "ILS": "110.30" + }, + "01": { + "magHeading": "012", + "ILS": "" + } + } + ], + "length": "8000" + } + ] + }, + "Kish_International_Airport": { + "ICAO": "OIBK", + "elevation": "115", + "TACAN": "112X", + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "094", + "ILS": "" + }, + "28": { + "magHeading": "274", + "ILS": "" + } + } + ], + "length": "11700" + }, + { + "headings": [ + { + "09R": { + "magHeading": "094", + "ILS": "" + }, + "27L": { + "magHeading": "274", + "ILS": "" + } + } + ], + "length": "11700" + } + ] + }, + "Lar_airbase": { + "ICAO": "OISL", + "elevation": "2635", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088", + "ILS": "" + } + } + ], + "length": "10100" + } + ] + }, + "Lavan_Island_Airport": { + "ICAO": "OIBV", + "elevation": "75", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "110", + "ILS": "" + }, + "29": { + "magHeading": "290", + "ILS": "" + } + } + ], + "length": "8600" + } + ] + }, + "Liwa_Airbase": { + "ICAO": "OMLW", + "elevation": "400", + "TACAN": "121X", + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "130", + "ILS": "" + }, + "31": { + "magHeading": "310", + "ILS": "" + } + } + ], + "length": "11600" + } + ] + }, + "Qeshm_Airport": { + "ICAO": "OIKQ", + "elevation": "26", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "227", + "ILS": "" + }, + "05": { + "magHeading": "047", + "ILS": "" + } + } + ], + "length": "13600" + } + ] + }, + "Ras_Ai_Khaimah_International_Airport": { + "ICAO": "OMRK", + "elevation": "330", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "17": { + "magHeading": "163", + "ILS": "" + }, + "35": { + "magHeading": "343", + "ILS": "" + } + } + ], + "length": "12000" + } + ] + }, + "Sas_Ai_Nakheel_Airport": { + "ICAO": "OMNK", + "elevation": "10", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "160", + "ILS": "" + }, + "34": { + "magHeading": "340", + "ILS": "" + } + } + ], + "length": "6000" + } + ] + }, + "Sharjah_International_Airport": { + "ICAO": "OMSJ", + "elevation": "26", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "12L": { + "magHeading": "121", + "ILS": "108.55" + }, + "30R": { + "magHeading": "301", + "ILS": "111.95" + } + } + ], + "length": "10500" + }, + { + "headings": [ + { + "12R": { + "magHeading": "121", + "ILS": "" + }, + "30L": { + "magHeading": "301", + "ILS": "" + } + } + ], + "length": "10500" + } + ] + }, + "Shiraz_AFB": { + "ICAO": "OISS", + "elevation": "4879", + "TACAN": "94X", + "runways": [ + { + "headings": [ + { + "11L": { + "magHeading": "113", + "ILS": "" + }, + "29R": { + "magHeading": "293", + "ILS": "" + } + } + ], + "length": "14000" + }, + { + "headings": [ + { + "11R": { + "magHeading": "113", + "ILS": "" + }, + "29L": { + "magHeading": "293", + "ILS": "108.50" + } + } + ], + "length": "13800" + } + ] + }, + "Sir_Abu_Nuayr": { + "ICAO": "OMSN", + "elevation": "26", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "097", + "ILS": "" + }, + "28": { + "magHeading": "277", + "ILS": "" + } + } + ], + "length": "2300" + } + ] + }, + "Sirri_Island_AFB": { + "ICAO": "OIBS", + "elevation": "20", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "125", + "ILS": "" + }, + "30": { + "magHeading": "305", + "ILS": "" + } + } + ], + "length": "7900" + } + ] + }, + "Tunb_Islab_AFB": { + "ICAO": "OIGI", + "elevation": "43", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "21": { + "magHeading": "205", + "ILS": "" + }, + "03": { + "magHeading": "025", + "ILS": "" + } + } + ], + "length": "6200" + } + ] + }, + "Tonb_e_Kochak_Airport": { + "ICAO": "OITK", + "elevation": "16", + "TACAN": "89X", + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "259", + "ILS": "" + }, + "08": { + "magHeading": "079", + "ILS": "" + } + } + ], + "length": "2500" + } + ] } -} + } +} \ No newline at end of file diff --git a/client/src/airfields/syria.json b/client/src/airfields/syria.json index b48949b7..4d670cf7 100644 --- a/client/src/airfields/syria.json +++ b/client/src/airfields/syria.json @@ -1,995 +1,1366 @@ { "airfields": { - "Abu_al-Duhur": { + "Abu al-Duhur": { "ICAO": "OS57", - "Elevation": "820", + "elevation": "820", "TACAN": "", - "Runways:": { - "09": { - "Mag Hdg": "088", - "Length": "9200", - "ILS": "" - }, - "27": { - "Mag Hdg": "268", - "Length": "9200", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088", + "ILS": "" + } + } + ], + "length": "9200" } - } + ] }, - "Adana": { + "Adana Sakirpasa": { "ICAO": "LTAF", - "Elevation": "56", + "elevation": "56", "TACAN": "", - "Runways": { - "05": { - "Mag Hdg": "050", - "Length": "8800", - "ILS": "108.70" - }, - "23": { - "Mag Hdg": "230", - "Length": "8800", - "ILS": "" + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "230", + "ILS": "" + }, + "05": { + "magHeading": "050", + "ILS": "108.70" + } + } + ], + "length": "8800" } - } + ] }, "Akrotiri": { "ICAO": "LCRA", - "Elevation": "69", + "elevation": "69", "TACAN": "107X", - "Runways": { - "10": { - "Mag Hdg": "106", - "Length": "8800", - "ILS": "" - }, - "28": { - "Mag Hdg": "286", - "Length": "8800", - "ILS": "109.70" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "106", + "ILS": "" + }, + "28": { + "magHeading": "286", + "ILS": "109.70" + } + } + ], + "length": "8800" } - } + ] }, - "Al_Qusayr": { + "Al Qusayr": { "ICAO": "OS70", - "Elevation": "1729", + "elevation": "1729", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "096", - "Length": "9500", - "ILS": "" - }, - "28": { - "Mag Hdg": "276", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "096", + "ILS": "" + }, + "28": { + "magHeading": "276", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, - "Dumayr": { + "Al-Dumayr": { "ICAO": "OS61", - "Elevation": "2067", + "elevation": "2067", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "060", - "Length": "9500", - "ILS": "" - }, - "24": { - "Mag Hdg": "240", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "240", + "ILS": "" + }, + "06": { + "magHeading": "060", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, "Aleppo": { "ICAO": "OSAP", - "Elevation": "1254", + "elevation": "1254", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "092", - "Length": "9200", - "ILS": "" - }, - "27": { - "Mag Hdg": "272", - "Length": "9200", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "272", + "ILS": "" + }, + "09": { + "magHeading": "092", + "ILS": "" + } + } + ], + "length": "9200" } - } + ] }, - "An_Nasiriyah": { + "An Nasiriyah": { "ICAO": "OSAP", - "Elevation": "1254", + "elevation": "1254", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "092", - "Length": "9200", - "ILS": "" - }, - "27": { - "Mag Hdg": "272", - "Length": "9200", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "272", + "ILS": "" + }, + "09": { + "magHeading": "092", + "ILS": "" + } + } + ], + "length": "9200" } - } + ] }, - "At_Tanf": { + "At Tanf": { "ICAO": "", - "Elevation": "2329", + "elevation": "2329", "TACAN": "", - "Runways": "" + "runways": [] }, - "Bassel_Al-Assad": { + "Bassel Al-Assad": { "ICAO": "OSLK", - "Elevation": "92", + "elevation": "92", "TACAN": "", - "Runways": { - "17L": { - "Mag Hdg": "173", - "Length": "7900", - "ILS": "" + "runways": [ + { + "headings": [ + { + "17L": { + "magHeading": "173", + "ILS": "" + }, + "35R": { + "magHeading": "353", + "ILS": "" + } + } + ], + "length": "7900" }, - "35R": { - "Mag Hdg": "353", - "Length": "7900", - "ILS": "" - }, - "17R": { - "Mag Hdg": "173", - "Length": "8900", - "ILS": "109.10" - }, - "35L": { - "Mag Hdg": "353", - "Length": "8900", - "ILS": "" + { + "headings": [ + { + "17R": { + "magHeading": "173", + "ILS": "109.10" + }, + "35L": { + "magHeading": "353", + "ILS": "" + } + } + ], + "length": "8900" } - } + ] }, - "Beirut": { + "Beirut-Rafic Hariri": { "ICAO": "OLBA", - "Elevation": "39", + "elevation": "39", "TACAN": "", - "Runways": { - "03": { - "Mag Hdg": "030", - "Length": "7000", - "ILS": "110.70" + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "164", + "ILS": "110.10" + }, + "34": { + "magHeading": "344", + "ILS": "" + } + } + ], + "length": "10300" }, - "21": { - "Mag Hdg": "210", - "Length": "7000", - "ILS": "" + { + "headings": [ + { + "17": { + "magHeading": "174", + "ILS": "109.50" + }, + "35": { + "magHeading": "354", + "ILS": "" + } + } + ], + "length": "7600" }, - "16": { - "Mag Hdg": "164", - "Length": "10300", - "ILS": "110.10" - }, - "34": { - "Mag Hdg": "344", - "Length": "10300", - "ILS": "" - }, - "17": { - "Mag Hdg": "174", - "Length": "7600", - "ILS": "109.50" - }, - "35": { - "Mag Hdg": "354", - "Length": "7600", - "ILS": "" + { + "headings": [ + { + "21": { + "magHeading": "210", + "ILS": "" + }, + "03": { + "magHeading": "030", + "ILS": "110.70" + } + } + ], + "length": "7000" } - } + ] }, "Damascus": { "ICAO": "OSDI", - "Elevation": "2008", + "elevation": "2008", "TACAN": "", - "Runways": { - "05L": { - "Mag Hdg": "045", - "Length": "11600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "05L": { + "magHeading": "045", + "ILS": "" + }, + "23R": { + "magHeading": "225", + "ILS": "109.90" + } + } + ], + "length": "11600" }, - "23R": { - "Mag Hdg": "225", - "Length": "11600", - "ILS": "109.90" - }, - "05R": { - "Mag Hdg": "045", - "Length": "11600", - "ILS": "111.10" - }, - "23L": { - "Mag Hdg": "225", - "Length": "11600", - "ILS": "" + { + "headings": [ + { + "05R": { + "magHeading": "045", + "ILS": "111.10" + }, + "23L": { + "magHeading": "225", + "ILS": "" + } + } + ], + "length": "11600" } - } + ] }, - "Deir_ez_Zor": { + "Deir ez-Zor": { "ICAO": "OSDZ", - "Elevation": "713", + "elevation": "713", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "104", - "Length": "9500", - "ILS": "" - }, - "28": { - "Mag Hdg": "284", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "104", + "ILS": "" + }, + "28": { + "magHeading": "284", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, "Ercan": { "ICAO": "LCEN", - "Elevation": "312", + "elevation": "312", "TACAN": "", - "Runways": { - "11": { - "Mag Hdg": "110", - "Length": "8700", - "ILS": "" - }, - "29": { - "Mag Hdg": "290", - "Length": "8700", - "ILS": "108.30" + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "110", + "ILS": "" + }, + "29": { + "magHeading": "290", + "ILS": "108.30" + } + } + ], + "length": "8700" } - } + ] }, - "Eyn_Shemer": { + "Eyn Shemer": { "ICAO": "LLES", - "Elevation": "110", + "elevation": "110", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "095", - "Length": "4000", - "ILS": "" - }, - "27": { - "Mag Hdg": "2750", - "Length": "4000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "2750", + "ILS": "" + }, + "09": { + "magHeading": "095", + "ILS": "" + } + } + ], + "length": "4000" } - } + ] }, "Gaziantep": { "ICAO": "LTAJ", - "Elevation": "2290", + "elevation": "2290", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "100", - "Length": "9100", - "ILS": "" - }, - "28": { - "Mag Hdg": "280", - "Length": "9100", - "ILS": "109.10" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "100", + "ILS": "" + }, + "28": { + "magHeading": "280", + "ILS": "109.10" + } + } + ], + "length": "9100" } - } + ] }, "Gazipasa": { "ICAO": "LTFG", - "Elevation": "130", + "elevation": "130", "TACAN": "", - "Runways": { - "08": { - "Mag Hdg": "080", - "Length": "7500", - "ILS": "108.50" - }, - "26": { - "Mag Hdg": "260", - "Length": "7500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "260", + "ILS": "" + }, + "08": { + "magHeading": "080", + "ILS": "108.50" + } + } + ], + "length": "7500" } - } + ] }, "Gecitkale": { "ICAO": "LCGK", - "Elevation": "148", + "elevation": "148", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "088", - "Length": "9100", - "ILS": "108.50" - }, - "27": { - "Mag Hdg": "268", - "Length": "9100", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088", + "ILS": "108.50" + } + } + ], + "length": "9100" } - } + ] }, "H3": { "ICAO": "", - "Elevation": "2583", + "elevation": "2583", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "059", - "Length": "9800", - "ILS": "" + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "107", + "ILS": "" + }, + "29": { + "magHeading": "287", + "ILS": "" + } + } + ], + "length": "9500" }, - "24": { - "Mag Hdg": "239", - "Length": "9800", - "ILS": "" - }, - "11": { - "Mag Hdg": "107", - "Length": "9500", - "ILS": "" - }, - "29": { - "Mag Hdg": "287", - "Length": "9500", - "ILS": "" + { + "headings": [ + { + "24": { + "magHeading": "239", + "ILS": "" + }, + "06": { + "magHeading": "059", + "ILS": "" + } + } + ], + "length": "9800" } - } + ] }, - "H3_Northwest": { + "H3 Northwest": { "ICAO": "", - "Elevation": "2582", + "elevation": "2582", "TACAN": "", - "Runways": { - "12": { - "Mag Hdg": "117", - "Length": "8000", - "ILS": "" - }, - "30": { - "Mag Hdg": "297", - "Length": "8000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "117", + "ILS": "" + }, + "30": { + "magHeading": "297", + "ILS": "" + } + } + ], + "length": "8000" } - } + ] }, - "H3_Southwest": { + "H3 Southwest": { "ICAO": "", - "Elevation": "2671", + "elevation": "2671", "TACAN": "", - "Runways": { - "12": { - "Mag Hdg": "116", - "Length": "8000", - "ILS": "" - }, - "30": { - "Mag Hdg": "296", - "Length": "8000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "12": { + "magHeading": "116", + "ILS": "" + }, + "30": { + "magHeading": "296", + "ILS": "" + } + } + ], + "length": "8000" } - } + ] }, "H4": { "ICAO": "OJHR", - "Elevation": "2257", + "elevation": "2257", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "098", - "Length": "8000", - "ILS": "" - }, - "28": { - "Mag Hdg": "278", - "Length": "8000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "098", + "ILS": "" + }, + "28": { + "magHeading": "278", + "ILS": "" + } + } + ], + "length": "8000" } - } + ] }, "Haifa": { "ICAO": "LLHA", - "Elevation": "20", + "elevation": "20", "TACAN": "", - "Runways": { - "16": { - "Mag Hdg": "157", - "Length": "3300", - "ILS": "" - }, - "34": { - "Mag Hdg": "337", - "Length": "3300", - "ILS": "" + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "157", + "ILS": "" + }, + "34": { + "magHeading": "337", + "ILS": "" + } + } + ], + "length": "3300" } - } + ] }, "Hama": { "ICAO": "OS58", - "Elevation": "984", + "elevation": "984", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "095", - "Length": "8600", - "ILS": "" - }, - "27": { - "Mag Hdg": "275", - "Length": "8600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "275", + "ILS": "" + }, + "09": { + "magHeading": "095", + "ILS": "" + } + } + ], + "length": "8600" } - } + ] }, "Hatay": { "ICAO": "LTDA", - "Elevation": "253", + "elevation": "253", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "039", - "Length": "9600", - "ILS": "108.90" - }, - "22": { - "Mag Hdg": "219", - "Length": "9600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "219", + "ILS": "" + }, + "04": { + "magHeading": "039", + "ILS": "108.90" + } + } + ], + "length": "9600" } - } + ] }, "Incirlik": { "ICAO": "LTAG", - "Elevation": "230", + "elevation": "230", "TACAN": "21X", - "Runways": { - "05": { - "Mag Hdg": "049", - "Length": "9600", - "ILS": "109.30" - }, - "23": { - "Mag Hdg": "229", - "Length": "9500", - "ILS": "111.70" + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "229", + "ILS": "111.70" + }, + "05": { + "magHeading": "049", + "ILS": "109.30" + } + } + ], + "length": "9500" } - } + ] }, "Jirah": { "ICAO": "OS62", - "Elevation": "1173", + "elevation": "1173", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "095", - "Length": "9600", - "ILS": "" - }, - "28": { - "Mag Hdg": "275", - "Length": "9600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "095", + "ILS": "" + }, + "28": { + "magHeading": "275", + "ILS": "" + } + } + ], + "length": "9600" } - } + ] }, "Khalkhalah": { "ICAO": "OS69", - "Elevation": "2418", + "elevation": "2418", "TACAN": "", - "Runways": { - "07": { - "Mag Hdg": "071", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "15": { + "magHeading": "146", + "ILS": "" + }, + "33": { + "magHeading": "326", + "ILS": "" + } + } + ], + "length": "8300" }, - "25": { - "Mag Hdg": "251", - "Length": "9500", - "ILS": "" - }, - "15": { - "Mag Hdg": "146", - "Length": "8300", - "ILS": "" - }, - "33": { - "Mag Hdg": "326", - "Length": "8300", - "ILS": "" + { + "headings": [ + { + "25": { + "magHeading": "251", + "ILS": "" + }, + "07": { + "magHeading": "071", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, - "Kharab_Ishk": { + "Kharab Ishk": { "ICAO": "", - "Elevation": "1416", + "elevation": "1416", "TACAN": "", - "Runways": "" + "runways": [] }, - "King_Hussein": { + "King Hussein Air College": { "ICAO": "OJMF", - "Elevation": "2205", + "elevation": "2205", "TACAN": "", - "Runways": { - "13": { - "Mag Hdg": "127", - "Length": "9500", - "ILS": "" - }, - "31": { - "Mag Hdg": "307", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "13": { + "magHeading": "127", + "ILS": "" + }, + "31": { + "magHeading": "307", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, "Kingsfield": { "ICAO": "LCRE", - "Elevation": "276", + "elevation": "276", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "058", - "Length": "3300", - "ILS": "" - }, - "24": { - "Mag Hdg": "238", - "Length": "3300", - "ILS": "" + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "238", + "ILS": "" + }, + "06": { + "magHeading": "058", + "ILS": "" + } + } + ], + "length": "3300" } - } + ] }, - "Kiryat_Shmona": { + "Kiryat Shmona": { "ICAO": "LLKS", - "Elevation": "360", + "elevation": "360", "TACAN": "", - "Runways": { - "03": { - "Mag Hdg": "033", - "Length": "3500", - "ILS": "" - }, - "21": { - "Mag Hdg": "213", - "Length": "3500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "21": { + "magHeading": "213", + "ILS": "" + }, + "03": { + "magHeading": "033", + "ILS": "" + } + } + ], + "length": "3500" } - } + ] }, "Kuweires": { "ICAO": "OS66", - "Elevation": "1201", + "elevation": "1201", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "095", - "Length": "7700", - "ILS": "" - }, - "28": { - "Mag Hdg": "275", - "Length": "7700", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "095", + "ILS": "" + }, + "28": { + "magHeading": "275", + "ILS": "" + } + } + ], + "length": "7700" } - } + ] }, "Lakatamia": { "ICAO": "", - "Elevation": "758", + "elevation": "758", "TACAN": "", - "Runways": "" + "runways": [] }, "Larnaca": { "ICAO": "LCRE", - "Elevation": "16", + "elevation": "16", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "043", - "Length": "8800", - "ILS": "" - }, - "22": { - "Mag Hdg": "223", - "Length": "8800", - "ILS": "110.30" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "223", + "ILS": "110.30" + }, + "04": { + "magHeading": "043", + "ILS": "" + } + } + ], + "length": "8800" } - } + ] }, - "Marj_Al_Sultan": { + "London": { "ICAO": "", - "Elevation": "2008", + "elevation": "", "TACAN": "", - "Runways": "" + "runways": [] }, - "Marj_Ruhayyil": { - "ICAO": "OS63", - "Elevation": "2161", + "Marj as Sultan North": { + "ICAO": "", + "elevation": "2008", "TACAN": "", - "Runways": { - "06L": { - "Mag Hdg": "059", - "Length": "9400", - "ILS": "" + "runways": [] + }, + "Marj as Sultan South": { + "ICAO": "", + "elevation": "2008", + "TACAN": "", + "runways": [] + }, + "Marj Ruhayyil": { + "ICAO": "OS63", + "elevation": "2161", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "06L": { + "magHeading": "059", + "ILS": "" + }, + "24R": { + "magHeading": "239", + "ILS": "" + } + } + ], + "length": "9400" }, - "24R": { - "Mag Hdg": "239", - "Length": "9400", - "ILS": "" - }, - "06R": { - "Mag Hdg": "059", - "Length": "8400", - "ILS": "" - }, - "24L": { - "Mag Hdg": "239", - "Length": "8400", - "ILS": "" + { + "headings": [ + { + "06R": { + "magHeading": "059", + "ILS": "" + }, + "24L": { + "magHeading": "239", + "ILS": "" + } + } + ], + "length": "8400" } - } + ] }, "Megiddo": { "ICAO": "LLMG", - "Elevation": "180", + "elevation": "180", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "088", - "Length": "6200", - "ILS": "" - }, - "27": { - "Mag Hdg": "268", - "Length": "6200", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088", + "ILS": "" + } + } + ], + "length": "6200" } - } + ] }, "Mezzeh": { "ICAO": "OS67", - "Elevation": "2387", + "elevation": "2387", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "056", - "Length": "8800", - "ILS": "" - }, - "24": { - "Mag Hdg": "236", - "Length": "8800", - "ILS": "" + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "236", + "ILS": "" + }, + "06": { + "magHeading": "056", + "ILS": "" + } + } + ], + "length": "8800" } - } + ] }, "Minakh": { "ICAO": "OS71", - "Elevation": "1614", + "elevation": "1614", "TACAN": "", - "Runways": { - "10": { - "Mag Hdg": "096", - "Length": "4500", - "ILS": "" - }, - "28": { - "Mag Hdg": "276", - "Length": "4500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "10": { + "magHeading": "096", + "ILS": "" + }, + "28": { + "magHeading": "276", + "ILS": "" + } + } + ], + "length": "4500" } - } + ] }, "Naqoura": { "ICAO": "", - "Elevation": "381", + "elevation": "381", "TACAN": "", - "Runways": "" + "runways": [] + }, + "Nicosia": { + "ICAO": "", + "elevation": "722", + "TACAN": "", + "runways": [ + { + "headings": [ + { + "09": { + "magHeading": "092", + "ILS": "" + }, + "27": { + "magHeading": "272", + "ILS": "" + } + } + ], + "length": "5791" + }, + { + "headings": [ + { + "14": { + "magHeading": "148", + "ILS": "" + }, + "27": { + "magHeading": "228", + "ILS": "" + } + } + ], + "length": "8385" + } + ] }, "Palmyra": { "ICAO": "OSPR", - "Elevation": "1325", + "elevation": "1325", "TACAN": "", - "Runways": { - "08": { - "Mag Hdg": "079", - "Length": "9200", - "ILS": "" - }, - "26": { - "Mag Hdg": "259", - "Length": "9200", - "ILS": "" + "runways": [ + { + "headings": [ + { + "26": { + "magHeading": "259", + "ILS": "" + }, + "08": { + "magHeading": "079", + "ILS": "" + } + } + ], + "length": "9200" } - } + ] }, "Paphos": { "ICAO": "LCPH", - "Elevation": "40", + "elevation": "40", "TACAN": "79X", - "Runways": { - "11": { - "Mag Hdg": "109", - "Length": "8600", - "ILS": "" - }, - "29": { - "Mag Hdg": "289", - "Length": "8600", - "ILS": "108.90" + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "109", + "ILS": "" + }, + "29": { + "magHeading": "289", + "ILS": "108.90" + } + } + ], + "length": "8600" } - } + ] }, - "Qabr_al_Sitt": { + "Pinarbashi": { "ICAO": "", - "Elevation": "2135", + "elevation": "771", "TACAN": "", - "Runways": "" - }, - "Ramat_David": { - "ICAO": "LLRD", - "Elevation": "146", - "TACAN": "84X", - "Runways": { - "09": { - "Mag Hdg": "084", - "Length": "7600", - "ILS": "" - }, - "27": { - "Mag Hdg": "264", - "Length": "7600", - "ILS": "" - }, - "11": { - "Mag Hdg": "105", - "Length": "7700", - "ILS": "" - }, - "29": { - "Mag Hdg": "285", - "Length": "7700", - "ILS": "" - }, - "15": { - "Mag Hdg": "141", - "Length": "7700", - "ILS": "" - }, - "33": { - "Mag Hdg": "321", - "Length": "7700", - "ILS": "111.10" + "runways": [ + { + "headings": [ + { + "16": { + "magHeading": "167", + "ILS": "" + }, + "34": { + "magHeading": "347", + "ILS": "" + } + } + ], + "length": "3577" } - } + ] + }, + "Qabr as Sitt": { + "ICAO": "", + "elevation": "2135", + "TACAN": "", + "runways": [] + }, + "Ramat David": { + "ICAO": "LLRD", + "elevation": "146", + "TACAN": "84X", + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "105", + "ILS": "" + }, + "29": { + "magHeading": "285", + "ILS": "" + } + } + ], + "length": "7700" + }, + { + "headings": [ + { + "15": { + "magHeading": "141", + "ILS": "" + }, + "33": { + "magHeading": "321", + "ILS": "111.10" + } + } + ], + "length": "7700" + }, + { + "headings": [ + { + "27": { + "magHeading": "264", + "ILS": "" + }, + "09": { + "magHeading": "084", + "ILS": "" + } + } + ], + "length": "7600" + } + ] }, "Rayak": { "ICAO": "OLRA", - "Elevation": "3035", + "elevation": "3035", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "042", - "Length": "9400", - "ILS": "" - }, - "22": { - "Mag Hdg": "222", - "Length": "9400", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "222", + "ILS": "" + }, + "04": { + "magHeading": "042", + "ILS": "" + } + } + ], + "length": "9400" } - } + ] }, - "Rene_Mouawad": { + "Rene Mouawad": { "ICAO": "OLKA", - "Elevation": "23", + "elevation": "23", "TACAN": "", - "Runways": { - "06": { - "Mag Hdg": "058", - "Length": "9000", - "ILS": "" - }, - "24": { - "Mag Hdg": "238", - "Length": "9000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "24": { + "magHeading": "238", + "ILS": "" + }, + "06": { + "magHeading": "058", + "ILS": "" + } + } + ], + "length": "9000" } - } + ] }, - "Rosh_Pina": { + "Rosh Pina": { "ICAO": "LLIB", - "Elevation": "914", + "elevation": "914", "TACAN": "", - "Runways": { - "05": { - "Mag Hdg": "049", - "Length": "3200", - "ILS": "" + "runways": [ + { + "headings": [ + { + "15": { + "magHeading": "147", + "ILS": "" + }, + "33": { + "magHeading": "327", + "ILS": "" + } + } + ], + "length": "2900" }, - "23": { - "Mag Hdg": "229", - "Length": "3200", - "ILS": "" - }, - "15": { - "Mag Hdg": "147", - "Length": "2900", - "ILS": "" - }, - "33": { - "Mag Hdg": "327", - "Length": "2900", - "ILS": "" + { + "headings": [ + { + "23": { + "magHeading": "229", + "ILS": "" + }, + "05": { + "magHeading": "049", + "ILS": "" + } + } + ], + "length": "3200" } - } + ] }, "Ruwayshid": { "ICAO": "", - "Elevation": "2980", + "elevation": "2980", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "091", - "Length": "7000", - "ILS": "" - }, - "27": { - "Mag Hdg": "271", - "Length": "7000", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "271", + "ILS": "" + }, + "09": { + "magHeading": "091", + "ILS": "" + } + } + ], + "length": "7000" } - } + ] }, "Sanliurfa": { "ICAO": "LTCS", - "Elevation": "2703", + "elevation": "2703", "TACAN": "", - "Runways": { - "04": { - "Mag Hdg": "036", - "Length": "12900", - "ILS": "" - }, - "22": { - "Mag Hdg": "216", - "Length": "12900", - "ILS": "" + "runways": [ + { + "headings": [ + { + "22": { + "magHeading": "216", + "ILS": "" + }, + "04": { + "magHeading": "036", + "ILS": "" + } + } + ], + "length": "12900" } - } + ] }, "Sayqal": { "ICAO": "OS68", - "Elevation": "2274", + "elevation": "2274", "TACAN": "", - "Runways": { - "05": { - "Mag Hdg": "055", - "Length": "7600", - "ILS": "" + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "235", + "ILS": "" + }, + "05": { + "magHeading": "055", + "ILS": "" + } + } + ], + "length": "7600" }, - "23": { - "Mag Hdg": "235", - "Length": "7600", - "ILS": "" - }, - "08": { - "Mag Hdg": "085", - "Length": "9500", - "ILS": "" - }, - "26": { - "Mag Hdg": "265", - "Length": "9500", - "ILS": "" + { + "headings": [ + { + "26": { + "magHeading": "265", + "ILS": "" + }, + "08": { + "magHeading": "085", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, "Shayrat": { "ICAO": "OS65", - "Elevation": "2638", + "elevation": "2638", "TACAN": "", - "Runways": { - "11": { - "Mag Hdg": "107", - "Length": "9300", - "ILS": "" - }, - "29": { - "Mag Hdg": "287", - "Length": "9300", - "ILS": "" + "runways": [ + { + "headings": [ + { + "11": { + "magHeading": "107", + "ILS": "" + }, + "29": { + "magHeading": "287", + "ILS": "" + } + } + ], + "length": "9300" } - } + ] }, "Tabqa": { "ICAO": "OS59", - "Elevation": "1099", + "elevation": "1099", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "088", - "Length": "9300", - "ILS": "" - }, - "27": { - "Mag Hdg": "268", - "Length": "9300", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "268", + "ILS": "" + }, + "09": { + "magHeading": "088", + "ILS": "" + } + } + ], + "length": "9300" } - } + ] }, "Taftanaz": { "ICAO": "", - "Elevation": "", + "elevation": "", "TACAN": "", - "Runways": "" + "runways": [] }, - "Tal_Siman": { + "Tal Siman": { "ICAO": "", - "Elevation": "", + "elevation": "", "TACAN": "", - "Runways": "" + "runways": [] }, - "thalah": { + "Tha'lah": { "ICAO": "OS60", - "Elevation": "2414", + "elevation": "2414", "TACAN": "", - "Runways": { - "05": { - "Mag Hdg": "053", - "Length": "9500", - "ILS": "" - }, - "23": { - "Mag Hdg": "233", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "23": { + "magHeading": "233", + "ILS": "" + }, + "05": { + "magHeading": "053", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, "Tiyas": { "ICAO": "OS72", - "Elevation": "1798", + "elevation": "1798", "TACAN": "", - "Runways": { - "09": { - "Mag Hdg": "085", - "Length": "9500", - "ILS": "" - }, - "27": { - "Mag Hdg": "265", - "Length": "9500", - "ILS": "" + "runways": [ + { + "headings": [ + { + "27": { + "magHeading": "265", + "ILS": "" + }, + "09": { + "magHeading": "085", + "ILS": "" + } + } + ], + "length": "9500" } - } + ] }, - "Wujah_Al_Hajar": { + "Wujah Al Hajar": { "ICAO": "Z190", - "Elevation": "641", + "elevation": "641", "TACAN": "", - "Runways": { - "02": { - "Mag Hdg": "024", - "Length": "4800", - "ILS": "" - }, - "20": { - "Mag Hdg": "204", - "Length": "4800", - "ILS": "" + "runways": [ + { + "headings": [ + { + "20": { + "magHeading": "204", + "ILS": "" + }, + "02": { + "magHeading": "024", + "ILS": "" + } + } + ], + "length": "4800" } - } + ] } } -} +} \ No newline at end of file diff --git a/client/src/controls/airbasecontextmenu.ts b/client/src/controls/airbasecontextmenu.ts index beb6bd14..19a32a1c 100644 --- a/client/src/controls/airbasecontextmenu.ts +++ b/client/src/controls/airbasecontextmenu.ts @@ -1,6 +1,7 @@ import { getMap, getMissionHandler, getUnitsManager, setActiveCoalition } from ".."; import { BLUE_COMMANDER, GAME_MASTER, RED_COMMANDER } from "../constants/constants"; import { Airbase } from "../mission/airbase"; +import { dataPointMap } from "../other/utils"; import { ContextMenu } from "./contextmenu"; export class AirbaseContextMenu extends ContextMenu { @@ -27,6 +28,74 @@ export class AirbaseContextMenu extends ContextMenu { this.setCoalition(airbase.getCoalition()); this.enableLandButton(getUnitsManager().getSelectedUnitsTypes().length == 1 && ["Aircraft", "Helicopter"].includes(getUnitsManager().getSelectedUnitsTypes()[0]) && (getUnitsManager().getSelectedUnitsCoalition() === airbase.getCoalition() || airbase.getCoalition() === "neutral")) this.enableSpawnButton(getMissionHandler().getCommandModeOptions().commandMode == GAME_MASTER || this.#airbase.getCoalition() == getMissionHandler().getCommandedCoalition()); + + + dataPointMap( this.getContainer(), { + "coalition": airbase.getCoalition(), + "airbaseName": airbase.getName() + }); + + dataPointMap( this.getContainer(), this.#airbase.getChartData() ); + + const runwaysContainer = this.getContainer()?.querySelector( "#airbase-runways" ); + runwaysContainer.innerHTML = ""; + + if ( runwaysContainer instanceof HTMLElement ) { + + const runways = this.#airbase.getChartData().runways; + + if ( runways.length === 0 ) { + runwaysContainer.innerText = "No data"; + } else { + runways.forEach( runway => { + + let runwayDiv = document.createElement( "div" ); + runwayDiv.classList.add( "runway" ); + + runway.headings.forEach( headings => { + + //* + for ( const [ heading, data ] of Object.entries( headings ) ) { + + let headingDiv = document.createElement( "div" ); + headingDiv.classList.add( "heading" ); + + let abbr = document.createElement( "abbr" ); + abbr.title = `Mag heading: ${data.magHeading}`; + abbr.innerText = heading; + + headingDiv.appendChild( abbr ); + + runwayDiv.appendChild( headingDiv ); + + if ( data.ILS ) { + let ilsDiv = document.createElement( "div" ); + ilsDiv.classList.add( "ils" ); + + abbr = document.createElement( "abbr" ); + abbr.title = data.ILS; + abbr.innerText = "ILS"; + + ilsDiv.appendChild( abbr ); + headingDiv.appendChild( ilsDiv ); + } + + + } + //*/ + + }); + + runwaysContainer.appendChild( runwayDiv ); + + }); + } + + } + + this.clip(); + + } setName(airbaseName: string) { diff --git a/client/src/mission/airbase.ts b/client/src/mission/airbase.ts index 2510d0da..35fbdc98 100644 --- a/client/src/mission/airbase.ts +++ b/client/src/mission/airbase.ts @@ -8,10 +8,37 @@ export interface AirbaseOptions position: L.LatLng } + +export interface AirbaseChartData { + elevation: string, + ICAO: string, + TACAN: string, + runways: AirbaseChartRunwayData[] +} + +export interface AirbaseChartRunwayData { + "headings": AirbaseChartRunwayHeadingData[], + "length": string +} + +export interface AirbaseChartRunwayHeadingData { + [index: string]: { + "magHeading": string, + "ILS": string + } +} + export class Airbase extends CustomMarker { #name: string = ""; + #chartData: AirbaseChartData = { + elevation: "", + ICAO: "", + TACAN: "", + runways: [] + }; #coalition: string = ""; + #hasChartDataBeenSet:boolean = false; #properties: string[] = []; #parkings: string[] = []; @@ -22,6 +49,10 @@ export class Airbase extends CustomMarker this.#name = options.name; } + chartDataHasBeenSet() { + return this.#hasChartDataBeenSet; + } + createIcon() { var icon = new DivIcon({ className: 'leaflet-airbase-marker', @@ -47,6 +78,11 @@ export class Airbase extends CustomMarker ( this.getElement()?.querySelector(".airbase-icon")).dataset.coalition = this.#coalition; } + getChartData() + { + return this.#chartData; + } + getCoalition() { return this.#coalition; @@ -62,6 +98,12 @@ export class Airbase extends CustomMarker return this.#name; } + setChartData( chartData:AirbaseChartData ) + { + this.#hasChartDataBeenSet = true; + this.#chartData = chartData; + } + setProperties(properties: string[]) { this.#properties = properties; @@ -81,4 +123,4 @@ export class Airbase extends CustomMarker { return this.#parkings; } -} +} \ No newline at end of file diff --git a/client/src/mission/missionhandler.ts b/client/src/mission/missionhandler.ts index facf7682..77e32f07 100644 --- a/client/src/mission/missionhandler.ts +++ b/client/src/mission/missionhandler.ts @@ -1,6 +1,6 @@ import { LatLng } from "leaflet"; import { getInfoPopup, getMap } from ".."; -import { Airbase } from "./airbase"; +import { Airbase, AirbaseChartData } from "./airbase"; import { Bullseye } from "./bullseye"; import { BLUE_COMMANDER, GAME_MASTER, NONE, RED_COMMANDER } from "../constants/constants"; import { refreshAll, setCommandModeOptions } from "../server/server"; @@ -66,11 +66,14 @@ export class MissionHandler { updateMission(data: MissionData) { if (data.mission) { + /* Set the mission theatre */ if (data.mission.theatre != this.#theatre) { this.#theatre = data.mission.theatre; getMap().setTheatre(this.#theatre); getInfoPopup().setText("Map set to " + this.#theatre); + + this.#loadAirbaseChartData(); } /* Set the date and time data */ @@ -231,4 +234,38 @@ export class MissionHandler { #onAirbaseClick(e: any) { getMap().showAirbaseContextMenu(e.originalEvent.x, e.originalEvent.y, e.latlng, e.sourceTarget); } + + + #loadAirbaseChartData() { + + if ( !this.#theatre ) { + return; + } + + fetch( '/api/airbases/' + this.#theatre , { + method: 'GET', + headers: { + 'Accept': '*/*', + 'Content-Type': 'application/json' + } + }) + .then( response => response.json() ) + .then( data => { + + for ( const [ id, airbase ] of Object.entries( this.#airbases ) ) { + + let airbaseName = airbase.getName(); + + if ( data.hasOwnProperty( airbaseName ) ) { + airbase.setChartData( data[ airbaseName ] ); + } else { + console.error( `Airbase "${airbaseName}" not found in chart data.` ); + } + } + + }); + + + } + } \ No newline at end of file diff --git a/client/views/other/contextmenus.ejs b/client/views/other/contextmenus.ejs index 8511626b..fe63ffbb 100644 --- a/client/views/other/contextmenus.ejs +++ b/client/views/other/contextmenus.ejs @@ -211,12 +211,23 @@

-
- -
-

Parking available:

-
+
+
ICAO
+
+
Coalition
+
+
Elevation
+
ft
+
TACAN
+
+
+ +

Runways

+
+
+ +