feat: add native road direction arrows
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"use strict";
|
||||
|
||||
const assert = require("assert");
|
||||
const { buildCustomTurnLaneArrows, loadManifest, normalizeManeuver, supportedAssets, templateFor } = require("./lib/turn-lane-arrows");
|
||||
const { arrowRingsAt, buildCustomTurnLaneArrows, loadManifest, normalizeManeuver, supportedAssets, templateFor } = require("./lib/turn-lane-arrows");
|
||||
|
||||
function node(id, lon, lat) { return { id, lon, lat, tags: {} }; }
|
||||
function way(id, refs, tags) { return { id, refs, tags }; }
|
||||
@@ -35,6 +35,9 @@ assert.ok(Math.abs((Math.min(...shaftXs) + Math.max(...shaftXs)) / 2) < 1e-9, "t
|
||||
const rightXs = templateFor("right", manifest).flat().map(([x]) => x);
|
||||
assert.ok(Math.max(...rightXs) - Math.min(...rightXs) < 1.7, "source SVG scale stays comparable to existing lane arrows");
|
||||
assert.equal(templateFor("through;left;right", manifest).length, 5, "triple maneuver has a shared straight shaft and two branches");
|
||||
const nativePlacement = arrowRingsAt("left", [114, 30], [0, 1], manifest);
|
||||
assert.ok(nativePlacement.length > 0 && nativePlacement.every((ring) => ring.every((point) => Number.isFinite(point[0]) && Number.isFinite(point[1]))));
|
||||
assert.deepEqual(arrowRingsAt("slight_left", [114, 30], [0, 1], manifest), []);
|
||||
const disabled = buildCustomTurnLaneArrows(osm, { enabled: false, manifest });
|
||||
assert.equal(disabled.features.length, 0);
|
||||
assert.equal(disabled.diagnostics[0].reason, "disabled");
|
||||
|
||||
Reference in New Issue
Block a user