Fix: sort regional candidates by distance to IATA center

Without sender GPS (channel texts etc), the forward pass had no
anchor and just took candidates[0] — random order. Now regional
candidates are sorted by distKm to observer IATA center before
disambiguation. Closest to region center = default pick.
This commit is contained in:
you committed 2026-03-22 23:59:33 +00:00
1 parent 19c60e6872
commit c267e58418
3 files changed
+4 -1

No files matched your search

+1
View File
@@ -106,6 +106,7 @@ window.HopResolver = (function() {
return { ...c, regional: r ? r.near : false, filterMethod: r ? r.method : 'none', distKm: r ? r.distKm : undefined };
});
const regional = checked.filter(c => c.regional);
regional.sort((a, b) => (a.distKm || 9999) - (b.distKm || 9999));
const candidates = regional.length > 0 ? regional : checked;
const globalFallback = regional.length === 0 && checked.length > 0 && packetIata != null;
+1 -1
View File
@@ -82,7 +82,7 @@
<script src="vendor/qrcode.js"></script>
<script src="roles.js?v=1774325000"></script>
<script src="region-filter.js?v=1774325000"></script>
<script src="hop-resolver.js?v=1774223254"></script>
<script src="hop-resolver.js?v=1774223973"></script>
<script src="hop-display.js?v=1774221932"></script>
<script src="app.js?v=1774126708"></script>
<script src="home.js?v=1774042199"></script>
+2
View File
@@ -2097,6 +2097,8 @@ app.get('/api/resolve-hops', (req, res) => {
return { ...c, regional: r.near, filterMethod: r.method, distKm: r.distKm };
});
const regional = checked.filter(c => c.regional);
// Sort by distance to region center — closest first
regional.sort((a, b) => (a.distKm || 9999) - (b.distKm || 9999));
const candidates = regional.length > 0 ? regional : checked;
const globalFallback = regional.length === 0 && checked.length > 0;