From 2f3500515a2ce6800a420da79e26d62b45c76ac4 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 26 Apr 2026 09:01:59 -0500 Subject: [PATCH] =?UTF-8?q?feat(rover):=20overlay=20LOS=20line=20+=20label?= =?UTF-8?q?=20profile=20rover=E2=86=92station=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/microwaveprop_web/live/rover_live.ex | 28 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/microwaveprop_web/live/rover_live.ex b/lib/microwaveprop_web/live/rover_live.ex index 1defd26e..d0167da6 100644 --- a/lib/microwaveprop_web/live/rover_live.ex +++ b/lib/microwaveprop_web/live/rover_live.ex @@ -773,12 +773,17 @@ defmodule MicrowavepropWeb.RoverLive do fill = "0,60 " <> line <> " 240,60" + los_y_start = Float.round(60.0 - (first.elev - min_e) / span * 50.0, 2) + los_y_end = Float.round(60.0 - (last.elev - min_e) / span * 50.0, 2) + %{ line: line, fill: fill, start_elev_m: first.elev, end_elev_m: last.elev, - total_km: total_km + total_km: total_km, + los_y_start: los_y_start, + los_y_end: los_y_end } end @@ -1150,7 +1155,7 @@ defmodule MicrowavepropWeb.RoverLive do
rover {elev_ft(link.rover_elev_m)} ยท max obstacle {elev_ft(link.max_obstacle_m)}
- <.profile_svg :if={link.profile_svg} svg={link.profile_svg} /> + <.profile_svg :if={link.profile_svg} svg={link.profile_svg} callsign={link.callsign} /> @@ -1158,17 +1163,28 @@ defmodule MicrowavepropWeb.RoverLive do end attr :svg, :map, required: true + attr :callsign, :string, required: true defp profile_svg(assigns) do ~H""" + -
- {elev_ft(@svg.start_elev_m)} - {km_to_mi(@svg.total_km)} mi - {elev_ft(@svg.end_elev_m)} +
+ rover {elev_ft(@svg.start_elev_m)} + {km_to_mi(@svg.total_km)} mi + {@callsign} {elev_ft(@svg.end_elev_m)}
""" end