diff --git a/lib/aprsme_web/live/info_live/show.html.heex b/lib/aprsme_web/live/info_live/show.html.heex
index 1ec5970..d44f7be 100644
--- a/lib/aprsme_web/live/info_live/show.html.heex
+++ b/lib/aprsme_web/live/info_live/show.html.heex
@@ -23,25 +23,25 @@
<% {symbol_table_id, symbol_code} = AprsmeWeb.MapLive.PacketUtils.get_symbol_info(@packet) %>
<% symbol_table = if symbol_table_id in ["/", "\\", "]"], do: symbol_table_id, else: "/" %>
<% symbol_code = symbol_code || ">" %>
- <% symbol_table_num =
- case symbol_table do
- "/" -> 0
- "\\" -> 1
- "]" -> 2
- _ -> 0
- end %>
+ <% table_id =
+ if symbol_table == "/", do: "0", else: if(symbol_table == "]", do: "2", else: "1") %>
<% symbol_code_ord =
symbol_code
|> String.to_charlist()
|> List.first()
|> (fn c -> if is_integer(c), do: c, else: 63 end).() %>
- <% symbol_img = "/aprs-symbols/aprs-symbols-24-#{symbol_table_num}@2x.png" %>
- <% symbol_index = symbol_code_ord - 33 %>
-
+ <% index = symbol_code_ord - 33 %>
+ <% safe_index = max(0, min(index, 93)) %>
+ <% column = rem(safe_index, 16) %>
+ <% row = div(safe_index, 16) %>
+ <% x = -column * 128 %>
+ <% y = -row * 128 %>
+ <% symbol_img = "/aprs-symbols/aprs-symbols-128-#{table_id}@2x.png" %>
+
+
<% end %>
<.link navigate={~p"/packets/#{@callsign}"} class="ml-2 text-sm text-blue-600 hover:underline">
View packets
@@ -112,25 +112,27 @@
<% symbol_table =
if symbol_table_id in ["/", "\\", "]"], do: symbol_table_id, else: "/" %>
<% symbol_code = symbol_code || ">" %>
- <% symbol_table_num =
- case symbol_table do
- "/" -> 0
- "\\" -> 1
- "]" -> 2
- _ -> 0
- end %>
+ <% table_id =
+ if symbol_table == "/",
+ do: "0",
+ else: if(symbol_table == "]", do: "2", else: "1") %>
<% symbol_code_ord =
symbol_code
|> String.to_charlist()
|> List.first()
|> (fn c -> if is_integer(c), do: c, else: 63 end).() %>
- <% symbol_img = "/aprs-symbols/aprs-symbols-24-#{symbol_table_num}@2x.png" %>
- <% symbol_index = symbol_code_ord - 33 %>
-
+ <% index = symbol_code_ord - 33 %>
+ <% safe_index = max(0, min(index, 93)) %>
+ <% column = rem(safe_index, 16) %>
+ <% row = div(safe_index, 16) %>
+ <% x = -column * 128 %>
+ <% y = -row * 128 %>
+ <% symbol_img = "/aprs-symbols/aprs-symbols-128-#{table_id}@2x.png" %>
+
+
<% end %>
{neighbor.distance || ""} |
diff --git a/lib/aprsme_web/live/weather_live/callsign_view.html.heex b/lib/aprsme_web/live/weather_live/callsign_view.html.heex
index 28df6b7..7ab65f8 100644
--- a/lib/aprsme_web/live/weather_live/callsign_view.html.heex
+++ b/lib/aprsme_web/live/weather_live/callsign_view.html.heex
@@ -2,9 +2,40 @@
Weather for {@callsign}
+ <%= if @weather_packet do %>
+ <% {symbol_table_id, symbol_code} =
+ AprsmeWeb.MapLive.PacketUtils.get_symbol_info(@weather_packet) %>
+ <% symbol_table = if symbol_table_id in ["/", "\\", "]"], do: symbol_table_id, else: "/" %>
+ <% symbol_code = symbol_code || ">" %>
+ <% table_id =
+ if symbol_table == "/", do: "0", else: if(symbol_table == "]", do: "2", else: "1") %>
+ <% symbol_code_ord =
+ symbol_code
+ |> String.to_charlist()
+ |> List.first()
+ |> (fn c -> if is_integer(c), do: c, else: 63 end).() %>
+ <% index = symbol_code_ord - 33 %>
+ <% safe_index = max(0, min(index, 93)) %>
+ <% column = rem(safe_index, 16) %>
+ <% row = div(safe_index, 16) %>
+ <% x = -column * 128 %>
+ <% y = -row * 128 %>
+ <% symbol_img = "/aprs-symbols/aprs-symbols-128-#{table_id}@2x.png" %>
+
+
+ <% end %>
+ <.link
+ navigate={~p"/info/#{@callsign}"}
+ class="ml-2 text-blue-600 hover:underline text-base font-normal"
+ >
+ info
+
<.link
navigate={~p"/#{@callsign}"}
- class="ml-4 text-blue-600 hover:underline text-base font-normal"
+ class="ml-2 text-blue-600 hover:underline text-base font-normal"
>
view on map