Skip to content

Commit 37930dc

Browse files
committed
fix: duplicate turbulence sigmet
1 parent b56bb82 commit 37930dc

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

src/services/aviationWeather.ts

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import axios from "axios";
22
import type { GeometryObject } from "geojson";
3+
import uniqBy from "lodash/uniqBy";
34

45
export interface TAFReport {
56
raw: string;
@@ -248,23 +249,26 @@ export async function getAviationAlerts({
248249
features: Omit<AviationAlertFeature, "id">[];
249250
}>("/api/aviationalerts", { params: { lat, lon } });
250251

251-
return response.data.features
252-
.filter((feature) => {
253-
if (
254-
"altitudeLow1" in feature.properties &&
255-
feature.properties.altitudeLow1 > 3000
256-
)
257-
return false;
258-
259-
return true;
260-
})
261-
.map(
262-
(feature) =>
263-
({
264-
...feature,
265-
id: generateFeatureId(feature),
266-
}) as AviationAlertFeature,
267-
);
252+
return uniqBy(
253+
response.data.features
254+
.filter((feature) => {
255+
if (
256+
"altitudeLow1" in feature.properties &&
257+
feature.properties.altitudeLow1 > 3000
258+
)
259+
return false;
260+
261+
return true;
262+
})
263+
.map(
264+
(feature) =>
265+
({
266+
...feature,
267+
id: generateFeatureId(feature),
268+
}) as AviationAlertFeature,
269+
),
270+
(feature) => feature.id,
271+
);
268272
}
269273

270274
function generateFeatureId(feature: Omit<AviationAlertFeature, "id">): string {
@@ -275,7 +279,7 @@ function generateFeatureId(feature: Omit<AviationAlertFeature, "id">): string {
275279
}
276280

277281
if ("airSigmetType" in p) {
278-
return `sigmet-${p.icaoId}-${p.alphaChar}-${p.hazard}-${p.validTimeFrom}`;
282+
return `sigmet-${p.alphaChar}-${p.hazard}-${p.validTimeFrom}`;
279283
}
280284

281285
if ("data" in p && p.data === "ISIGMET") {

0 commit comments

Comments
 (0)