hf-fast / src /lib /icao.ts
hlarcher's picture
hlarcher HF Staff
refactor: improve layout and styling for bandwidth test interface. Handle auto-stop
02d3589 unverified
raw
history blame
8.77 kB
interface AirportDetails {
city: string;
country: string; // ISO 3166-1 alpha-2 code
}
type MajorAirportIATAsWithCountry = {
[iataCode: string]: AirportDetails;
};
export const majorAirportIATAs: MajorAirportIATAsWithCountry = {
// USA
LAX: { city: 'Los Angeles', country: 'US' },
JFK: { city: 'New York', country: 'US' },
ORD: { city: 'Chicago', country: 'US' },
ATL: { city: 'Atlanta', country: 'US' },
DFW: { city: 'Dallas', country: 'US' },
DEN: { city: 'Denver', country: 'US' },
SFO: { city: 'San Francisco', country: 'US' },
SEA: { city: 'Seattle', country: 'US' },
MIA: { city: 'Miami', country: 'US' },
LAS: { city: 'Las Vegas', country: 'US' },
MCO: { city: 'Orlando', country: 'US' },
EWR: { city: 'Newark', country: 'US' },
CLT: { city: 'Charlotte', country: 'US' },
PHX: { city: 'Phoenix', country: 'US' },
IAH: { city: 'Houston', country: 'US' },
BOS: { city: 'Boston', country: 'US' },
MSP: { city: 'Minneapolis', country: 'US' },
DTW: { city: 'Detroit', country: 'US' },
PHL: { city: 'Philadelphia', country: 'US' },
LGA: { city: 'New York', country: 'US' },
BWI: { city: 'Baltimore', country: 'US' },
SLC: { city: 'Salt Lake City', country: 'US' },
IAD: { city: 'Washington D.C.', country: 'US' },
DCA: { city: 'Washington D.C.', country: 'US' },
SAN: { city: 'San Diego', country: 'US' },
TPA: { city: 'Tampa', country: 'US' },
HNL: { city: 'Honolulu', country: 'US' },
// Canada
YYZ: { city: 'Toronto', country: 'CA' },
YVR: { city: 'Vancouver', country: 'CA' },
YUL: { city: 'Montreal', country: 'CA' },
YYC: { city: 'Calgary', country: 'CA' },
YEG: { city: 'Edmonton', country: 'CA' },
YOW: { city: 'Ottawa', country: 'CA' },
YWG: { city: 'Winnipeg', country: 'CA' },
YHZ: { city: 'Halifax', country: 'CA' },
// United Kingdom
LHR: { city: 'London', country: 'GB' },
LGW: { city: 'London', country: 'GB' },
STN: { city: 'London', country: 'GB' },
LTN: { city: 'London', country: 'GB' },
MAN: { city: 'Manchester', country: 'GB' },
BHX: { city: 'Birmingham', country: 'GB' },
EDI: { city: 'Edinburgh', country: 'GB' },
GLA: { city: 'Glasgow', country: 'GB' },
// France
CDG: { city: 'Paris', country: 'FR' },
ORY: { city: 'Paris', country: 'FR' },
NCE: { city: 'Nice', country: 'FR' },
LYS: { city: 'Lyon', country: 'FR' },
MRS: { city: 'Marseille', country: 'FR' },
TLS: { city: 'Toulouse', country: 'FR' },
NTE: { city: 'Nantes', country: 'FR' },
BOD: { city: 'Bordeaux', country: 'FR' },
// Germany
FRA: { city: 'Frankfurt', country: 'DE' },
MUC: { city: 'Munich', country: 'DE' },
BER: { city: 'Berlin', country: 'DE' },
DUS: { city: 'Düsseldorf', country: 'DE' },
HAM: { city: 'Hamburg', country: 'DE' },
CGN: { city: 'Cologne', country: 'DE' },
STR: { city: 'Stuttgart', country: 'DE' },
// China (Mainland)
PEK: { city: 'Beijing', country: 'CN' },
PKX: { city: 'Beijing', country: 'CN' },
PVG: { city: 'Shanghai', country: 'CN' },
SHA: { city: 'Shanghai', country: 'CN' },
CAN: { city: 'Guangzhou', country: 'CN' },
CTU: { city: 'Chengdu', country: 'CN' }, // Shuangliu
TFU: { city: 'Chengdu', country: 'CN' }, // Tianfu
SZX: { city: 'Shenzhen', country: 'CN' },
CKG: { city: 'Chongqing', country: 'CN' },
WUH: { city: 'Wuhan', country: 'CN' },
XIY: { city: "Xi'an", country: 'CN' },
HGH: { city: 'Hangzhou', country: 'CN' },
// India
DEL: { city: 'Delhi', country: 'IN' },
BOM: { city: 'Mumbai', country: 'IN' },
BLR: { city: 'Bengaluru', country: 'IN' },
MAA: { city: 'Chennai', country: 'IN' },
CCU: { city: 'Kolkata', country: 'IN' },
HYD: { city: 'Hyderabad', country: 'IN' },
// Brazil
GRU: { city: 'Sao Paulo', country: 'BR' },
GIG: { city: 'Rio de Janeiro', country: 'BR' },
BSB: { city: 'Brasilia', country: 'BR' },
CNF: { city: 'Belo Horizonte', country: 'BR' },
SSA: { city: 'Salvador', country: 'BR' },
FOR: { city: 'Fortaleza', country: 'BR' },
POA: { city: 'Porto Alegre', country: 'BR' },
REC: { city: 'Recife', country: 'BR' },
CWB: { city: 'Curitiba', country: 'BR' },
// Australia
SYD: { city: 'Sydney', country: 'AU' },
MEL: { city: 'Melbourne', country: 'AU' },
BNE: { city: 'Brisbane', country: 'AU' },
PER: { city: 'Perth', country: 'AU' },
ADL: { city: 'Adelaide', country: 'AU' },
CBR: { city: 'Canberra', country: 'AU' },
// Japan
NRT: { city: 'Tokyo', country: 'JP' }, // Narita
HND: { city: 'Tokyo', country: 'JP' }, // Haneda
KIX: { city: 'Osaka', country: 'JP' }, // Kansai
ITM: { city: 'Osaka', country: 'JP' }, // Itami
CTS: { city: 'Sapporo', country: 'JP' }, // New Chitose
FUK: { city: 'Fukuoka', country: 'JP' },
OKA: { city: 'Okinawa', country: 'JP' }, // Naha
NGO: { city: 'Nagoya', country: 'JP' }, // Chubu Centrair
// South Africa
JNB: { city: 'Johannesburg', country: 'ZA' },
CPT: { city: 'Cape Town', country: 'ZA' },
DUR: { city: 'Durban', country: 'ZA' }, // King Shaka
// Netherlands
AMS: { city: 'Amsterdam', country: 'NL' },
// Spain
MAD: { city: 'Madrid', country: 'ES' },
BCN: { city: 'Barcelona', country: 'ES' },
PMI: { city: 'Palma de Mallorca', country: 'ES' },
AGP: { city: 'Malaga', country: 'ES' },
VLC: { city: 'Valencia', country: 'ES' },
// Italy
FCO: { city: 'Rome', country: 'IT' }, // Fiumicino
MXP: { city: 'Milan', country: 'IT' }, // Malpensa
LIN: { city: 'Milan', country: 'IT' }, // Linate
BLQ: { city: 'Bologna', country: 'IT' },
NAP: { city: 'Naples', country: 'IT' },
VCE: { city: 'Venice', country: 'IT' }, // Marco Polo
PSA: { city: 'Pisa', country: 'IT' },
// Russia
SVO: { city: 'Moscow', country: 'RU' }, // Sheremetyevo
DME: { city: 'Moscow', country: 'RU' }, // Domodedovo
VKO: { city: 'Moscow', country: 'RU' }, // Vnukovo
LED: { city: 'Saint Petersburg', country: 'RU' }, // Pulkovo
AER: { city: 'Sochi', country: 'RU' },
// United Arab Emirates
DXB: { city: 'Dubai', country: 'AE' },
AUH: { city: 'Abu Dhabi', country: 'AE' },
// Singapore
SIN: { city: 'Singapore', country: 'SG' },
// Hong Kong
HKG: { city: 'Hong Kong', country: 'HK' },
// South Korea
ICN: { city: 'Seoul', country: 'KR' }, // Incheon
GMP: { city: 'Seoul', country: 'KR' }, // Gimpo
CJU: { city: 'Jeju', country: 'KR' },
// Turkey
IST: { city: 'Istanbul', country: 'TR' }, // Istanbul Airport
SAW: { city: 'Istanbul', country: 'TR' }, // Sabiha Gökçen
AYT: { city: 'Antalya', country: 'TR' },
ESB: { city: 'Ankara', country: 'TR' },
ADB: { city: 'Izmir', country: 'TR' },
// Switzerland
ZRH: { city: 'Zurich', country: 'CH' },
GVA: { city: 'Geneva', country: 'CH' },
// Argentina
EZE: { city: 'Buenos Aires', country: 'AR' }, // Ezeiza
AEP: { city: 'Buenos Aires', country: 'AR' }, // Aeroparque
// Mexico
MEX: { city: 'Mexico City', country: 'MX' },
CUN: { city: 'Cancun', country: 'MX' },
GDL: { city: 'Guadalajara', country: 'MX' },
MTY: { city: 'Monterrey', country: 'MX' },
// Thailand
BKK: { city: 'Bangkok', country: 'TH' }, // Suvarnabhumi
DMK: { city: 'Bangkok', country: 'TH' }, // Don Mueang
HKT: { city: 'Phuket', country: 'TH' },
CNX: { city: 'Chiang Mai', country: 'TH' },
// Malaysia
KUL: { city: 'Kuala Lumpur', country: 'MY' },
// Ireland
DUB: { city: 'Dublin', country: 'IE' },
SNN: { city: 'Shannon', country: 'IE' },
// Portugal
LIS: { city: 'Lisbon', country: 'PT' },
OPO: { city: 'Porto', country: 'PT' },
FAO: { city: 'Faro', country: 'PT' },
// New Zealand
AKL: { city: 'Auckland', country: 'NZ' },
CHC: { city: 'Christchurch', country: 'NZ' },
WLG: { city: 'Wellington', country: 'NZ' },
// Qatar
DOH: { city: 'Doha', country: 'QA' },
// Saudi Arabia
JED: { city: 'Jeddah', country: 'SA' },
RUH: { city: 'Riyadh', country: 'SA' },
DMM: { city: 'Dammam', country: 'SA' },
// Egypt
CAI: { city: 'Cairo', country: 'EG' },
// Nigeria
LOS: { city: 'Lagos', country: 'NG' },
ABV: { city: 'Abuja', country: 'NG' },
// Kenya
NBO: { city: 'Nairobi', country: 'KE' }, // Jomo Kenyatta
// Ethiopia
ADD: { city: 'Addis Ababa', country: 'ET' },
// Colombia
BOG: { city: 'Bogota', country: 'CO' },
MDE: { city: 'Medellin', country: 'CO' }, // José María Córdova
// Chile
SCL: { city: 'Santiago', country: 'CL' },
// Peru
LIM: { city: 'Lima', country: 'PE' },
// Austria
VIE: { city: 'Vienna', country: 'AT' },
// Belgium
BRU: { city: 'Brussels', country: 'BE' },
// Czech Republic
PRG: { city: 'Prague', country: 'CZ' },
// Denmark
CPH: { city: 'Copenhagen', country: 'DK' },
// Finland
HEL: { city: 'Helsinki', country: 'FI' },
// Greece
ATH: { city: 'Athens', country: 'GR' },
// Hungary
BUD: { city: 'Budapest', country: 'HU' },
// Norway
OSL: { city: 'Oslo', country: 'NO' },
// Poland
WAW: { city: 'Warsaw', country: 'PL' }, // Chopin
KRK: { city: 'Krakow', country: 'PL' },
// Sweden
ARN: { city: 'Stockholm', country: 'SE' } // Arlanda
};