From 43525196141d7d82ccfd6aa0ad0ec444fe059008 Mon Sep 17 00:00:00 2001 From: Dustin Carlino Date: Thu, 16 May 2024 16:44:15 +0100 Subject: [PATCH] Indicate the side of road for pavement width --- .../browse/layers/lines/PavementWidths.svelte | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/src/lib/browse/layers/lines/PavementWidths.svelte b/src/lib/browse/layers/lines/PavementWidths.svelte index f11aff74..d563fd7b 100644 --- a/src/lib/browse/layers/lines/PavementWidths.svelte +++ b/src/lib/browse/layers/lines/PavementWidths.svelte @@ -20,6 +20,32 @@ let limits = [0, 2, 4, 6, 8, 13]; let show = false; + + function direction(angle: number): string { + // 0 means north and the orientation is weird; verify visually + if (angle < 45 || angle > 315) { + return "N"; + } else if (angle < 90) { + return "NE"; + } else if (angle < 135) { + return "E"; + } else if (angle < 180) { + return "SE"; + } else if (angle < 225) { + return "S"; + } else if (angle < 270) { + return "SW"; + } else if (angle < 315) { + return "W"; + } else { + return "NW"; + } + } + + // Returns HTML + function directionLabel(angle: number): string { + return `${direction(angle)} `; + } @@ -82,27 +108,33 @@ visibility: show ? "visible" : "none", }} > - + {#if props.left_average}

- Left side of the road: {props.left_average} + {@html directionLabel(props.angle - 90)} side of the road: + {props.left_average} m average, {props.left_minimum} m minimum

{:else} -

Left side of the road: no pavement

+

+ {@html directionLabel(props.angle - 90)} side of the road: no pavement +

{/if} {#if props.right_average}

- Right side of the road: {props.right_average} + {@html directionLabel(props.angle + 90)} side of the road: + {props.right_average} m average, {props.right_minimum} m minimum

{:else} -

Right side of the road: no pavement

+

+ {@html directionLabel(props.angle + 90)} side of the road: no pavement +

{/if}