diff --git a/server/images/maps/radar-stretched-overlay.webp b/server/images/maps/radar-stretched-overlay.webp new file mode 100644 index 0000000..9387697 Binary files /dev/null and b/server/images/maps/radar-stretched-overlay.webp differ diff --git a/server/images/maps/radar-stretched.webp b/server/images/maps/radar-stretched.webp new file mode 100644 index 0000000..f419643 Binary files /dev/null and b/server/images/maps/radar-stretched.webp differ diff --git a/server/images/maps/radar/map-0-0.webp b/server/images/maps/radar/map-0-0.webp new file mode 100644 index 0000000..357d0b9 Binary files /dev/null and b/server/images/maps/radar/map-0-0.webp differ diff --git a/server/images/maps/radar/map-0-1.webp b/server/images/maps/radar/map-0-1.webp new file mode 100644 index 0000000..c36a67d Binary files /dev/null and b/server/images/maps/radar/map-0-1.webp differ diff --git a/server/images/maps/radar/map-0-2.webp b/server/images/maps/radar/map-0-2.webp new file mode 100644 index 0000000..ee02ce3 Binary files /dev/null and b/server/images/maps/radar/map-0-2.webp differ diff --git a/server/images/maps/radar/map-0-3.webp b/server/images/maps/radar/map-0-3.webp new file mode 100644 index 0000000..e614fd2 Binary files /dev/null and b/server/images/maps/radar/map-0-3.webp differ diff --git a/server/images/maps/radar/map-0-4.webp b/server/images/maps/radar/map-0-4.webp new file mode 100644 index 0000000..192fe27 Binary files /dev/null and b/server/images/maps/radar/map-0-4.webp differ diff --git a/server/images/maps/radar/map-0-5.webp b/server/images/maps/radar/map-0-5.webp new file mode 100644 index 0000000..d653896 Binary files /dev/null and b/server/images/maps/radar/map-0-5.webp differ diff --git a/server/images/maps/radar/map-0-6.webp b/server/images/maps/radar/map-0-6.webp new file mode 100644 index 0000000..427c734 Binary files /dev/null and b/server/images/maps/radar/map-0-6.webp differ diff --git a/server/images/maps/radar/map-0-7.webp b/server/images/maps/radar/map-0-7.webp new file mode 100644 index 0000000..eef77c3 Binary files /dev/null and b/server/images/maps/radar/map-0-7.webp differ diff --git a/server/images/maps/radar/map-0-8.webp b/server/images/maps/radar/map-0-8.webp new file mode 100644 index 0000000..f0bbaba Binary files /dev/null and b/server/images/maps/radar/map-0-8.webp differ diff --git a/server/images/maps/radar/map-0-9.webp b/server/images/maps/radar/map-0-9.webp new file mode 100644 index 0000000..cb2b1d8 Binary files /dev/null and b/server/images/maps/radar/map-0-9.webp differ diff --git a/server/images/maps/radar/map-1-0.webp b/server/images/maps/radar/map-1-0.webp new file mode 100644 index 0000000..f0a053a Binary files /dev/null and b/server/images/maps/radar/map-1-0.webp differ diff --git a/server/images/maps/radar/map-1-1.webp b/server/images/maps/radar/map-1-1.webp new file mode 100644 index 0000000..ff717af Binary files /dev/null and b/server/images/maps/radar/map-1-1.webp differ diff --git a/server/images/maps/radar/map-1-2.webp b/server/images/maps/radar/map-1-2.webp new file mode 100644 index 0000000..520f67b Binary files /dev/null and b/server/images/maps/radar/map-1-2.webp differ diff --git a/server/images/maps/radar/map-1-3.webp b/server/images/maps/radar/map-1-3.webp new file mode 100644 index 0000000..823281f Binary files /dev/null and b/server/images/maps/radar/map-1-3.webp differ diff --git a/server/images/maps/radar/map-1-4.webp b/server/images/maps/radar/map-1-4.webp new file mode 100644 index 0000000..31c8c14 Binary files /dev/null and b/server/images/maps/radar/map-1-4.webp differ diff --git a/server/images/maps/radar/map-1-5.webp b/server/images/maps/radar/map-1-5.webp new file mode 100644 index 0000000..9817763 Binary files /dev/null and b/server/images/maps/radar/map-1-5.webp differ diff --git a/server/images/maps/radar/map-1-6.webp b/server/images/maps/radar/map-1-6.webp new file mode 100644 index 0000000..d7bf662 Binary files /dev/null and b/server/images/maps/radar/map-1-6.webp differ diff --git a/server/images/maps/radar/map-1-7.webp b/server/images/maps/radar/map-1-7.webp new file mode 100644 index 0000000..4ee7e64 Binary files /dev/null and b/server/images/maps/radar/map-1-7.webp differ diff --git a/server/images/maps/radar/map-1-8.webp b/server/images/maps/radar/map-1-8.webp new file mode 100644 index 0000000..413a2db Binary files /dev/null and b/server/images/maps/radar/map-1-8.webp differ diff --git a/server/images/maps/radar/map-1-9.webp b/server/images/maps/radar/map-1-9.webp new file mode 100644 index 0000000..a035f55 Binary files /dev/null and b/server/images/maps/radar/map-1-9.webp differ diff --git a/server/images/maps/radar/map-10-0.webp b/server/images/maps/radar/map-10-0.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-10-0.webp differ diff --git a/server/images/maps/radar/map-10-1.webp b/server/images/maps/radar/map-10-1.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-10-1.webp differ diff --git a/server/images/maps/radar/map-10-2.webp b/server/images/maps/radar/map-10-2.webp new file mode 100644 index 0000000..e7747aa Binary files /dev/null and b/server/images/maps/radar/map-10-2.webp differ diff --git a/server/images/maps/radar/map-10-3.webp b/server/images/maps/radar/map-10-3.webp new file mode 100644 index 0000000..f8512f7 Binary files /dev/null and b/server/images/maps/radar/map-10-3.webp differ diff --git a/server/images/maps/radar/map-10-4.webp b/server/images/maps/radar/map-10-4.webp new file mode 100644 index 0000000..61d2725 Binary files /dev/null and b/server/images/maps/radar/map-10-4.webp differ diff --git a/server/images/maps/radar/map-10-5.webp b/server/images/maps/radar/map-10-5.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-10-5.webp differ diff --git a/server/images/maps/radar/map-10-6.webp b/server/images/maps/radar/map-10-6.webp new file mode 100644 index 0000000..440d2ef Binary files /dev/null and b/server/images/maps/radar/map-10-6.webp differ diff --git a/server/images/maps/radar/map-10-7.webp b/server/images/maps/radar/map-10-7.webp new file mode 100644 index 0000000..0676178 Binary files /dev/null and b/server/images/maps/radar/map-10-7.webp differ diff --git a/server/images/maps/radar/map-10-8.webp b/server/images/maps/radar/map-10-8.webp new file mode 100644 index 0000000..ff86482 Binary files /dev/null and b/server/images/maps/radar/map-10-8.webp differ diff --git a/server/images/maps/radar/map-10-9.webp b/server/images/maps/radar/map-10-9.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-10-9.webp differ diff --git a/server/images/maps/radar/map-2-0.webp b/server/images/maps/radar/map-2-0.webp new file mode 100644 index 0000000..1e0d77b Binary files /dev/null and b/server/images/maps/radar/map-2-0.webp differ diff --git a/server/images/maps/radar/map-2-1.webp b/server/images/maps/radar/map-2-1.webp new file mode 100644 index 0000000..7c9cacc Binary files /dev/null and b/server/images/maps/radar/map-2-1.webp differ diff --git a/server/images/maps/radar/map-2-2.webp b/server/images/maps/radar/map-2-2.webp new file mode 100644 index 0000000..4b539f0 Binary files /dev/null and b/server/images/maps/radar/map-2-2.webp differ diff --git a/server/images/maps/radar/map-2-3.webp b/server/images/maps/radar/map-2-3.webp new file mode 100644 index 0000000..d368c10 Binary files /dev/null and b/server/images/maps/radar/map-2-3.webp differ diff --git a/server/images/maps/radar/map-2-4.webp b/server/images/maps/radar/map-2-4.webp new file mode 100644 index 0000000..6c34ad8 Binary files /dev/null and b/server/images/maps/radar/map-2-4.webp differ diff --git a/server/images/maps/radar/map-2-5.webp b/server/images/maps/radar/map-2-5.webp new file mode 100644 index 0000000..ca13442 Binary files /dev/null and b/server/images/maps/radar/map-2-5.webp differ diff --git a/server/images/maps/radar/map-2-6.webp b/server/images/maps/radar/map-2-6.webp new file mode 100644 index 0000000..570c314 Binary files /dev/null and b/server/images/maps/radar/map-2-6.webp differ diff --git a/server/images/maps/radar/map-2-7.webp b/server/images/maps/radar/map-2-7.webp new file mode 100644 index 0000000..1d73804 Binary files /dev/null and b/server/images/maps/radar/map-2-7.webp differ diff --git a/server/images/maps/radar/map-2-8.webp b/server/images/maps/radar/map-2-8.webp new file mode 100644 index 0000000..995242d Binary files /dev/null and b/server/images/maps/radar/map-2-8.webp differ diff --git a/server/images/maps/radar/map-2-9.webp b/server/images/maps/radar/map-2-9.webp new file mode 100644 index 0000000..36a351a Binary files /dev/null and b/server/images/maps/radar/map-2-9.webp differ diff --git a/server/images/maps/radar/map-3-0.webp b/server/images/maps/radar/map-3-0.webp new file mode 100644 index 0000000..131530a Binary files /dev/null and b/server/images/maps/radar/map-3-0.webp differ diff --git a/server/images/maps/radar/map-3-1.webp b/server/images/maps/radar/map-3-1.webp new file mode 100644 index 0000000..39dd1f0 Binary files /dev/null and b/server/images/maps/radar/map-3-1.webp differ diff --git a/server/images/maps/radar/map-3-2.webp b/server/images/maps/radar/map-3-2.webp new file mode 100644 index 0000000..57ee4c5 Binary files /dev/null and b/server/images/maps/radar/map-3-2.webp differ diff --git a/server/images/maps/radar/map-3-3.webp b/server/images/maps/radar/map-3-3.webp new file mode 100644 index 0000000..5c3e589 Binary files /dev/null and b/server/images/maps/radar/map-3-3.webp differ diff --git a/server/images/maps/radar/map-3-4.webp b/server/images/maps/radar/map-3-4.webp new file mode 100644 index 0000000..168dd60 Binary files /dev/null and b/server/images/maps/radar/map-3-4.webp differ diff --git a/server/images/maps/radar/map-3-5.webp b/server/images/maps/radar/map-3-5.webp new file mode 100644 index 0000000..ff38c3c Binary files /dev/null and b/server/images/maps/radar/map-3-5.webp differ diff --git a/server/images/maps/radar/map-3-6.webp b/server/images/maps/radar/map-3-6.webp new file mode 100644 index 0000000..2155d89 Binary files /dev/null and b/server/images/maps/radar/map-3-6.webp differ diff --git a/server/images/maps/radar/map-3-7.webp b/server/images/maps/radar/map-3-7.webp new file mode 100644 index 0000000..b96ec54 Binary files /dev/null and b/server/images/maps/radar/map-3-7.webp differ diff --git a/server/images/maps/radar/map-3-8.webp b/server/images/maps/radar/map-3-8.webp new file mode 100644 index 0000000..2cd76ec Binary files /dev/null and b/server/images/maps/radar/map-3-8.webp differ diff --git a/server/images/maps/radar/map-3-9.webp b/server/images/maps/radar/map-3-9.webp new file mode 100644 index 0000000..baecbeb Binary files /dev/null and b/server/images/maps/radar/map-3-9.webp differ diff --git a/server/images/maps/radar/map-4-0.webp b/server/images/maps/radar/map-4-0.webp new file mode 100644 index 0000000..23d1766 Binary files /dev/null and b/server/images/maps/radar/map-4-0.webp differ diff --git a/server/images/maps/radar/map-4-1.webp b/server/images/maps/radar/map-4-1.webp new file mode 100644 index 0000000..417c125 Binary files /dev/null and b/server/images/maps/radar/map-4-1.webp differ diff --git a/server/images/maps/radar/map-4-2.webp b/server/images/maps/radar/map-4-2.webp new file mode 100644 index 0000000..119e75c Binary files /dev/null and b/server/images/maps/radar/map-4-2.webp differ diff --git a/server/images/maps/radar/map-4-3.webp b/server/images/maps/radar/map-4-3.webp new file mode 100644 index 0000000..5f7b028 Binary files /dev/null and b/server/images/maps/radar/map-4-3.webp differ diff --git a/server/images/maps/radar/map-4-4.webp b/server/images/maps/radar/map-4-4.webp new file mode 100644 index 0000000..89df714 Binary files /dev/null and b/server/images/maps/radar/map-4-4.webp differ diff --git a/server/images/maps/radar/map-4-5.webp b/server/images/maps/radar/map-4-5.webp new file mode 100644 index 0000000..638aa1c Binary files /dev/null and b/server/images/maps/radar/map-4-5.webp differ diff --git a/server/images/maps/radar/map-4-6.webp b/server/images/maps/radar/map-4-6.webp new file mode 100644 index 0000000..cd624d2 Binary files /dev/null and b/server/images/maps/radar/map-4-6.webp differ diff --git a/server/images/maps/radar/map-4-7.webp b/server/images/maps/radar/map-4-7.webp new file mode 100644 index 0000000..41f6a43 Binary files /dev/null and b/server/images/maps/radar/map-4-7.webp differ diff --git a/server/images/maps/radar/map-4-8.webp b/server/images/maps/radar/map-4-8.webp new file mode 100644 index 0000000..0da9052 Binary files /dev/null and b/server/images/maps/radar/map-4-8.webp differ diff --git a/server/images/maps/radar/map-4-9.webp b/server/images/maps/radar/map-4-9.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-4-9.webp differ diff --git a/server/images/maps/radar/map-5-0.webp b/server/images/maps/radar/map-5-0.webp new file mode 100644 index 0000000..41db6be Binary files /dev/null and b/server/images/maps/radar/map-5-0.webp differ diff --git a/server/images/maps/radar/map-5-1.webp b/server/images/maps/radar/map-5-1.webp new file mode 100644 index 0000000..c0834bb Binary files /dev/null and b/server/images/maps/radar/map-5-1.webp differ diff --git a/server/images/maps/radar/map-5-2.webp b/server/images/maps/radar/map-5-2.webp new file mode 100644 index 0000000..238d340 Binary files /dev/null and b/server/images/maps/radar/map-5-2.webp differ diff --git a/server/images/maps/radar/map-5-3.webp b/server/images/maps/radar/map-5-3.webp new file mode 100644 index 0000000..53000cb Binary files /dev/null and b/server/images/maps/radar/map-5-3.webp differ diff --git a/server/images/maps/radar/map-5-4.webp b/server/images/maps/radar/map-5-4.webp new file mode 100644 index 0000000..028c70e Binary files /dev/null and b/server/images/maps/radar/map-5-4.webp differ diff --git a/server/images/maps/radar/map-5-5.webp b/server/images/maps/radar/map-5-5.webp new file mode 100644 index 0000000..b1a70a0 Binary files /dev/null and b/server/images/maps/radar/map-5-5.webp differ diff --git a/server/images/maps/radar/map-5-6.webp b/server/images/maps/radar/map-5-6.webp new file mode 100644 index 0000000..9fffff1 Binary files /dev/null and b/server/images/maps/radar/map-5-6.webp differ diff --git a/server/images/maps/radar/map-5-7.webp b/server/images/maps/radar/map-5-7.webp new file mode 100644 index 0000000..da4b396 Binary files /dev/null and b/server/images/maps/radar/map-5-7.webp differ diff --git a/server/images/maps/radar/map-5-8.webp b/server/images/maps/radar/map-5-8.webp new file mode 100644 index 0000000..ebd047d Binary files /dev/null and b/server/images/maps/radar/map-5-8.webp differ diff --git a/server/images/maps/radar/map-5-9.webp b/server/images/maps/radar/map-5-9.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-5-9.webp differ diff --git a/server/images/maps/radar/map-6-0.webp b/server/images/maps/radar/map-6-0.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-6-0.webp differ diff --git a/server/images/maps/radar/map-6-1.webp b/server/images/maps/radar/map-6-1.webp new file mode 100644 index 0000000..2a03767 Binary files /dev/null and b/server/images/maps/radar/map-6-1.webp differ diff --git a/server/images/maps/radar/map-6-2.webp b/server/images/maps/radar/map-6-2.webp new file mode 100644 index 0000000..089d874 Binary files /dev/null and b/server/images/maps/radar/map-6-2.webp differ diff --git a/server/images/maps/radar/map-6-3.webp b/server/images/maps/radar/map-6-3.webp new file mode 100644 index 0000000..3abb601 Binary files /dev/null and b/server/images/maps/radar/map-6-3.webp differ diff --git a/server/images/maps/radar/map-6-4.webp b/server/images/maps/radar/map-6-4.webp new file mode 100644 index 0000000..4d74918 Binary files /dev/null and b/server/images/maps/radar/map-6-4.webp differ diff --git a/server/images/maps/radar/map-6-5.webp b/server/images/maps/radar/map-6-5.webp new file mode 100644 index 0000000..0d2d672 Binary files /dev/null and b/server/images/maps/radar/map-6-5.webp differ diff --git a/server/images/maps/radar/map-6-6.webp b/server/images/maps/radar/map-6-6.webp new file mode 100644 index 0000000..03469f1 Binary files /dev/null and b/server/images/maps/radar/map-6-6.webp differ diff --git a/server/images/maps/radar/map-6-7.webp b/server/images/maps/radar/map-6-7.webp new file mode 100644 index 0000000..76a4896 Binary files /dev/null and b/server/images/maps/radar/map-6-7.webp differ diff --git a/server/images/maps/radar/map-6-8.webp b/server/images/maps/radar/map-6-8.webp new file mode 100644 index 0000000..73383b4 Binary files /dev/null and b/server/images/maps/radar/map-6-8.webp differ diff --git a/server/images/maps/radar/map-6-9.webp b/server/images/maps/radar/map-6-9.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-6-9.webp differ diff --git a/server/images/maps/radar/map-7-0.webp b/server/images/maps/radar/map-7-0.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-7-0.webp differ diff --git a/server/images/maps/radar/map-7-1.webp b/server/images/maps/radar/map-7-1.webp new file mode 100644 index 0000000..8776fdf Binary files /dev/null and b/server/images/maps/radar/map-7-1.webp differ diff --git a/server/images/maps/radar/map-7-2.webp b/server/images/maps/radar/map-7-2.webp new file mode 100644 index 0000000..8cd0627 Binary files /dev/null and b/server/images/maps/radar/map-7-2.webp differ diff --git a/server/images/maps/radar/map-7-3.webp b/server/images/maps/radar/map-7-3.webp new file mode 100644 index 0000000..87f12b3 Binary files /dev/null and b/server/images/maps/radar/map-7-3.webp differ diff --git a/server/images/maps/radar/map-7-4.webp b/server/images/maps/radar/map-7-4.webp new file mode 100644 index 0000000..b57a5f2 Binary files /dev/null and b/server/images/maps/radar/map-7-4.webp differ diff --git a/server/images/maps/radar/map-7-5.webp b/server/images/maps/radar/map-7-5.webp new file mode 100644 index 0000000..0704909 Binary files /dev/null and b/server/images/maps/radar/map-7-5.webp differ diff --git a/server/images/maps/radar/map-7-6.webp b/server/images/maps/radar/map-7-6.webp new file mode 100644 index 0000000..271929f Binary files /dev/null and b/server/images/maps/radar/map-7-6.webp differ diff --git a/server/images/maps/radar/map-7-7.webp b/server/images/maps/radar/map-7-7.webp new file mode 100644 index 0000000..8ed4b4e Binary files /dev/null and b/server/images/maps/radar/map-7-7.webp differ diff --git a/server/images/maps/radar/map-7-8.webp b/server/images/maps/radar/map-7-8.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-7-8.webp differ diff --git a/server/images/maps/radar/map-7-9.webp b/server/images/maps/radar/map-7-9.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-7-9.webp differ diff --git a/server/images/maps/radar/map-8-0.webp b/server/images/maps/radar/map-8-0.webp new file mode 100644 index 0000000..7d1cb28 Binary files /dev/null and b/server/images/maps/radar/map-8-0.webp differ diff --git a/server/images/maps/radar/map-8-1.webp b/server/images/maps/radar/map-8-1.webp new file mode 100644 index 0000000..878ef11 Binary files /dev/null and b/server/images/maps/radar/map-8-1.webp differ diff --git a/server/images/maps/radar/map-8-2.webp b/server/images/maps/radar/map-8-2.webp new file mode 100644 index 0000000..32dec16 Binary files /dev/null and b/server/images/maps/radar/map-8-2.webp differ diff --git a/server/images/maps/radar/map-8-3.webp b/server/images/maps/radar/map-8-3.webp new file mode 100644 index 0000000..d98627b Binary files /dev/null and b/server/images/maps/radar/map-8-3.webp differ diff --git a/server/images/maps/radar/map-8-4.webp b/server/images/maps/radar/map-8-4.webp new file mode 100644 index 0000000..baf4e7a Binary files /dev/null and b/server/images/maps/radar/map-8-4.webp differ diff --git a/server/images/maps/radar/map-8-5.webp b/server/images/maps/radar/map-8-5.webp new file mode 100644 index 0000000..3ba9a23 Binary files /dev/null and b/server/images/maps/radar/map-8-5.webp differ diff --git a/server/images/maps/radar/map-8-6.webp b/server/images/maps/radar/map-8-6.webp new file mode 100644 index 0000000..c5762e1 Binary files /dev/null and b/server/images/maps/radar/map-8-6.webp differ diff --git a/server/images/maps/radar/map-8-7.webp b/server/images/maps/radar/map-8-7.webp new file mode 100644 index 0000000..10c2deb Binary files /dev/null and b/server/images/maps/radar/map-8-7.webp differ diff --git a/server/images/maps/radar/map-8-8.webp b/server/images/maps/radar/map-8-8.webp new file mode 100644 index 0000000..d2920d1 Binary files /dev/null and b/server/images/maps/radar/map-8-8.webp differ diff --git a/server/images/maps/radar/map-8-9.webp b/server/images/maps/radar/map-8-9.webp new file mode 100644 index 0000000..7d1cb28 Binary files /dev/null and b/server/images/maps/radar/map-8-9.webp differ diff --git a/server/images/maps/radar/map-9-0.webp b/server/images/maps/radar/map-9-0.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-9-0.webp differ diff --git a/server/images/maps/radar/map-9-1.webp b/server/images/maps/radar/map-9-1.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-9-1.webp differ diff --git a/server/images/maps/radar/map-9-2.webp b/server/images/maps/radar/map-9-2.webp new file mode 100644 index 0000000..62e0f25 Binary files /dev/null and b/server/images/maps/radar/map-9-2.webp differ diff --git a/server/images/maps/radar/map-9-3.webp b/server/images/maps/radar/map-9-3.webp new file mode 100644 index 0000000..5cdd98b Binary files /dev/null and b/server/images/maps/radar/map-9-3.webp differ diff --git a/server/images/maps/radar/map-9-4.webp b/server/images/maps/radar/map-9-4.webp new file mode 100644 index 0000000..d86e455 Binary files /dev/null and b/server/images/maps/radar/map-9-4.webp differ diff --git a/server/images/maps/radar/map-9-5.webp b/server/images/maps/radar/map-9-5.webp new file mode 100644 index 0000000..f45b4d7 Binary files /dev/null and b/server/images/maps/radar/map-9-5.webp differ diff --git a/server/images/maps/radar/map-9-6.webp b/server/images/maps/radar/map-9-6.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-9-6.webp differ diff --git a/server/images/maps/radar/map-9-7.webp b/server/images/maps/radar/map-9-7.webp new file mode 100644 index 0000000..75cef0e Binary files /dev/null and b/server/images/maps/radar/map-9-7.webp differ diff --git a/server/images/maps/radar/map-9-8.webp b/server/images/maps/radar/map-9-8.webp new file mode 100644 index 0000000..c6f054c Binary files /dev/null and b/server/images/maps/radar/map-9-8.webp differ diff --git a/server/images/maps/radar/map-9-9.webp b/server/images/maps/radar/map-9-9.webp new file mode 100644 index 0000000..a0746c4 Binary files /dev/null and b/server/images/maps/radar/map-9-9.webp differ diff --git a/server/images/maps/radar/overlay-0-0.webp b/server/images/maps/radar/overlay-0-0.webp new file mode 100644 index 0000000..6218f38 Binary files /dev/null and b/server/images/maps/radar/overlay-0-0.webp differ diff --git a/server/images/maps/radar/overlay-0-1.webp b/server/images/maps/radar/overlay-0-1.webp new file mode 100644 index 0000000..e076667 Binary files /dev/null and b/server/images/maps/radar/overlay-0-1.webp differ diff --git a/server/images/maps/radar/overlay-0-2.webp b/server/images/maps/radar/overlay-0-2.webp new file mode 100644 index 0000000..1c15d16 Binary files /dev/null and b/server/images/maps/radar/overlay-0-2.webp differ diff --git a/server/images/maps/radar/overlay-0-3.webp b/server/images/maps/radar/overlay-0-3.webp new file mode 100644 index 0000000..7b9e9fe Binary files /dev/null and b/server/images/maps/radar/overlay-0-3.webp differ diff --git a/server/images/maps/radar/overlay-0-4.webp b/server/images/maps/radar/overlay-0-4.webp new file mode 100644 index 0000000..9927f56 Binary files /dev/null and b/server/images/maps/radar/overlay-0-4.webp differ diff --git a/server/images/maps/radar/overlay-0-5.webp b/server/images/maps/radar/overlay-0-5.webp new file mode 100644 index 0000000..a3d8f20 Binary files /dev/null and b/server/images/maps/radar/overlay-0-5.webp differ diff --git a/server/images/maps/radar/overlay-0-6.webp b/server/images/maps/radar/overlay-0-6.webp new file mode 100644 index 0000000..0c1bfb2 Binary files /dev/null and b/server/images/maps/radar/overlay-0-6.webp differ diff --git a/server/images/maps/radar/overlay-0-7.webp b/server/images/maps/radar/overlay-0-7.webp new file mode 100644 index 0000000..9f91b53 Binary files /dev/null and b/server/images/maps/radar/overlay-0-7.webp differ diff --git a/server/images/maps/radar/overlay-0-8.webp b/server/images/maps/radar/overlay-0-8.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-0-8.webp differ diff --git a/server/images/maps/radar/overlay-0-9.webp b/server/images/maps/radar/overlay-0-9.webp new file mode 100644 index 0000000..228d0d3 Binary files /dev/null and b/server/images/maps/radar/overlay-0-9.webp differ diff --git a/server/images/maps/radar/overlay-1-0.webp b/server/images/maps/radar/overlay-1-0.webp new file mode 100644 index 0000000..3ceaefd Binary files /dev/null and b/server/images/maps/radar/overlay-1-0.webp differ diff --git a/server/images/maps/radar/overlay-1-1.webp b/server/images/maps/radar/overlay-1-1.webp new file mode 100644 index 0000000..1c98fe1 Binary files /dev/null and b/server/images/maps/radar/overlay-1-1.webp differ diff --git a/server/images/maps/radar/overlay-1-2.webp b/server/images/maps/radar/overlay-1-2.webp new file mode 100644 index 0000000..fd43dd4 Binary files /dev/null and b/server/images/maps/radar/overlay-1-2.webp differ diff --git a/server/images/maps/radar/overlay-1-3.webp b/server/images/maps/radar/overlay-1-3.webp new file mode 100644 index 0000000..a626e86 Binary files /dev/null and b/server/images/maps/radar/overlay-1-3.webp differ diff --git a/server/images/maps/radar/overlay-1-4.webp b/server/images/maps/radar/overlay-1-4.webp new file mode 100644 index 0000000..cd78fb3 Binary files /dev/null and b/server/images/maps/radar/overlay-1-4.webp differ diff --git a/server/images/maps/radar/overlay-1-5.webp b/server/images/maps/radar/overlay-1-5.webp new file mode 100644 index 0000000..a0e9e94 Binary files /dev/null and b/server/images/maps/radar/overlay-1-5.webp differ diff --git a/server/images/maps/radar/overlay-1-6.webp b/server/images/maps/radar/overlay-1-6.webp new file mode 100644 index 0000000..bc3fac4 Binary files /dev/null and b/server/images/maps/radar/overlay-1-6.webp differ diff --git a/server/images/maps/radar/overlay-1-7.webp b/server/images/maps/radar/overlay-1-7.webp new file mode 100644 index 0000000..1bd1e25 Binary files /dev/null and b/server/images/maps/radar/overlay-1-7.webp differ diff --git a/server/images/maps/radar/overlay-1-8.webp b/server/images/maps/radar/overlay-1-8.webp new file mode 100644 index 0000000..77d972c Binary files /dev/null and b/server/images/maps/radar/overlay-1-8.webp differ diff --git a/server/images/maps/radar/overlay-1-9.webp b/server/images/maps/radar/overlay-1-9.webp new file mode 100644 index 0000000..7a99831 Binary files /dev/null and b/server/images/maps/radar/overlay-1-9.webp differ diff --git a/server/images/maps/radar/overlay-10-0.webp b/server/images/maps/radar/overlay-10-0.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-10-0.webp differ diff --git a/server/images/maps/radar/overlay-10-1.webp b/server/images/maps/radar/overlay-10-1.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-10-1.webp differ diff --git a/server/images/maps/radar/overlay-10-2.webp b/server/images/maps/radar/overlay-10-2.webp new file mode 100644 index 0000000..76861d3 Binary files /dev/null and b/server/images/maps/radar/overlay-10-2.webp differ diff --git a/server/images/maps/radar/overlay-10-3.webp b/server/images/maps/radar/overlay-10-3.webp new file mode 100644 index 0000000..7f65cf7 Binary files /dev/null and b/server/images/maps/radar/overlay-10-3.webp differ diff --git a/server/images/maps/radar/overlay-10-4.webp b/server/images/maps/radar/overlay-10-4.webp new file mode 100644 index 0000000..2310bdd Binary files /dev/null and b/server/images/maps/radar/overlay-10-4.webp differ diff --git a/server/images/maps/radar/overlay-10-5.webp b/server/images/maps/radar/overlay-10-5.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-10-5.webp differ diff --git a/server/images/maps/radar/overlay-10-6.webp b/server/images/maps/radar/overlay-10-6.webp new file mode 100644 index 0000000..3cce283 Binary files /dev/null and b/server/images/maps/radar/overlay-10-6.webp differ diff --git a/server/images/maps/radar/overlay-10-7.webp b/server/images/maps/radar/overlay-10-7.webp new file mode 100644 index 0000000..2c8d9a8 Binary files /dev/null and b/server/images/maps/radar/overlay-10-7.webp differ diff --git a/server/images/maps/radar/overlay-10-8.webp b/server/images/maps/radar/overlay-10-8.webp new file mode 100644 index 0000000..56463a4 Binary files /dev/null and b/server/images/maps/radar/overlay-10-8.webp differ diff --git a/server/images/maps/radar/overlay-10-9.webp b/server/images/maps/radar/overlay-10-9.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-10-9.webp differ diff --git a/server/images/maps/radar/overlay-2-0.webp b/server/images/maps/radar/overlay-2-0.webp new file mode 100644 index 0000000..18764b5 Binary files /dev/null and b/server/images/maps/radar/overlay-2-0.webp differ diff --git a/server/images/maps/radar/overlay-2-1.webp b/server/images/maps/radar/overlay-2-1.webp new file mode 100644 index 0000000..6cdc7d9 Binary files /dev/null and b/server/images/maps/radar/overlay-2-1.webp differ diff --git a/server/images/maps/radar/overlay-2-2.webp b/server/images/maps/radar/overlay-2-2.webp new file mode 100644 index 0000000..19c84ff Binary files /dev/null and b/server/images/maps/radar/overlay-2-2.webp differ diff --git a/server/images/maps/radar/overlay-2-3.webp b/server/images/maps/radar/overlay-2-3.webp new file mode 100644 index 0000000..34adbaa Binary files /dev/null and b/server/images/maps/radar/overlay-2-3.webp differ diff --git a/server/images/maps/radar/overlay-2-4.webp b/server/images/maps/radar/overlay-2-4.webp new file mode 100644 index 0000000..92f4a18 Binary files /dev/null and b/server/images/maps/radar/overlay-2-4.webp differ diff --git a/server/images/maps/radar/overlay-2-5.webp b/server/images/maps/radar/overlay-2-5.webp new file mode 100644 index 0000000..1b66e32 Binary files /dev/null and b/server/images/maps/radar/overlay-2-5.webp differ diff --git a/server/images/maps/radar/overlay-2-6.webp b/server/images/maps/radar/overlay-2-6.webp new file mode 100644 index 0000000..0b55fbb Binary files /dev/null and b/server/images/maps/radar/overlay-2-6.webp differ diff --git a/server/images/maps/radar/overlay-2-7.webp b/server/images/maps/radar/overlay-2-7.webp new file mode 100644 index 0000000..0d4cc0c Binary files /dev/null and b/server/images/maps/radar/overlay-2-7.webp differ diff --git a/server/images/maps/radar/overlay-2-8.webp b/server/images/maps/radar/overlay-2-8.webp new file mode 100644 index 0000000..b84ef15 Binary files /dev/null and b/server/images/maps/radar/overlay-2-8.webp differ diff --git a/server/images/maps/radar/overlay-2-9.webp b/server/images/maps/radar/overlay-2-9.webp new file mode 100644 index 0000000..35cb336 Binary files /dev/null and b/server/images/maps/radar/overlay-2-9.webp differ diff --git a/server/images/maps/radar/overlay-3-0.webp b/server/images/maps/radar/overlay-3-0.webp new file mode 100644 index 0000000..98b93ea Binary files /dev/null and b/server/images/maps/radar/overlay-3-0.webp differ diff --git a/server/images/maps/radar/overlay-3-1.webp b/server/images/maps/radar/overlay-3-1.webp new file mode 100644 index 0000000..7e96be1 Binary files /dev/null and b/server/images/maps/radar/overlay-3-1.webp differ diff --git a/server/images/maps/radar/overlay-3-2.webp b/server/images/maps/radar/overlay-3-2.webp new file mode 100644 index 0000000..9fc90f8 Binary files /dev/null and b/server/images/maps/radar/overlay-3-2.webp differ diff --git a/server/images/maps/radar/overlay-3-3.webp b/server/images/maps/radar/overlay-3-3.webp new file mode 100644 index 0000000..117c37f Binary files /dev/null and b/server/images/maps/radar/overlay-3-3.webp differ diff --git a/server/images/maps/radar/overlay-3-4.webp b/server/images/maps/radar/overlay-3-4.webp new file mode 100644 index 0000000..6e56cd2 Binary files /dev/null and b/server/images/maps/radar/overlay-3-4.webp differ diff --git a/server/images/maps/radar/overlay-3-5.webp b/server/images/maps/radar/overlay-3-5.webp new file mode 100644 index 0000000..4093fd3 Binary files /dev/null and b/server/images/maps/radar/overlay-3-5.webp differ diff --git a/server/images/maps/radar/overlay-3-6.webp b/server/images/maps/radar/overlay-3-6.webp new file mode 100644 index 0000000..90fdbab Binary files /dev/null and b/server/images/maps/radar/overlay-3-6.webp differ diff --git a/server/images/maps/radar/overlay-3-7.webp b/server/images/maps/radar/overlay-3-7.webp new file mode 100644 index 0000000..254c768 Binary files /dev/null and b/server/images/maps/radar/overlay-3-7.webp differ diff --git a/server/images/maps/radar/overlay-3-8.webp b/server/images/maps/radar/overlay-3-8.webp new file mode 100644 index 0000000..b67daad Binary files /dev/null and b/server/images/maps/radar/overlay-3-8.webp differ diff --git a/server/images/maps/radar/overlay-3-9.webp b/server/images/maps/radar/overlay-3-9.webp new file mode 100644 index 0000000..18a568c Binary files /dev/null and b/server/images/maps/radar/overlay-3-9.webp differ diff --git a/server/images/maps/radar/overlay-4-0.webp b/server/images/maps/radar/overlay-4-0.webp new file mode 100644 index 0000000..e510bd8 Binary files /dev/null and b/server/images/maps/radar/overlay-4-0.webp differ diff --git a/server/images/maps/radar/overlay-4-1.webp b/server/images/maps/radar/overlay-4-1.webp new file mode 100644 index 0000000..bc9962a Binary files /dev/null and b/server/images/maps/radar/overlay-4-1.webp differ diff --git a/server/images/maps/radar/overlay-4-2.webp b/server/images/maps/radar/overlay-4-2.webp new file mode 100644 index 0000000..01b7635 Binary files /dev/null and b/server/images/maps/radar/overlay-4-2.webp differ diff --git a/server/images/maps/radar/overlay-4-3.webp b/server/images/maps/radar/overlay-4-3.webp new file mode 100644 index 0000000..421b48a Binary files /dev/null and b/server/images/maps/radar/overlay-4-3.webp differ diff --git a/server/images/maps/radar/overlay-4-4.webp b/server/images/maps/radar/overlay-4-4.webp new file mode 100644 index 0000000..7bfa620 Binary files /dev/null and b/server/images/maps/radar/overlay-4-4.webp differ diff --git a/server/images/maps/radar/overlay-4-5.webp b/server/images/maps/radar/overlay-4-5.webp new file mode 100644 index 0000000..1e01914 Binary files /dev/null and b/server/images/maps/radar/overlay-4-5.webp differ diff --git a/server/images/maps/radar/overlay-4-6.webp b/server/images/maps/radar/overlay-4-6.webp new file mode 100644 index 0000000..08a2cbf Binary files /dev/null and b/server/images/maps/radar/overlay-4-6.webp differ diff --git a/server/images/maps/radar/overlay-4-7.webp b/server/images/maps/radar/overlay-4-7.webp new file mode 100644 index 0000000..fa8b086 Binary files /dev/null and b/server/images/maps/radar/overlay-4-7.webp differ diff --git a/server/images/maps/radar/overlay-4-8.webp b/server/images/maps/radar/overlay-4-8.webp new file mode 100644 index 0000000..710848d Binary files /dev/null and b/server/images/maps/radar/overlay-4-8.webp differ diff --git a/server/images/maps/radar/overlay-4-9.webp b/server/images/maps/radar/overlay-4-9.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-4-9.webp differ diff --git a/server/images/maps/radar/overlay-5-0.webp b/server/images/maps/radar/overlay-5-0.webp new file mode 100644 index 0000000..af00f63 Binary files /dev/null and b/server/images/maps/radar/overlay-5-0.webp differ diff --git a/server/images/maps/radar/overlay-5-1.webp b/server/images/maps/radar/overlay-5-1.webp new file mode 100644 index 0000000..a3c755e Binary files /dev/null and b/server/images/maps/radar/overlay-5-1.webp differ diff --git a/server/images/maps/radar/overlay-5-2.webp b/server/images/maps/radar/overlay-5-2.webp new file mode 100644 index 0000000..bc4c1cd Binary files /dev/null and b/server/images/maps/radar/overlay-5-2.webp differ diff --git a/server/images/maps/radar/overlay-5-3.webp b/server/images/maps/radar/overlay-5-3.webp new file mode 100644 index 0000000..8cf5f57 Binary files /dev/null and b/server/images/maps/radar/overlay-5-3.webp differ diff --git a/server/images/maps/radar/overlay-5-4.webp b/server/images/maps/radar/overlay-5-4.webp new file mode 100644 index 0000000..4cbc103 Binary files /dev/null and b/server/images/maps/radar/overlay-5-4.webp differ diff --git a/server/images/maps/radar/overlay-5-5.webp b/server/images/maps/radar/overlay-5-5.webp new file mode 100644 index 0000000..5db7159 Binary files /dev/null and b/server/images/maps/radar/overlay-5-5.webp differ diff --git a/server/images/maps/radar/overlay-5-6.webp b/server/images/maps/radar/overlay-5-6.webp new file mode 100644 index 0000000..596c1ee Binary files /dev/null and b/server/images/maps/radar/overlay-5-6.webp differ diff --git a/server/images/maps/radar/overlay-5-7.webp b/server/images/maps/radar/overlay-5-7.webp new file mode 100644 index 0000000..0f03b9d Binary files /dev/null and b/server/images/maps/radar/overlay-5-7.webp differ diff --git a/server/images/maps/radar/overlay-5-8.webp b/server/images/maps/radar/overlay-5-8.webp new file mode 100644 index 0000000..a998bd6 Binary files /dev/null and b/server/images/maps/radar/overlay-5-8.webp differ diff --git a/server/images/maps/radar/overlay-5-9.webp b/server/images/maps/radar/overlay-5-9.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-5-9.webp differ diff --git a/server/images/maps/radar/overlay-6-0.webp b/server/images/maps/radar/overlay-6-0.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-6-0.webp differ diff --git a/server/images/maps/radar/overlay-6-1.webp b/server/images/maps/radar/overlay-6-1.webp new file mode 100644 index 0000000..c0ff14a Binary files /dev/null and b/server/images/maps/radar/overlay-6-1.webp differ diff --git a/server/images/maps/radar/overlay-6-2.webp b/server/images/maps/radar/overlay-6-2.webp new file mode 100644 index 0000000..6cb9547 Binary files /dev/null and b/server/images/maps/radar/overlay-6-2.webp differ diff --git a/server/images/maps/radar/overlay-6-3.webp b/server/images/maps/radar/overlay-6-3.webp new file mode 100644 index 0000000..20fd44a Binary files /dev/null and b/server/images/maps/radar/overlay-6-3.webp differ diff --git a/server/images/maps/radar/overlay-6-4.webp b/server/images/maps/radar/overlay-6-4.webp new file mode 100644 index 0000000..04d7e35 Binary files /dev/null and b/server/images/maps/radar/overlay-6-4.webp differ diff --git a/server/images/maps/radar/overlay-6-5.webp b/server/images/maps/radar/overlay-6-5.webp new file mode 100644 index 0000000..68538d4 Binary files /dev/null and b/server/images/maps/radar/overlay-6-5.webp differ diff --git a/server/images/maps/radar/overlay-6-6.webp b/server/images/maps/radar/overlay-6-6.webp new file mode 100644 index 0000000..3921e74 Binary files /dev/null and b/server/images/maps/radar/overlay-6-6.webp differ diff --git a/server/images/maps/radar/overlay-6-7.webp b/server/images/maps/radar/overlay-6-7.webp new file mode 100644 index 0000000..8aec8da Binary files /dev/null and b/server/images/maps/radar/overlay-6-7.webp differ diff --git a/server/images/maps/radar/overlay-6-8.webp b/server/images/maps/radar/overlay-6-8.webp new file mode 100644 index 0000000..7f6e9bf Binary files /dev/null and b/server/images/maps/radar/overlay-6-8.webp differ diff --git a/server/images/maps/radar/overlay-6-9.webp b/server/images/maps/radar/overlay-6-9.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-6-9.webp differ diff --git a/server/images/maps/radar/overlay-7-0.webp b/server/images/maps/radar/overlay-7-0.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-7-0.webp differ diff --git a/server/images/maps/radar/overlay-7-1.webp b/server/images/maps/radar/overlay-7-1.webp new file mode 100644 index 0000000..b1f42fa Binary files /dev/null and b/server/images/maps/radar/overlay-7-1.webp differ diff --git a/server/images/maps/radar/overlay-7-2.webp b/server/images/maps/radar/overlay-7-2.webp new file mode 100644 index 0000000..6dea352 Binary files /dev/null and b/server/images/maps/radar/overlay-7-2.webp differ diff --git a/server/images/maps/radar/overlay-7-3.webp b/server/images/maps/radar/overlay-7-3.webp new file mode 100644 index 0000000..cf895a7 Binary files /dev/null and b/server/images/maps/radar/overlay-7-3.webp differ diff --git a/server/images/maps/radar/overlay-7-4.webp b/server/images/maps/radar/overlay-7-4.webp new file mode 100644 index 0000000..97b2e9d Binary files /dev/null and b/server/images/maps/radar/overlay-7-4.webp differ diff --git a/server/images/maps/radar/overlay-7-5.webp b/server/images/maps/radar/overlay-7-5.webp new file mode 100644 index 0000000..cf842d1 Binary files /dev/null and b/server/images/maps/radar/overlay-7-5.webp differ diff --git a/server/images/maps/radar/overlay-7-6.webp b/server/images/maps/radar/overlay-7-6.webp new file mode 100644 index 0000000..06bc8fc Binary files /dev/null and b/server/images/maps/radar/overlay-7-6.webp differ diff --git a/server/images/maps/radar/overlay-7-7.webp b/server/images/maps/radar/overlay-7-7.webp new file mode 100644 index 0000000..8f83ee3 Binary files /dev/null and b/server/images/maps/radar/overlay-7-7.webp differ diff --git a/server/images/maps/radar/overlay-7-8.webp b/server/images/maps/radar/overlay-7-8.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-7-8.webp differ diff --git a/server/images/maps/radar/overlay-7-9.webp b/server/images/maps/radar/overlay-7-9.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-7-9.webp differ diff --git a/server/images/maps/radar/overlay-8-0.webp b/server/images/maps/radar/overlay-8-0.webp new file mode 100644 index 0000000..d678aba Binary files /dev/null and b/server/images/maps/radar/overlay-8-0.webp differ diff --git a/server/images/maps/radar/overlay-8-1.webp b/server/images/maps/radar/overlay-8-1.webp new file mode 100644 index 0000000..e827d08 Binary files /dev/null and b/server/images/maps/radar/overlay-8-1.webp differ diff --git a/server/images/maps/radar/overlay-8-2.webp b/server/images/maps/radar/overlay-8-2.webp new file mode 100644 index 0000000..c14f452 Binary files /dev/null and b/server/images/maps/radar/overlay-8-2.webp differ diff --git a/server/images/maps/radar/overlay-8-3.webp b/server/images/maps/radar/overlay-8-3.webp new file mode 100644 index 0000000..a46f0c0 Binary files /dev/null and b/server/images/maps/radar/overlay-8-3.webp differ diff --git a/server/images/maps/radar/overlay-8-4.webp b/server/images/maps/radar/overlay-8-4.webp new file mode 100644 index 0000000..3cfc66f Binary files /dev/null and b/server/images/maps/radar/overlay-8-4.webp differ diff --git a/server/images/maps/radar/overlay-8-5.webp b/server/images/maps/radar/overlay-8-5.webp new file mode 100644 index 0000000..26e2fe2 Binary files /dev/null and b/server/images/maps/radar/overlay-8-5.webp differ diff --git a/server/images/maps/radar/overlay-8-6.webp b/server/images/maps/radar/overlay-8-6.webp new file mode 100644 index 0000000..8cc5776 Binary files /dev/null and b/server/images/maps/radar/overlay-8-6.webp differ diff --git a/server/images/maps/radar/overlay-8-7.webp b/server/images/maps/radar/overlay-8-7.webp new file mode 100644 index 0000000..1ade0ef Binary files /dev/null and b/server/images/maps/radar/overlay-8-7.webp differ diff --git a/server/images/maps/radar/overlay-8-8.webp b/server/images/maps/radar/overlay-8-8.webp new file mode 100644 index 0000000..34071f2 Binary files /dev/null and b/server/images/maps/radar/overlay-8-8.webp differ diff --git a/server/images/maps/radar/overlay-8-9.webp b/server/images/maps/radar/overlay-8-9.webp new file mode 100644 index 0000000..d678aba Binary files /dev/null and b/server/images/maps/radar/overlay-8-9.webp differ diff --git a/server/images/maps/radar/overlay-9-0.webp b/server/images/maps/radar/overlay-9-0.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-9-0.webp differ diff --git a/server/images/maps/radar/overlay-9-1.webp b/server/images/maps/radar/overlay-9-1.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-9-1.webp differ diff --git a/server/images/maps/radar/overlay-9-2.webp b/server/images/maps/radar/overlay-9-2.webp new file mode 100644 index 0000000..86b066e Binary files /dev/null and b/server/images/maps/radar/overlay-9-2.webp differ diff --git a/server/images/maps/radar/overlay-9-3.webp b/server/images/maps/radar/overlay-9-3.webp new file mode 100644 index 0000000..595c0ec Binary files /dev/null and b/server/images/maps/radar/overlay-9-3.webp differ diff --git a/server/images/maps/radar/overlay-9-4.webp b/server/images/maps/radar/overlay-9-4.webp new file mode 100644 index 0000000..a5dd386 Binary files /dev/null and b/server/images/maps/radar/overlay-9-4.webp differ diff --git a/server/images/maps/radar/overlay-9-5.webp b/server/images/maps/radar/overlay-9-5.webp new file mode 100644 index 0000000..a8e6a3b Binary files /dev/null and b/server/images/maps/radar/overlay-9-5.webp differ diff --git a/server/images/maps/radar/overlay-9-6.webp b/server/images/maps/radar/overlay-9-6.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-9-6.webp differ diff --git a/server/images/maps/radar/overlay-9-7.webp b/server/images/maps/radar/overlay-9-7.webp new file mode 100644 index 0000000..889987d Binary files /dev/null and b/server/images/maps/radar/overlay-9-7.webp differ diff --git a/server/images/maps/radar/overlay-9-8.webp b/server/images/maps/radar/overlay-9-8.webp new file mode 100644 index 0000000..7a7e532 Binary files /dev/null and b/server/images/maps/radar/overlay-9-8.webp differ diff --git a/server/images/maps/radar/overlay-9-9.webp b/server/images/maps/radar/overlay-9-9.webp new file mode 100644 index 0000000..3fab61a Binary files /dev/null and b/server/images/maps/radar/overlay-9-9.webp differ diff --git a/server/images/maps/radarnotes.txt b/server/images/maps/radarnotes.txt new file mode 100644 index 0000000..7cd23eb --- /dev/null +++ b/server/images/maps/radarnotes.txt @@ -0,0 +1 @@ +convert radar-stretched.webp -define webp:losless=true -crop 10x11+0+0@ +repage +adjoin -set filename:row "%[fx:floor(t/10)]" -set filename:col "%[fx:t%10]" radar/map-%[filename:row]-%[filename:col].webp \ No newline at end of file diff --git a/server/scripts/modules/radar-constants.mjs b/server/scripts/modules/radar-constants.mjs new file mode 100644 index 0000000..0a031e5 --- /dev/null +++ b/server/scripts/modules/radar-constants.mjs @@ -0,0 +1,5 @@ +export const TILE_SIZE = { x: 680, y: 387 }; +export const TILE_COUNT = { x: 10, y: 11 }; +export const TILE_FULL_SIZE = { x: 6800, y: 4255 }; +export const RADAR_FULL_SIZE = { width: 2550, height: 1600 }; +export const RADAR_FINAL_SIZE = { width: 640, height: 367 }; diff --git a/server/scripts/modules/radar-tiles.mjs b/server/scripts/modules/radar-tiles.mjs new file mode 100644 index 0000000..2ee47b7 --- /dev/null +++ b/server/scripts/modules/radar-tiles.mjs @@ -0,0 +1,141 @@ +import { RADAR_FINAL_SIZE, TILE_SIZE, TILE_COUNT } from './radar-constants.mjs'; +import { elemForEach } from './utils/elem.mjs'; + +// convert a pixel location to a file/tile combination +const pixelToFile = (xPixel, yPixel) => { + const xTile = Math.floor(xPixel / TILE_SIZE.x); + const yTile = Math.floor(yPixel / TILE_SIZE.y); + if (xTile < 0 || xTile > TILE_COUNT.x || yTile < 0 || yTile > TILE_COUNT.y) return false; + return `${yTile}-${xTile}`; +}; + +// convert a pixel location in the overall map to a pixel location on the tile +const modTile = (xPixel, yPixel) => { + const x = Math.round(xPixel) % TILE_SIZE.x; + const y = Math.round(yPixel) % TILE_SIZE.y; + return { x, y }; +}; + +// creates the radar background map image and overlay transparency +// which remain fixed on the page as the radar image changes in layered divs +// it returns 4 ImageBitmaps that represent the base map, and 4 ImageBitmaps that are the overlay +// the main thread pushes these ImageBitmaps into the image placeholders on the page +const setTiles = (data) => { + const { + sourceXY, + elemId, + } = data; + const elemIdFull = `${elemId}-html`; + + // determine the basemap images needed + const baseMapTiles = [ + pixelToFile(sourceXY.x, sourceXY.y), + pixelToFile(sourceXY.x + TILE_SIZE.x, sourceXY.y), + pixelToFile(sourceXY.x, sourceXY.y + TILE_SIZE.y), + pixelToFile(sourceXY.x + TILE_SIZE.x, sourceXY.y + TILE_SIZE.y), + ]; + + // do some calculations + // the tiles are arranged as follows, with the horizontal axis as x, and correlating with the second set of digits in the image file number + // T[0] T[1] + // T[2] T[3] + // tile 0 gets special treatment, it's placement is the basis for all downstream calculations + const t0Source = modTile(sourceXY.x, sourceXY.y); + const t0Width = TILE_SIZE.x - t0Source.x; + const t0Height = TILE_SIZE.y - t0Source.y; + const t0FinalSize = { x: t0Width, y: t0Height }; + + // these will all be used again for the overlay, calculate them once here + const mapCoordinates = []; + // t[0] + mapCoordinates.push({ + sx: t0Source.x, + sw: t0Width, + dx: 0, + dw: t0FinalSize.x, + + sy: t0Source.y, + sh: t0Height, + dy: 0, + dh: t0FinalSize.y, + }); + // t[1] + mapCoordinates.push({ + sx: 0, + sw: TILE_SIZE.x - t0Width, + dx: t0FinalSize.x, + dw: TILE_SIZE.x - t0Width, + + sy: t0Source.y, + sh: t0Height, + dy: 0, + dh: t0FinalSize.y, + }); + // t[2] + mapCoordinates.push({ + sx: t0Source.x, + sw: t0Width, + dx: 0, + dw: t0FinalSize.x, + + sy: 0, + sh: TILE_SIZE.y - t0Height, + dy: t0FinalSize.y, + dh: TILE_SIZE.y - t0Height, + }); + // t[3] + mapCoordinates.push({ + sx: 0, + sw: TILE_SIZE.x - t0Width, + dx: t0FinalSize.x, + dw: TILE_SIZE.x - t0Width, + + sy: 0, + sh: TILE_SIZE.y - t0Height, + dy: t0FinalSize.y, + dh: TILE_SIZE.y - t0Height, + }); + + // determine which tiles are used + const usedTiles = [ + true, + mapCoordinates[1].dx < RADAR_FINAL_SIZE.width, + mapCoordinates[2].dy < RADAR_FINAL_SIZE.height, + mapCoordinates[2].dy < RADAR_FINAL_SIZE.height && mapCoordinates[1].dx < RADAR_FINAL_SIZE.width, + ]; + + // helper function for populating tiles + const populateTile = (tileName) => (elem, index) => { + // check if the tile is used + if (!usedTiles[index]) return; + + // set the image source and size + elem.src = `/images/maps/radar/${tileName}-${baseMapTiles[index]}.webp`; + elem.width = TILE_SIZE.x; + elem.height = TILE_SIZE.y; + }; + + // populate the map and overlay tiles + // fill the tiles with the map + elemForEach(`#${elemIdFull} .map-tiles img`, populateTile('map')); + elemForEach(`#${elemIdFull} .overlay-tiles img`, populateTile('overlay')); + + // fill the tiles with the overlay + // shift the map tile containers + const tileShift = modTile(sourceXY.x, sourceXY.y); + const mapTileContainer = document.querySelector(`#${elemIdFull} .map-tiles`); + mapTileContainer.style.top = `${-tileShift.y}px`; + mapTileContainer.style.left = `${-tileShift.x}px`; + // and the same for the overlay + const overlayTileContainer = document.querySelector(`#${elemIdFull} .overlay-tiles`); + overlayTileContainer.style.top = `${-tileShift.y}px`; + overlayTileContainer.style.left = `${-tileShift.x}px`; + + // return some useful data + return { + usedTiles, + baseMapTiles, + }; +}; + +export default setTiles; diff --git a/server/scripts/modules/radar-utils.mjs b/server/scripts/modules/radar-utils.mjs index 4317d28..15a15ba 100644 --- a/server/scripts/modules/radar-utils.mjs +++ b/server/scripts/modules/radar-utils.mjs @@ -1,61 +1,33 @@ -const getXYFromLatitudeLongitudeMap = (pos, offsetX, offsetY) => { - let y = 0; - let x = 0; - const imgHeight = 3200; - const imgWidth = 5100; +import { TILE_SIZE, TILE_FULL_SIZE } from './radar-constants.mjs'; - y = (51.75 - pos.latitude) * 55.2; - // center map - y -= offsetY; +// limit a value to within a range +const coerce = (low, value, high) => Math.max(Math.min(value, high), low); - // Do not allow the map to exceed the max/min coordinates. - if (y > (imgHeight - (offsetY * 2))) { - y = imgHeight - (offsetY * 2); - } else if (y < 0) { - y = 0; - } +const getXYFromLatitudeLongitudeMap = (pos) => { + // source values for conversion + // px py lon lat + // 589 466 -122.3615246 47.63177832 + // 5288 3638 -80.18297384 25.77018996 - x = ((-130.37 - pos.longitude) * 41.775) * -1; - // center map - x -= offsetX; + // map position is calculated as a regresion from the above values (=/- a manual adjustment factor) + // then shifted by half of the tile size (to center the map) + // then they are limited to values between 0 and the width or height of the map + const y = coerce(0, (-145.095 * pos.latitude + 7377.117) - 27 - (TILE_SIZE.y / 2), TILE_FULL_SIZE.y - (TILE_SIZE.y)); + const x = coerce(0, (111.407 * pos.longitude + 14220.972) + 4 - (TILE_SIZE.x / 2), TILE_FULL_SIZE.x - (TILE_SIZE.x)); - // Do not allow the map to exceed the max/min coordinates. - if (x > (imgWidth - (offsetX * 2))) { - x = imgWidth - (offsetX * 2); - } else if (x < 0) { - x = 0; - } - - return { x: x * 2, y: y * 2 }; + return { x, y }; }; const getXYFromLatitudeLongitudeDoppler = (pos, offsetX, offsetY) => { - let y = 0; - let x = 0; const imgHeight = 6000; const imgWidth = 2800; - y = (51 - pos.latitude) * 61.4481; - // center map - y -= offsetY; + // map position is calculated as a regresion + // then shifted by half of the tile size (to center the map) + // then they are limited to values between 0 and the width or height of the map - // Do not allow the map to exceed the max/min coordinates. - if (y > (imgHeight - (offsetY * 2))) { - y = imgHeight - (offsetY * 2); - } else if (y < 0) { - y = 0; - } - - x = ((-129.138 - pos.longitude) * 42.1768) * -1; - // center map - x -= offsetX; - - // Do not allow the map to exceed the max/min coordinates. - if (x > (imgWidth - (offsetX * 2))) { - x = imgWidth - (offsetX * 2); - } else if (x < 0) { - x = 0; - } + const y = coerce(0, (51 - pos.latitude) * 61.4481 - offsetY, imgHeight); + const x = coerce(0, ((-129.138 - pos.longitude) * 42.1768) * -1 - offsetX, imgWidth); return { x: x * 2, y: y * 2 }; }; @@ -148,79 +120,8 @@ const removeDopplerRadarImageNoise = (RadarContext) => { RadarContext.putImageData(RadarImageData, 0, 0); }; -const mergeDopplerRadarImage = (mapContext, radarContext) => { - const mapImageData = mapContext.getImageData(0, 0, mapContext.canvas.width, mapContext.canvas.height); - const radarImageData = radarContext.getImageData(0, 0, radarContext.canvas.width, radarContext.canvas.height); - - // examine every pixel, - // change any old rgb to the new-rgb - for (let i = 0; i < radarImageData.data.length; i += 4) { - // i + 0 = red - // i + 1 = green - // i + 2 = blue - // i + 3 = alpha (0 = transparent, 255 = opaque) - - // is this pixel the old rgb? - if ((mapImageData.data[i] < 116 && mapImageData.data[i + 1] < 116 && mapImageData.data[i + 2] < 116)) { - // change to your new rgb - - // Transparent - radarImageData.data[i] = 0; - radarImageData.data[i + 1] = 0; - radarImageData.data[i + 2] = 0; - radarImageData.data[i + 3] = 0; - } - } - - radarContext.putImageData(radarImageData, 0, 0); - - mapContext.drawImage(radarContext.canvas, 0, 0); -}; - -const tileSize = { x: 510, y: 320 }; -const radarFullSize = { width: 2550, height: 1600 }; -const radarFinalSize = { width: 640, height: 367 }; -const radarSourceSize = { width: 480, height: 276 }; -const scaling = { - width: radarFinalSize.width / radarSourceSize.width, - height: radarFinalSize.height / radarSourceSize.height, -}; - -// convert a pixel location to a file/tile combination -const pixelToFile = (xPixel, yPixel) => { - const xTile = Math.floor(xPixel / tileSize.x); - const yTile = Math.floor(yPixel / tileSize.y); - if (xTile < 0 || xTile > 9 || yTile < 0 || yTile > 9) return false; - return `${xTile.toFixed(0).padStart(2, '0')}-${yTile.toFixed(0).padStart(2, '0')}`; -}; - -// convert a pixel location in the overall map to a pixel location on the tile -const modTile = (xPixel, yPixel) => { - const x = Math.round(xPixel) % tileSize.x; - const y = Math.round(yPixel) % tileSize.y; - return { x, y }; -}; - -const mapSizeToFinalSize = (x, y) => ({ - x: Math.round(x * scaling.height), - y: Math.round(y * scaling.width), -}); - -const fetchAsBlob = async (url) => { - const response = await fetch(url); - return response.blob(); -}; - export { getXYFromLatitudeLongitudeDoppler, getXYFromLatitudeLongitudeMap, removeDopplerRadarImageNoise, - mergeDopplerRadarImage, - pixelToFile, - modTile, - mapSizeToFinalSize, - tileSize, - radarFinalSize, - radarFullSize, - fetchAsBlob, }; diff --git a/server/scripts/modules/radar-worker-bg-fg.mjs b/server/scripts/modules/radar-worker-bg-fg.mjs deleted file mode 100644 index 5b774f7..0000000 --- a/server/scripts/modules/radar-worker-bg-fg.mjs +++ /dev/null @@ -1,139 +0,0 @@ -import { - radarFinalSize, pixelToFile, modTile, tileSize, mapSizeToFinalSize, fetchAsBlob, -} from './radar-utils.mjs'; - -// creates the radar background map image and overlay transparency -// which remain fixed on the page as the radar image changes in layered divs -// it returns 4 ImageBitmaps that represent the base map, and 4 ImageBitmaps that are the overlay -// the main thread pushes these ImageBitmaps into the image placeholders on the page - -const baseMapImages = (tile) => new Promise((resolve) => { - if (tile === false) resolve(false); - fetchAsBlob(`/images/maps/radar-tiles/${tile}.webp`).then((blob) => { - createImageBitmap(blob).then((imageBitmap) => { - // extract the black pixels to overlay on to the final image (boundaries) - const canvas = new OffscreenCanvas(imageBitmap.width, imageBitmap.height); - const context = canvas.getContext('2d'); - context.drawImage(imageBitmap, 0, 0); - const imageData = context.getImageData(0, 0, imageBitmap.width, imageBitmap.height); - - // go through the image data and preserve the black pixels, making the rest transparent - for (let i = 0; i < imageData.data.length; i += 4) { - if (imageData.data[i + 0] >= 116 || imageData.data[i + 1] >= 116 || imageData.data[i + 2] >= 116) { - // make it transparent - imageData.data[i + 3] = 0; - } - } - // write the image data back - context.putImageData(imageData, 0, 0); - - resolve({ - base: imageBitmap, - overlay: canvas.transferToImageBitmap(), - }); - }); - }); -}); - -onmessage = async (e) => { - const { - sourceXY, offsetX, offsetY, - } = e.data; - - // determine the basemap images needed - const baseMapTiles = [ - pixelToFile(sourceXY.x, sourceXY.y), - pixelToFile(sourceXY.x + offsetX * 2, sourceXY.y), - pixelToFile(sourceXY.x, sourceXY.y + offsetY * 2), - pixelToFile(sourceXY.x + offsetX * 2, sourceXY.y + offsetY * 2), - ]; - - // get the base maps - const baseMapsPromise = Promise.allSettled(baseMapTiles.map(baseMapImages)); - - // do some more calculations for assembling the tiles - // the tiles are arranged as follows, with the horizontal axis as x, and correlating with the second set of digits in the image file number - // T[0] T[1] - // T[2] T[3] - // tile 0 gets special treatment, it's placement is the basis for all downstream calculations - const t0Source = modTile(sourceXY.x, sourceXY.y); - const t0Width = tileSize.x - t0Source.x; - const t0Height = tileSize.y - t0Source.y; - const t0FinalSize = mapSizeToFinalSize(t0Width, t0Height); - - // these will all be used again for the overlay, calculate them once here - const mapCoordinates = []; - // t[0] - mapCoordinates.push({ - sx: t0Source.x, - sw: t0Width, - dx: 0, - dw: t0FinalSize.x, - - sy: t0Source.y, - sh: t0Height, - dy: 0, - dh: t0FinalSize.y, - }); - // t[1] - mapCoordinates.push({ - sx: 0, - sw: tileSize.x - t0Width, - dx: t0FinalSize.x, - dw: mapSizeToFinalSize(tileSize.x - t0Width, 0).x, - - sy: t0Source.y, - sh: t0Height, - dy: 0, - dh: t0FinalSize.y, - }); - // t[2] - mapCoordinates.push({ - sx: t0Source.x, - sw: t0Width, - dx: 0, - dw: t0FinalSize.x, - - sy: 0, - sh: tileSize.y - t0Height, - dy: t0FinalSize.y, - dh: mapSizeToFinalSize(0, tileSize.y - t0Height).y, - }); - // t[3] - mapCoordinates.push({ - sx: 0, - sw: tileSize.x - t0Width, - dx: t0FinalSize.x, - dw: mapSizeToFinalSize(tileSize.x - t0Width, 0).x, - - sy: 0, - sh: tileSize.y - t0Height, - dy: t0FinalSize.y, - dh: mapSizeToFinalSize(0, tileSize.y - t0Height).y, - }); - - // wait for the basemaps to arrive - const baseMaps = (await baseMapsPromise).map((map) => map.value ?? false); - - // build the response - const t0Base = baseMaps[0].base; - const t0Overlay = baseMaps[0].overlay; - let t1Base; let t1Overlay; let t2Base; let t2Overlay; let t3Base; let t3Overlay; - if (mapCoordinates[1].dx < radarFinalSize.width && baseMaps[1]) { - t1Base = baseMaps[1].base; - t1Overlay = baseMaps[1].overlay; - } - if (mapCoordinates[2].dy < radarFinalSize.height && baseMaps[2]) { - t2Base = baseMaps[2].base; - t2Overlay = baseMaps[2].overlay; - if (mapCoordinates[1].dx < radarFinalSize.width && baseMaps[3]) { - t3Base = baseMaps[3].base; - t3Overlay = baseMaps[3].overlay; - } - } - // baseContext.drawImage(baseMaps.fullMap, sourceXY.x, sourceXY.y, offsetX * 2, offsetY * 2, 0, 0, radarFinalSize.width, radarFinalSize.height); - - postMessage({ - t0Base, t0Overlay, t1Base, t1Overlay, t2Base, t2Overlay, t3Base, t3Overlay, - }, [t0Base, t0Overlay, t1Base, t1Overlay, t2Base, t2Overlay, t3Base, t3Overlay]); -}; diff --git a/server/scripts/modules/radar-worker.mjs b/server/scripts/modules/radar-worker.mjs index 023d481..c81aba4 100644 --- a/server/scripts/modules/radar-worker.mjs +++ b/server/scripts/modules/radar-worker.mjs @@ -1,6 +1,5 @@ -import { - radarFinalSize, radarFullSize, removeDopplerRadarImageNoise, -} from './radar-utils.mjs'; +import { removeDopplerRadarImageNoise } from './radar-utils.mjs'; +import { RADAR_FULL_SIZE, RADAR_FINAL_SIZE } from './radar-constants.mjs'; onmessage = async (e) => { const { @@ -20,7 +19,7 @@ onmessage = async (e) => { }; // create radar context for manipulation - const radarCanvas = new OffscreenCanvas(radarFullSize.width, radarFullSize.height); + const radarCanvas = new OffscreenCanvas(RADAR_FULL_SIZE.width, RADAR_FULL_SIZE.height); const radarContext = radarCanvas.getContext('2d'); radarContext.imageSmoothingEnabled = false; @@ -34,8 +33,8 @@ onmessage = async (e) => { // assign to an html image element const radarImgElement = await createImageBitmap(radarImgBlob); // draw the entire image - radarContext.clearRect(0, 0, radarFullSize.width, radarFullSize.height); - radarContext.drawImage(radarImgElement, 0, 0, radarFullSize.width, radarFullSize.height); + radarContext.clearRect(0, 0, RADAR_FULL_SIZE.width, RADAR_FULL_SIZE.height); + radarContext.drawImage(radarImgElement, 0, 0, RADAR_FULL_SIZE.width, RADAR_FULL_SIZE.height); // crop the radar image without scaling const croppedRadarCanvas = new OffscreenCanvas(radarSource.width, radarSource.height); @@ -47,10 +46,10 @@ onmessage = async (e) => { removeDopplerRadarImageNoise(croppedRadarContext); // stretch the radar image - const stretchCanvas = new OffscreenCanvas(radarFinalSize.width, radarFinalSize.height); + const stretchCanvas = new OffscreenCanvas(RADAR_FINAL_SIZE.width, RADAR_FINAL_SIZE.height); const stretchContext = stretchCanvas.getContext('2d', { willReadFrequently: true }); stretchContext.imageSmoothingEnabled = false; - stretchContext.drawImage(croppedRadarCanvas, 0, 0, radarSource.width, radarSource.height, 0, 0, radarFinalSize.width, radarFinalSize.height); + stretchContext.drawImage(croppedRadarCanvas, 0, 0, radarSource.width, radarSource.height, 0, 0, RADAR_FINAL_SIZE.width, RADAR_FINAL_SIZE.height); const stretchedRadar = stretchCanvas.transferToImageBitmap(); diff --git a/server/scripts/modules/radar.mjs b/server/scripts/modules/radar.mjs index 0fd120e..d8d7fb8 100644 --- a/server/scripts/modules/radar.mjs +++ b/server/scripts/modules/radar.mjs @@ -6,7 +6,7 @@ import WeatherDisplay from './weatherdisplay.mjs'; import { registerDisplay, timeZone } from './navigation.mjs'; import * as utils from './radar-utils.mjs'; import { version } from './progress.mjs'; -import { elemForEach } from './utils/elem.mjs'; +import setTiles from './radar-tiles.mjs'; // TEMPORARY fix to disable radar on ios safari. The same engine (webkit) is // used for all ios browers (chrome, brave, firefox, etc) so it's safe to skip @@ -74,10 +74,6 @@ class Radar extends WeatherDisplay { // get some web workers started this.workers = (new Array(this.dopplerRadarImageMax)).fill(null).map(() => radarWorker()); } - if (!this.fixedWorker) { - // get the fixed background, overlay worker started - this.fixedWorker = fixedRadarWorker(); - } const baseUrl = `https://${RADAR_HOST}/archive/data/`; const baseUrlEnd = '/GIS/uscomp/?F=0&P=n0r*.png'; @@ -128,13 +124,13 @@ class Radar extends WeatherDisplay { // calculate offsets and sizes const offsetX = 120 * 2; const offsetY = 69 * 2; - const sourceXY = utils.getXYFromLatitudeLongitudeMap(this.weatherParameters, offsetX, offsetY); + const sourceXY = utils.getXYFromLatitudeLongitudeMap(this.weatherParameters); const radarSourceXY = utils.getXYFromLatitudeLongitudeDoppler(this.weatherParameters, offsetX, offsetY); - const baseAndOverlayPromise = this.fixedWorker.processAssets({ + // set up the base map and overlay tiles + setTiles({ sourceXY, - offsetX, - offsetY, + elemId: this.elemId, }); // Load the most recent doppler radar images. @@ -172,50 +168,6 @@ class Radar extends WeatherDisplay { elem, }; })); - // wait for the base and overlay - const baseAndOverlay = await baseAndOverlayPromise; - - // calculate final tile size - const finalTileSize = utils.mapSizeToFinalSize(utils.tileSize.x, utils.tileSize.y); - // fill the tiles with the map - elemForEach('.map-tiles img', (elem, index) => { - // get the base image - const base = baseAndOverlay[`t${index}Base`]; - // put it on a canvas - const canvas = document.createElement('canvas'); - const context = canvas.getContext('bitmaprenderer'); - context.transferFromImageBitmap(base); - // if it's not there, return (tile not needed) - if (!base) return; - // assign the bitmap to the image - elem.width = finalTileSize.x; - elem.height = finalTileSize.y; - elem.src = canvas.toDataURL(); - }); - elemForEach('.overlay-tiles img', (elem, index) => { - // get the base image - const base = baseAndOverlay[`t${index}Overlay`]; - // put it on a canvas - const canvas = document.createElement('canvas'); - const context = canvas.getContext('bitmaprenderer'); - context.transferFromImageBitmap(base); - // if it's not there, return (tile not needed) - if (!base) return; - // assign the bitmap to the image - elem.width = finalTileSize.x; - elem.height = finalTileSize.y; - elem.src = canvas.toDataURL(); - }); - // fill the tiles with the overlay - // shift the map tile containers - const tileShift = utils.modTile(sourceXY.x, sourceXY.y); - const tileShiftStretched = utils.mapSizeToFinalSize(tileShift.x, tileShift.y); - const mapTileContainer = this.elem.querySelector('.map-tiles'); - mapTileContainer.style.top = `${-tileShiftStretched.y}px`; - mapTileContainer.style.left = `${-tileShiftStretched.x}px`; - const overlayTileContainer = this.elem.querySelector('.overlay-tiles'); - overlayTileContainer.style.top = `${-tileShiftStretched.y}px`; - overlayTileContainer.style.left = `${-tileShiftStretched.x}px`; // put the elements in the container const scrollArea = this.elem.querySelector('.scroll-area'); @@ -271,31 +223,6 @@ const radarWorker = () => { }; }; -// create a radar worker for the fixed background images -const fixedRadarWorker = () => { - // create the worker - const worker = new Worker(`/resources/radar-worker-bg-fg.mjs?_=${version()}`, { type: 'module' }); - - const processAssets = (data) => new Promise((resolve, reject) => { - // prepare for done message - worker.onmessage = (e) => { - if (e?.data instanceof Error) { - reject(e.data); - } else if (e?.data?.t0Base instanceof ImageBitmap) { - resolve(e.data); - } - }; - - // start up the worker - worker.postMessage(data); - }); - - // return the object - return { - processAssets, - }; -}; - // register display // TEMPORARY: except on IOS and bots if (!isIos && !isBot) {