Fixing loading in docker environment, updated markers
This commit is contained in:
@@ -31,8 +31,7 @@ export default function AirportLayer({ setAirport }: { setAirport: (airport: Air
|
||||
getAirports({
|
||||
bounds: boundsParam,
|
||||
metars: true,
|
||||
categories: [AirportCategory.SMALL, AirportCategory.MEDIUM, AirportCategory.LARGE],
|
||||
limit: 200
|
||||
categories: [AirportCategory.HELIPORT, AirportCategory.SMALL, AirportCategory.MEDIUM, AirportCategory.LARGE]
|
||||
})
|
||||
.then((response) => {
|
||||
setAirports(response.data);
|
||||
@@ -53,9 +52,39 @@ export default function AirportLayer({ setAirport }: { setAirport: (airport: Air
|
||||
}
|
||||
}, [map]);
|
||||
|
||||
const categoryOrder: { [key in AirportCategory]?: number } = {
|
||||
[AirportCategory.LARGE]: 3,
|
||||
[AirportCategory.MEDIUM]: 2,
|
||||
[AirportCategory.SMALL]: 1,
|
||||
[AirportCategory.HELIPORT]: 0
|
||||
};
|
||||
|
||||
const sortedAirports = airports.slice().sort((a, b) => {
|
||||
// Compare by airport category first.
|
||||
const categoryA = categoryOrder[a.category] ?? 4;
|
||||
const categoryB = categoryOrder[b.category] ?? 4;
|
||||
if (categoryA !== categoryB) {
|
||||
return categoryA - categoryB;
|
||||
}
|
||||
|
||||
// Then compare by flight category if available.
|
||||
// Assuming that latest_metar.flight_category is a string and "UNKN" needs to come last.
|
||||
const fcA = a.latest_metar?.flight_category ?? 'UNKN';
|
||||
const fcB = b.latest_metar?.flight_category ?? 'UNKN';
|
||||
|
||||
if (fcA === 'UNKN' && fcB !== 'UNKN') return 1;
|
||||
if (fcB === 'UNKN' && fcA !== 'UNKN') return -1;
|
||||
|
||||
// If both flight categories are not "UNKN", do a simple alphabetical comparison.
|
||||
// (You may wish to customize this logic based on the actual flight category values.)
|
||||
if (fcA < fcB) return -1;
|
||||
if (fcA > fcB) return 1;
|
||||
return 0;
|
||||
});
|
||||
|
||||
return (
|
||||
<>
|
||||
{airports.map((airport, index) => {
|
||||
{sortedAirports.map((airport, index) => {
|
||||
return <AirportMarker airport={airport} index={index} setAirport={setAirport} />;
|
||||
})}
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user