mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-06 11:24:00 +00:00
fix(directions): report truncation only when a maneuver was actually omitted
This commit is contained in:
1 parent
6dd4d0156f
commit
a140c52f84
4 files changed
+32
-1
No files matched your search
@@ -15,6 +15,8 @@
|
|||||||
the five borough cores load and `CCTV_NYC_MAX_SOURCES` changes the cap. The catalog-wide ceiling is
|
the five borough cores load and `CCTV_NYC_MAX_SOURCES` changes the cap. The catalog-wide ceiling is
|
||||||
unchanged; extra cameras share it round-robin with the other packs.
|
unchanged; extra cameras share it round-robin with the other packs.
|
||||||
|
|
||||||
|
- Direction instruction limits report complete routes honestly and retain a final roundabout exit within the limit.
|
||||||
|
|
||||||
- Treat explicitly current, complete empty vessel coverage as a successful update,
|
- Treat explicitly current, complete empty vessel coverage as a successful update,
|
||||||
clearing obsolete contacts while retaining stale or incomplete snapshots.
|
clearing obsolete contacts while retaining stale or incomplete snapshots.
|
||||||
|
|
||||||
|
|||||||
@@ -5310,3 +5310,8 @@ datacenters, dams and the Nepal locator retain that shared credit while displaye
|
|||||||
|
|
||||||
Military fragments stitch by source identity. Different mapped parcels merge only
|
Military fragments stitch by source identity. Different mapped parcels merge only
|
||||||
when their footprints touch or contain one another, never across a seam tolerance gap.
|
when their footprints touch or contain one another, never across a seam tolerance gap.
|
||||||
|
|
||||||
|
|
||||||
|
### fix(directions): report truncation only when a maneuver was actually omitted
|
||||||
|
|
||||||
|
Keep processing foldable exits after the cap and report truncation only when the next admissible independent instruction would exceed it. The returned list remains bounded to 200 steps.
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import test from 'node:test';
|
||||||
|
import assert from 'node:assert/strict';
|
||||||
|
import { normalizeOsrmSteps, ROUTE_STEPS_MAX } from './routeSteps.js';
|
||||||
|
const step = (type) => ({
|
||||||
|
maneuver: { type, location: [10, 20] },
|
||||||
|
distance: 10,
|
||||||
|
duration: 1,
|
||||||
|
});
|
||||||
|
test('exact-cap routes remain complete and boundary exits retain their distance', () => {
|
||||||
|
const steps = Array.from({ length: ROUTE_STEPS_MAX }, () => step('turn'));
|
||||||
|
assert.equal(normalizeOsrmSteps({ legs: [{ steps }] }).truncated, false);
|
||||||
|
assert.equal(
|
||||||
|
normalizeOsrmSteps({ legs: [{ steps: [...steps, step('turn')] }] })
|
||||||
|
.truncated,
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
steps[steps.length - 1] = step('roundabout');
|
||||||
|
const result = normalizeOsrmSteps({
|
||||||
|
legs: [{ steps: [...steps, step('exit roundabout')] }],
|
||||||
|
});
|
||||||
|
assert.equal(result.truncated, false);
|
||||||
|
assert.equal(result.steps.length, ROUTE_STEPS_MAX);
|
||||||
|
assert.equal(result.steps.at(-1).distanceM, 20);
|
||||||
|
});
|
||||||
@@ -185,9 +185,9 @@ export function normalizeOsrmSteps(route) {
|
|||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (out.length >= ROUTE_STEPS_MAX) return { steps: out, truncated: true };
|
||||||
step.instruction = instructionFor(step);
|
step.instruction = instructionFor(step);
|
||||||
out.push(step);
|
out.push(step);
|
||||||
if (out.length >= ROUTE_STEPS_MAX) return { steps: out, truncated: true };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return { steps: out, truncated: false };
|
return { steps: out, truncated: false };
|
||||||
|
|||||||
Reference in new issue
Block a user