From 5df38bad2d30d71e16d7aab13f08b5bd20027479 Mon Sep 17 00:00:00 2001 From: grigo Date: Mon, 4 May 2026 07:56:45 +0300 Subject: [PATCH] Initial import: WebAisMap Closes TG-4 --- .gitignore | 5 + README.md | 3 + README_OFFLINE.md | 97 + SVG/ChosenTarget.svg | 71 + SVG/Engine.svg | 47 + SVG/LosingTarget.svg | 7 + SVG/Moored.svg | 19 + SVG/SVG/Engine.svg | 47 + SVG/SVG/Moored.svg | 19 + SVG/SVG/achor.svg | 18 + SVG/SVG/cog.svg | 16 + SVG/SVG/cursor.svg | 60 + SVG/SVG/fishing.svg | 16 + SVG/SVG/fishing_1.svg | 24 + SVG/SVG/ownShip.svg | 16 + SVG/SVG/sail.svg | 22 + SVG/SVG/Ресурс 8.svg | 18 + SVG/ScaleTarget.svg | 6 + SVG/Target.svg | 6 + SVG/TargetClassA.svg | 16 + SVG/achor.svg | 18 + SVG/base_station.svg | 29 + SVG/buey.svg | 30 + SVG/compass.svg | 24 + SVG/fishing.svg | 24 + SVG/icon.svg | 132 + SVG/sail.svg | 22 + SVG/targetList.svg | 43 + SVG/targetList_1.svg | 57 + ais_nrzi_pipeline/__init__.py | 1 + ais_nrzi_pipeline/encode_to_nrzi.py | 135 + ais_nrzi_pipeline/phy.py | 229 + ais_phy.py | 178 + download_tiles.py | 261 + main.py | 60 + mock_data/base_stations.json | 16 + mock_data/buoys.json | 38 + mock_data/vessels.json | 81 + network_manager.py | 150 + requirements.txt | 5 + routes.py | 937 +++ scripts/aismap-network.service | 14 + scripts/install.sh | 80 + scripts/network_init.sh | 75 + scripts/pulse_once.py | 27 + scripts/to_ap.sh | 67 + scripts/to_wifi.sh | 86 + ssl_utils.py | 148 + state.py | 49 + static/css/style.css | 1359 ++++ static/js/app.js | 6077 +++++++++++++++++ static/js/mmsi_mid_iso2.json | 1 + static/js/ship_dims_editor.js | 473 ++ static/js/ship_types_table51.js | 179 + .../leaflet/Leaflet.VectorGrid.bundled.min.js | 2 + static/leaflet/images/layers-2x.png | Bin 0 -> 1259 bytes static/leaflet/images/layers.png | Bin 0 -> 696 bytes static/leaflet/images/marker-icon-2x.png | Bin 0 -> 2464 bytes static/leaflet/images/marker-icon.png | Bin 0 -> 1466 bytes static/leaflet/images/marker-shadow.png | Bin 0 -> 618 bytes static/leaflet/leaflet-rotate.js | 1940 ++++++ static/leaflet/leaflet.css | 661 ++ static/leaflet/leaflet.js | 5 + static/sw.js | 151 + static/tiles/1/1/0.png | Bin 0 -> 9509 bytes static/tiles/10/618/318.png | Bin 0 -> 37519 bytes static/tiles/10/618/319.png | Bin 0 -> 46674 bytes static/tiles/10/618/320.png | Bin 0 -> 46010 bytes static/tiles/10/618/321.png | Bin 0 -> 42044 bytes static/tiles/10/619/318.png | Bin 0 -> 34563 bytes static/tiles/10/619/319.png | Bin 0 -> 41698 bytes static/tiles/10/619/320.png | Bin 0 -> 46651 bytes static/tiles/10/619/321.png | Bin 0 -> 38262 bytes static/tiles/11/1236/637.png | Bin 0 -> 27638 bytes static/tiles/11/1236/638.png | Bin 0 -> 35228 bytes static/tiles/11/1236/639.png | Bin 0 -> 36114 bytes static/tiles/11/1236/640.png | Bin 0 -> 34609 bytes static/tiles/11/1236/641.png | Bin 0 -> 34066 bytes static/tiles/11/1236/642.png | Bin 0 -> 29073 bytes static/tiles/11/1237/637.png | Bin 0 -> 26558 bytes static/tiles/11/1237/638.png | Bin 0 -> 34116 bytes static/tiles/11/1237/639.png | Bin 0 -> 40383 bytes static/tiles/11/1237/640.png | Bin 0 -> 43512 bytes static/tiles/11/1237/641.png | Bin 0 -> 34841 bytes static/tiles/11/1237/642.png | Bin 0 -> 36290 bytes static/tiles/11/1238/637.png | Bin 0 -> 24632 bytes static/tiles/11/1238/638.png | Bin 0 -> 29789 bytes static/tiles/11/1238/639.png | Bin 0 -> 37726 bytes static/tiles/11/1238/640.png | Bin 0 -> 40713 bytes static/tiles/11/1238/641.png | Bin 0 -> 37396 bytes static/tiles/11/1238/642.png | Bin 0 -> 31830 bytes static/tiles/11/1239/637.png | Bin 0 -> 28988 bytes static/tiles/11/1239/638.png | Bin 0 -> 32254 bytes static/tiles/11/1239/639.png | Bin 0 -> 28789 bytes static/tiles/11/1239/640.png | Bin 0 -> 37878 bytes static/tiles/11/1239/641.png | Bin 0 -> 30331 bytes static/tiles/11/1239/642.png | Bin 0 -> 25988 bytes static/tiles/12/2472/1275.png | Bin 0 -> 21807 bytes static/tiles/12/2472/1276.png | Bin 0 -> 28464 bytes static/tiles/12/2472/1277.png | Bin 0 -> 21070 bytes static/tiles/12/2472/1278.png | Bin 0 -> 24965 bytes static/tiles/12/2472/1279.png | Bin 0 -> 28892 bytes static/tiles/12/2472/1280.png | Bin 0 -> 21985 bytes static/tiles/12/2472/1281.png | Bin 0 -> 27390 bytes static/tiles/12/2472/1282.png | Bin 0 -> 27254 bytes static/tiles/12/2472/1283.png | Bin 0 -> 25457 bytes static/tiles/12/2472/1284.png | Bin 0 -> 21252 bytes static/tiles/12/2472/1285.png | Bin 0 -> 25038 bytes static/tiles/12/2473/1275.png | Bin 0 -> 23458 bytes static/tiles/12/2473/1276.png | Bin 0 -> 26413 bytes static/tiles/12/2473/1277.png | Bin 0 -> 30233 bytes static/tiles/12/2473/1278.png | Bin 0 -> 32526 bytes static/tiles/12/2473/1279.png | Bin 0 -> 29940 bytes static/tiles/12/2473/1280.png | Bin 0 -> 25696 bytes static/tiles/12/2473/1281.png | Bin 0 -> 31349 bytes static/tiles/12/2473/1282.png | Bin 0 -> 28090 bytes static/tiles/12/2473/1283.png | Bin 0 -> 22756 bytes static/tiles/12/2473/1284.png | Bin 0 -> 23553 bytes static/tiles/12/2473/1285.png | Bin 0 -> 21930 bytes static/tiles/12/2474/1275.png | Bin 0 -> 26144 bytes static/tiles/12/2474/1276.png | Bin 0 -> 30325 bytes static/tiles/12/2474/1277.png | Bin 0 -> 29385 bytes static/tiles/12/2474/1278.png | Bin 0 -> 31881 bytes static/tiles/12/2474/1279.png | Bin 0 -> 32720 bytes static/tiles/12/2474/1280.png | Bin 0 -> 32358 bytes static/tiles/12/2474/1281.png | Bin 0 -> 33324 bytes static/tiles/12/2474/1282.png | Bin 0 -> 29953 bytes static/tiles/12/2474/1283.png | Bin 0 -> 26871 bytes static/tiles/12/2474/1284.png | Bin 0 -> 30857 bytes static/tiles/12/2474/1285.png | Bin 0 -> 27142 bytes static/tiles/12/2475/1275.png | Bin 0 -> 20245 bytes static/tiles/12/2475/1276.png | Bin 0 -> 20472 bytes static/tiles/12/2475/1277.png | Bin 0 -> 28936 bytes static/tiles/12/2475/1278.png | Bin 0 -> 32398 bytes static/tiles/12/2475/1279.png | Bin 0 -> 34656 bytes static/tiles/12/2475/1280.png | Bin 0 -> 37684 bytes static/tiles/12/2475/1281.png | Bin 0 -> 35597 bytes static/tiles/12/2475/1282.png | Bin 0 -> 28893 bytes static/tiles/12/2475/1283.png | Bin 0 -> 26978 bytes static/tiles/12/2475/1284.png | Bin 0 -> 29447 bytes static/tiles/12/2475/1285.png | Bin 0 -> 28758 bytes static/tiles/12/2476/1275.png | Bin 0 -> 19080 bytes static/tiles/12/2476/1276.png | Bin 0 -> 18480 bytes static/tiles/12/2476/1277.png | Bin 0 -> 25077 bytes static/tiles/12/2476/1278.png | Bin 0 -> 35520 bytes static/tiles/12/2476/1279.png | Bin 0 -> 39274 bytes static/tiles/12/2476/1280.png | Bin 0 -> 39849 bytes static/tiles/12/2476/1281.png | Bin 0 -> 31116 bytes static/tiles/12/2476/1282.png | Bin 0 -> 32450 bytes static/tiles/12/2476/1283.png | Bin 0 -> 30067 bytes static/tiles/12/2476/1284.png | Bin 0 -> 28695 bytes static/tiles/12/2476/1285.png | Bin 0 -> 21199 bytes static/tiles/12/2477/1275.png | Bin 0 -> 21688 bytes static/tiles/12/2477/1276.png | Bin 0 -> 19960 bytes static/tiles/12/2477/1277.png | Bin 0 -> 28912 bytes static/tiles/12/2477/1278.png | Bin 0 -> 13913 bytes static/tiles/12/2477/1279.png | Bin 0 -> 30540 bytes static/tiles/12/2477/1280.png | Bin 0 -> 30339 bytes static/tiles/12/2477/1281.png | Bin 0 -> 28647 bytes static/tiles/12/2477/1282.png | Bin 0 -> 29097 bytes static/tiles/12/2477/1283.png | Bin 0 -> 29097 bytes static/tiles/12/2477/1284.png | Bin 0 -> 20718 bytes static/tiles/12/2477/1285.png | Bin 0 -> 25522 bytes static/tiles/12/2478/1275.png | Bin 0 -> 30445 bytes static/tiles/12/2478/1276.png | Bin 0 -> 31525 bytes static/tiles/12/2478/1277.png | Bin 0 -> 22283 bytes static/tiles/12/2478/1278.png | Bin 0 -> 14834 bytes static/tiles/12/2478/1279.png | Bin 0 -> 26994 bytes static/tiles/12/2478/1280.png | Bin 0 -> 29956 bytes static/tiles/12/2478/1281.png | Bin 0 -> 29889 bytes static/tiles/12/2478/1282.png | Bin 0 -> 22602 bytes static/tiles/12/2478/1283.png | Bin 0 -> 21524 bytes static/tiles/12/2478/1284.png | Bin 0 -> 20517 bytes static/tiles/12/2478/1285.png | Bin 0 -> 19781 bytes static/tiles/12/2479/1275.png | Bin 0 -> 22386 bytes static/tiles/12/2479/1276.png | Bin 0 -> 28459 bytes static/tiles/12/2479/1277.png | Bin 0 -> 27224 bytes static/tiles/12/2479/1278.png | Bin 0 -> 18560 bytes static/tiles/12/2479/1279.png | Bin 0 -> 24518 bytes static/tiles/12/2479/1280.png | Bin 0 -> 29499 bytes static/tiles/12/2479/1281.png | Bin 0 -> 30365 bytes static/tiles/12/2479/1282.png | Bin 0 -> 26279 bytes static/tiles/12/2479/1283.png | Bin 0 -> 17921 bytes static/tiles/12/2479/1284.png | Bin 0 -> 20376 bytes static/tiles/12/2479/1285.png | Bin 0 -> 18069 bytes static/tiles/2/2/1.png | Bin 0 -> 11430 bytes static/tiles/3/4/2.png | Bin 0 -> 15158 bytes static/tiles/3/4/3.png | Bin 0 -> 14577 bytes static/tiles/3/5/2.png | Bin 0 -> 5774 bytes static/tiles/3/5/3.png | Bin 0 -> 9482 bytes static/tiles/4/10/4.png | Bin 0 -> 8437 bytes static/tiles/4/10/5.png | Bin 0 -> 13321 bytes static/tiles/4/10/6.png | Bin 0 -> 20173 bytes static/tiles/4/9/4.png | Bin 0 -> 19503 bytes static/tiles/4/9/5.png | Bin 0 -> 22190 bytes static/tiles/4/9/6.png | Bin 0 -> 22306 bytes static/tiles/5/18/10.png | Bin 0 -> 52713 bytes static/tiles/5/18/11.png | Bin 0 -> 42317 bytes static/tiles/5/18/12.png | Bin 0 -> 27216 bytes static/tiles/5/18/13.png | Bin 0 -> 14549 bytes static/tiles/5/18/9.png | Bin 0 -> 47596 bytes static/tiles/5/19/10.png | Bin 0 -> 46539 bytes static/tiles/5/19/11.png | Bin 0 -> 35615 bytes static/tiles/5/19/12.png | Bin 0 -> 29874 bytes static/tiles/5/19/13.png | Bin 0 -> 18339 bytes static/tiles/5/19/9.png | Bin 0 -> 45835 bytes static/tiles/5/20/10.png | Bin 0 -> 35146 bytes static/tiles/5/20/11.png | Bin 0 -> 17965 bytes static/tiles/5/20/12.png | Bin 0 -> 23496 bytes static/tiles/5/20/13.png | Bin 0 -> 22955 bytes static/tiles/5/20/9.png | Bin 0 -> 42712 bytes static/tiles/5/21/10.png | Bin 0 -> 24983 bytes static/tiles/5/21/11.png | Bin 0 -> 12860 bytes static/tiles/5/21/12.png | Bin 0 -> 18338 bytes static/tiles/5/21/13.png | Bin 0 -> 13236 bytes static/tiles/5/21/9.png | Bin 0 -> 35991 bytes static/tiles/6/37/18.png | Bin 0 -> 39749 bytes static/tiles/6/37/19.png | Bin 0 -> 45260 bytes static/tiles/6/37/20.png | Bin 0 -> 47959 bytes static/tiles/6/37/21.png | Bin 0 -> 46006 bytes static/tiles/6/37/22.png | Bin 0 -> 43063 bytes static/tiles/6/37/23.png | Bin 0 -> 13469 bytes static/tiles/6/37/24.png | Bin 0 -> 39357 bytes static/tiles/6/37/25.png | Bin 0 -> 8334 bytes static/tiles/6/37/26.png | Bin 0 -> 22459 bytes static/tiles/6/38/18.png | Bin 0 -> 40381 bytes static/tiles/6/38/19.png | Bin 0 -> 47692 bytes static/tiles/6/38/20.png | Bin 0 -> 46847 bytes static/tiles/6/38/21.png | Bin 0 -> 47270 bytes static/tiles/6/38/22.png | Bin 0 -> 40224 bytes static/tiles/6/38/23.png | Bin 0 -> 14623 bytes static/tiles/6/38/24.png | Bin 0 -> 36753 bytes static/tiles/6/38/25.png | Bin 0 -> 24654 bytes static/tiles/6/38/26.png | Bin 0 -> 20728 bytes static/tiles/6/39/18.png | Bin 0 -> 28966 bytes static/tiles/6/39/19.png | Bin 0 -> 43954 bytes static/tiles/6/39/20.png | Bin 0 -> 41518 bytes static/tiles/6/39/21.png | Bin 0 -> 36096 bytes static/tiles/6/39/22.png | Bin 0 -> 31381 bytes static/tiles/6/39/23.png | Bin 0 -> 38328 bytes static/tiles/6/39/24.png | Bin 0 -> 32095 bytes static/tiles/6/39/25.png | Bin 0 -> 21227 bytes static/tiles/6/39/26.png | Bin 0 -> 16007 bytes static/tiles/6/40/18.png | Bin 0 -> 30503 bytes static/tiles/6/40/19.png | Bin 0 -> 44067 bytes static/tiles/6/40/20.png | Bin 0 -> 41284 bytes static/tiles/6/40/21.png | Bin 0 -> 19657 bytes static/tiles/6/40/22.png | Bin 0 -> 15806 bytes static/tiles/6/40/23.png | Bin 0 -> 23301 bytes static/tiles/6/40/24.png | Bin 0 -> 26021 bytes static/tiles/6/40/25.png | Bin 0 -> 29089 bytes static/tiles/6/40/26.png | Bin 0 -> 19923 bytes static/tiles/6/41/18.png | Bin 0 -> 23943 bytes static/tiles/6/41/19.png | Bin 0 -> 43588 bytes static/tiles/6/41/20.png | Bin 0 -> 39991 bytes static/tiles/6/41/21.png | Bin 0 -> 17293 bytes static/tiles/6/41/22.png | Bin 0 -> 9411 bytes static/tiles/6/41/23.png | Bin 0 -> 10898 bytes static/tiles/6/41/24.png | Bin 0 -> 11442 bytes static/tiles/6/41/25.png | Bin 0 -> 18529 bytes static/tiles/6/41/26.png | Bin 0 -> 24995 bytes static/tiles/6/42/18.png | Bin 0 -> 25435 bytes static/tiles/6/42/19.png | Bin 0 -> 39555 bytes static/tiles/6/42/20.png | Bin 0 -> 34760 bytes static/tiles/6/42/21.png | Bin 0 -> 14183 bytes static/tiles/6/42/22.png | Bin 0 -> 7133 bytes static/tiles/6/42/23.png | Bin 0 -> 12758 bytes static/tiles/6/42/24.png | Bin 0 -> 13333 bytes static/tiles/6/42/25.png | Bin 0 -> 12916 bytes static/tiles/6/42/26.png | Bin 0 -> 12127 bytes static/tiles/6/43/18.png | Bin 0 -> 20160 bytes static/tiles/6/43/19.png | Bin 0 -> 31829 bytes static/tiles/6/43/20.png | Bin 0 -> 23971 bytes static/tiles/6/43/21.png | Bin 0 -> 7280 bytes static/tiles/6/43/22.png | Bin 0 -> 4753 bytes static/tiles/6/43/23.png | Bin 0 -> 8441 bytes static/tiles/6/43/24.png | Bin 0 -> 19597 bytes static/tiles/6/43/25.png | Bin 0 -> 14326 bytes static/tiles/6/43/26.png | Bin 0 -> 13049 bytes static/tiles/7/75/37.png | Bin 0 -> 36372 bytes static/tiles/7/75/38.png | Bin 0 -> 32267 bytes static/tiles/7/75/39.png | Bin 0 -> 31625 bytes static/tiles/7/75/40.png | Bin 0 -> 37099 bytes static/tiles/7/75/41.png | Bin 0 -> 39007 bytes static/tiles/7/75/42.png | Bin 0 -> 34229 bytes static/tiles/7/75/43.png | Bin 0 -> 40257 bytes static/tiles/7/75/44.png | Bin 0 -> 42225 bytes static/tiles/7/75/45.png | Bin 0 -> 24801 bytes static/tiles/7/75/46.png | Bin 0 -> 3872 bytes static/tiles/7/75/47.png | Bin 0 -> 16009 bytes static/tiles/7/75/48.png | Bin 0 -> 25760 bytes static/tiles/7/75/49.png | Bin 0 -> 24408 bytes static/tiles/7/75/50.png | Bin 0 -> 15130 bytes static/tiles/7/75/51.png | Bin 0 -> 103 bytes static/tiles/7/75/52.png | Bin 0 -> 20537 bytes static/tiles/7/75/53.png | Bin 0 -> 12738 bytes static/tiles/7/76/37.png | Bin 0 -> 41174 bytes static/tiles/7/76/38.png | Bin 0 -> 39064 bytes static/tiles/7/76/39.png | Bin 0 -> 43151 bytes static/tiles/7/76/40.png | Bin 0 -> 41925 bytes static/tiles/7/76/41.png | Bin 0 -> 33483 bytes static/tiles/7/76/42.png | Bin 0 -> 39894 bytes static/tiles/7/76/43.png | Bin 0 -> 42405 bytes static/tiles/7/76/44.png | Bin 0 -> 39681 bytes static/tiles/7/76/45.png | Bin 0 -> 27173 bytes static/tiles/7/76/46.png | Bin 0 -> 8580 bytes static/tiles/7/76/47.png | Bin 0 -> 19198 bytes static/tiles/7/76/48.png | Bin 0 -> 27103 bytes static/tiles/7/76/49.png | Bin 0 -> 31250 bytes static/tiles/7/76/50.png | Bin 0 -> 15691 bytes static/tiles/7/76/51.png | Bin 0 -> 23939 bytes static/tiles/7/76/52.png | Bin 0 -> 19840 bytes static/tiles/7/76/53.png | Bin 0 -> 14740 bytes static/tiles/7/77/37.png | Bin 0 -> 31482 bytes static/tiles/7/77/38.png | Bin 0 -> 36443 bytes static/tiles/7/77/39.png | Bin 0 -> 46745 bytes static/tiles/7/77/40.png | Bin 0 -> 48050 bytes static/tiles/7/77/41.png | Bin 0 -> 35385 bytes static/tiles/7/77/42.png | Bin 0 -> 41049 bytes static/tiles/7/77/43.png | Bin 0 -> 42218 bytes static/tiles/7/77/44.png | Bin 0 -> 44146 bytes static/tiles/7/77/45.png | Bin 0 -> 25333 bytes static/tiles/7/77/46.png | Bin 0 -> 13329 bytes static/tiles/7/77/47.png | Bin 0 -> 3776 bytes static/tiles/7/77/48.png | Bin 0 -> 26610 bytes static/tiles/7/77/49.png | Bin 0 -> 24853 bytes static/tiles/7/77/50.png | Bin 0 -> 18846 bytes static/tiles/7/77/51.png | Bin 0 -> 9896 bytes static/tiles/7/77/52.png | Bin 0 -> 11279 bytes static/tiles/7/77/53.png | Bin 0 -> 7125 bytes static/tiles/7/78/37.png | Bin 0 -> 24693 bytes static/tiles/7/78/38.png | Bin 0 -> 39387 bytes static/tiles/7/78/39.png | Bin 0 -> 44789 bytes static/tiles/7/78/40.png | Bin 0 -> 38747 bytes static/tiles/7/78/41.png | Bin 0 -> 34485 bytes static/tiles/7/78/42.png | Bin 0 -> 36509 bytes static/tiles/7/78/43.png | Bin 0 -> 39333 bytes static/tiles/7/78/44.png | Bin 0 -> 31869 bytes static/tiles/7/78/45.png | Bin 0 -> 26511 bytes static/tiles/7/78/46.png | Bin 0 -> 37727 bytes static/tiles/7/78/47.png | Bin 0 -> 17048 bytes static/tiles/7/78/48.png | Bin 0 -> 22744 bytes static/tiles/7/78/49.png | Bin 0 -> 29360 bytes static/tiles/7/78/50.png | Bin 0 -> 11076 bytes static/tiles/7/78/51.png | Bin 0 -> 4751 bytes static/tiles/7/78/52.png | Bin 0 -> 9827 bytes static/tiles/7/78/53.png | Bin 0 -> 8963 bytes static/tiles/7/79/37.png | Bin 0 -> 16946 bytes static/tiles/7/79/38.png | Bin 0 -> 23761 bytes static/tiles/7/79/39.png | Bin 0 -> 38840 bytes static/tiles/7/79/40.png | Bin 0 -> 31225 bytes static/tiles/7/79/41.png | Bin 0 -> 30118 bytes static/tiles/7/79/42.png | Bin 0 -> 22125 bytes static/tiles/7/79/43.png | Bin 0 -> 25165 bytes static/tiles/7/79/44.png | Bin 0 -> 24558 bytes static/tiles/7/79/45.png | Bin 0 -> 20598 bytes static/tiles/7/79/46.png | Bin 0 -> 34068 bytes static/tiles/7/79/47.png | Bin 0 -> 37703 bytes static/tiles/7/79/48.png | Bin 0 -> 20854 bytes static/tiles/7/79/49.png | Bin 0 -> 22942 bytes static/tiles/7/79/50.png | Bin 0 -> 20759 bytes static/tiles/7/79/51.png | Bin 0 -> 18326 bytes static/tiles/7/79/52.png | Bin 0 -> 8408 bytes static/tiles/7/79/53.png | Bin 0 -> 13151 bytes static/tiles/7/80/37.png | Bin 0 -> 19682 bytes static/tiles/7/80/38.png | Bin 0 -> 27934 bytes static/tiles/7/80/39.png | Bin 0 -> 29355 bytes static/tiles/7/80/40.png | Bin 0 -> 29023 bytes static/tiles/7/80/41.png | Bin 0 -> 32623 bytes static/tiles/7/80/42.png | Bin 0 -> 27407 bytes static/tiles/7/80/43.png | Bin 0 -> 13002 bytes static/tiles/7/80/44.png | Bin 0 -> 15308 bytes static/tiles/7/80/45.png | Bin 0 -> 13435 bytes static/tiles/7/80/46.png | Bin 0 -> 17021 bytes static/tiles/7/80/47.png | Bin 0 -> 29653 bytes static/tiles/7/80/48.png | Bin 0 -> 26435 bytes static/tiles/7/80/49.png | Bin 0 -> 14327 bytes static/tiles/7/80/50.png | Bin 0 -> 19912 bytes static/tiles/7/80/51.png | Bin 0 -> 18315 bytes static/tiles/7/80/52.png | Bin 0 -> 16158 bytes static/tiles/7/80/53.png | Bin 0 -> 10035 bytes static/tiles/7/81/37.png | Bin 0 -> 22032 bytes static/tiles/7/81/38.png | Bin 0 -> 45533 bytes static/tiles/7/81/39.png | Bin 0 -> 40674 bytes static/tiles/7/81/40.png | Bin 0 -> 38395 bytes static/tiles/7/81/41.png | Bin 0 -> 32806 bytes static/tiles/7/81/42.png | Bin 0 -> 12763 bytes static/tiles/7/81/43.png | Bin 0 -> 4029 bytes static/tiles/7/81/44.png | Bin 0 -> 3394 bytes static/tiles/7/81/45.png | Bin 0 -> 11604 bytes static/tiles/7/81/46.png | Bin 0 -> 2063 bytes static/tiles/7/81/47.png | Bin 0 -> 15615 bytes static/tiles/7/81/48.png | Bin 0 -> 17674 bytes static/tiles/7/81/49.png | Bin 0 -> 15232 bytes static/tiles/7/81/50.png | Bin 0 -> 16989 bytes static/tiles/7/81/51.png | Bin 0 -> 19563 bytes static/tiles/7/81/52.png | Bin 0 -> 17047 bytes static/tiles/7/81/53.png | Bin 0 -> 10992 bytes static/tiles/7/82/37.png | Bin 0 -> 18965 bytes static/tiles/7/82/38.png | Bin 0 -> 32212 bytes static/tiles/7/82/39.png | Bin 0 -> 42367 bytes static/tiles/7/82/40.png | Bin 0 -> 35235 bytes static/tiles/7/82/41.png | Bin 0 -> 27002 bytes static/tiles/7/82/42.png | Bin 0 -> 23630 bytes static/tiles/7/82/43.png | Bin 0 -> 5241 bytes static/tiles/7/82/44.png | Bin 0 -> 7588 bytes static/tiles/7/82/45.png | Bin 0 -> 5669 bytes static/tiles/7/82/46.png | Bin 0 -> 5233 bytes static/tiles/7/82/47.png | Bin 0 -> 8712 bytes static/tiles/7/82/48.png | Bin 0 -> 5047 bytes static/tiles/7/82/49.png | Bin 0 -> 3545 bytes static/tiles/7/82/50.png | Bin 0 -> 19920 bytes static/tiles/7/82/51.png | Bin 0 -> 13905 bytes static/tiles/7/82/52.png | Bin 0 -> 23137 bytes static/tiles/7/82/53.png | Bin 0 -> 17381 bytes static/tiles/7/83/37.png | Bin 0 -> 15858 bytes static/tiles/7/83/38.png | Bin 0 -> 40019 bytes static/tiles/7/83/39.png | Bin 0 -> 38612 bytes static/tiles/7/83/40.png | Bin 0 -> 38282 bytes static/tiles/7/83/41.png | Bin 0 -> 29385 bytes static/tiles/7/83/42.png | Bin 0 -> 14594 bytes static/tiles/7/83/43.png | Bin 0 -> 3233 bytes static/tiles/7/83/44.png | Bin 0 -> 2615 bytes static/tiles/7/83/45.png | Bin 0 -> 4673 bytes static/tiles/7/83/46.png | Bin 0 -> 2608 bytes static/tiles/7/83/47.png | Bin 0 -> 2937 bytes static/tiles/7/83/48.png | Bin 0 -> 7206 bytes static/tiles/7/83/49.png | Bin 0 -> 11925 bytes static/tiles/7/83/50.png | Bin 0 -> 7953 bytes static/tiles/7/83/51.png | Bin 0 -> 6241 bytes static/tiles/7/83/52.png | Bin 0 -> 10906 bytes static/tiles/7/83/53.png | Bin 0 -> 16377 bytes static/tiles/7/84/37.png | Bin 0 -> 21682 bytes static/tiles/7/84/38.png | Bin 0 -> 28641 bytes static/tiles/7/84/39.png | Bin 0 -> 30049 bytes static/tiles/7/84/40.png | Bin 0 -> 30788 bytes static/tiles/7/84/41.png | Bin 0 -> 24538 bytes static/tiles/7/84/42.png | Bin 0 -> 22573 bytes static/tiles/7/84/43.png | Bin 0 -> 4292 bytes static/tiles/7/84/44.png | Bin 0 -> 1223 bytes static/tiles/7/84/45.png | Bin 0 -> 4312 bytes static/tiles/7/84/46.png | Bin 0 -> 3994 bytes static/tiles/7/84/47.png | Bin 0 -> 8887 bytes static/tiles/7/84/48.png | Bin 0 -> 4475 bytes static/tiles/7/84/49.png | Bin 0 -> 12045 bytes static/tiles/7/84/50.png | Bin 0 -> 8216 bytes static/tiles/7/84/51.png | Bin 0 -> 5912 bytes static/tiles/7/84/52.png | Bin 0 -> 5176 bytes static/tiles/7/84/53.png | Bin 0 -> 7299 bytes static/tiles/7/85/37.png | Bin 0 -> 22149 bytes static/tiles/7/85/38.png | Bin 0 -> 28386 bytes static/tiles/7/85/39.png | Bin 0 -> 39678 bytes static/tiles/7/85/40.png | Bin 0 -> 37010 bytes static/tiles/7/85/41.png | Bin 0 -> 21061 bytes static/tiles/7/85/42.png | Bin 0 -> 7310 bytes static/tiles/7/85/43.png | Bin 0 -> 4571 bytes static/tiles/7/85/44.png | Bin 0 -> 4163 bytes static/tiles/7/85/45.png | Bin 0 -> 7112 bytes static/tiles/7/85/46.png | Bin 0 -> 5186 bytes static/tiles/7/85/47.png | Bin 0 -> 13845 bytes static/tiles/7/85/48.png | Bin 0 -> 3740 bytes static/tiles/7/85/49.png | Bin 0 -> 10019 bytes static/tiles/7/85/50.png | Bin 0 -> 10287 bytes static/tiles/7/85/51.png | Bin 0 -> 5779 bytes static/tiles/7/85/52.png | Bin 0 -> 7171 bytes static/tiles/7/85/53.png | Bin 0 -> 6869 bytes static/tiles/7/86/37.png | Bin 0 -> 16573 bytes static/tiles/7/86/38.png | Bin 0 -> 20047 bytes static/tiles/7/86/39.png | Bin 0 -> 36188 bytes static/tiles/7/86/40.png | Bin 0 -> 30164 bytes static/tiles/7/86/41.png | Bin 0 -> 11970 bytes static/tiles/7/86/42.png | Bin 0 -> 4973 bytes static/tiles/7/86/43.png | Bin 0 -> 3706 bytes static/tiles/7/86/44.png | Bin 0 -> 3171 bytes static/tiles/7/86/45.png | Bin 0 -> 3972 bytes static/tiles/7/86/46.png | Bin 0 -> 2768 bytes static/tiles/7/86/47.png | Bin 0 -> 5646 bytes static/tiles/7/86/48.png | Bin 0 -> 13965 bytes static/tiles/7/86/49.png | Bin 0 -> 8081 bytes static/tiles/7/86/50.png | Bin 0 -> 9038 bytes static/tiles/7/86/51.png | Bin 0 -> 6363 bytes static/tiles/7/86/52.png | Bin 0 -> 7329 bytes static/tiles/7/86/53.png | Bin 0 -> 6095 bytes static/tiles/8/150/100.png | Bin 0 -> 4629 bytes static/tiles/8/150/101.png | Bin 0 -> 2411 bytes static/tiles/8/150/102.png | Bin 0 -> 103 bytes static/tiles/8/150/103.png | Bin 0 -> 379 bytes static/tiles/8/150/104.png | Bin 0 -> 17989 bytes static/tiles/8/150/105.png | Bin 0 -> 29184 bytes static/tiles/8/150/106.png | Bin 0 -> 10663 bytes static/tiles/8/150/75.png | Bin 0 -> 30349 bytes static/tiles/8/150/76.png | Bin 0 -> 28242 bytes static/tiles/8/150/77.png | Bin 0 -> 25676 bytes static/tiles/8/150/78.png | Bin 0 -> 27552 bytes static/tiles/8/150/79.png | Bin 0 -> 27927 bytes static/tiles/8/150/80.png | Bin 0 -> 32026 bytes static/tiles/8/150/81.png | Bin 0 -> 35559 bytes static/tiles/8/150/82.png | Bin 0 -> 39476 bytes static/tiles/8/150/83.png | Bin 0 -> 35402 bytes static/tiles/8/150/84.png | Bin 0 -> 33948 bytes static/tiles/8/150/85.png | Bin 0 -> 28361 bytes static/tiles/8/150/86.png | Bin 0 -> 33106 bytes static/tiles/8/150/87.png | Bin 0 -> 46638 bytes static/tiles/8/150/88.png | Bin 0 -> 38606 bytes static/tiles/8/150/89.png | Bin 0 -> 43449 bytes static/tiles/8/150/90.png | Bin 0 -> 26716 bytes static/tiles/8/150/91.png | Bin 0 -> 4435 bytes static/tiles/8/150/92.png | Bin 0 -> 368 bytes static/tiles/8/150/93.png | Bin 0 -> 887 bytes static/tiles/8/150/94.png | Bin 0 -> 669 bytes static/tiles/8/150/95.png | Bin 0 -> 16055 bytes static/tiles/8/150/96.png | Bin 0 -> 24859 bytes static/tiles/8/150/97.png | Bin 0 -> 16492 bytes static/tiles/8/150/98.png | Bin 0 -> 19234 bytes static/tiles/8/150/99.png | Bin 0 -> 26234 bytes static/tiles/8/151/100.png | Bin 0 -> 16945 bytes static/tiles/8/151/101.png | Bin 0 -> 24648 bytes static/tiles/8/151/102.png | Bin 0 -> 701 bytes static/tiles/8/151/103.png | Bin 0 -> 772 bytes static/tiles/8/151/104.png | Bin 0 -> 7432 bytes static/tiles/8/151/105.png | Bin 0 -> 12544 bytes static/tiles/8/151/106.png | Bin 0 -> 11469 bytes static/tiles/8/151/75.png | Bin 0 -> 23004 bytes static/tiles/8/151/76.png | Bin 0 -> 30404 bytes static/tiles/8/151/77.png | Bin 0 -> 30126 bytes static/tiles/8/151/78.png | Bin 0 -> 31507 bytes static/tiles/8/151/79.png | Bin 0 -> 29120 bytes static/tiles/8/151/80.png | Bin 0 -> 32560 bytes static/tiles/8/151/81.png | Bin 0 -> 38564 bytes static/tiles/8/151/82.png | Bin 0 -> 39270 bytes static/tiles/8/151/83.png | Bin 0 -> 30458 bytes static/tiles/8/151/84.png | Bin 0 -> 33853 bytes static/tiles/8/151/85.png | Bin 0 -> 31340 bytes static/tiles/8/151/86.png | Bin 0 -> 36906 bytes static/tiles/8/151/87.png | Bin 0 -> 33867 bytes static/tiles/8/151/88.png | Bin 0 -> 42038 bytes static/tiles/8/151/89.png | Bin 0 -> 40614 bytes static/tiles/8/151/90.png | Bin 0 -> 34047 bytes static/tiles/8/151/91.png | Bin 0 -> 17666 bytes static/tiles/8/151/92.png | Bin 0 -> 8784 bytes static/tiles/8/151/93.png | Bin 0 -> 833 bytes static/tiles/8/151/94.png | Bin 0 -> 1686 bytes static/tiles/8/151/95.png | Bin 0 -> 30341 bytes static/tiles/8/151/96.png | Bin 0 -> 26098 bytes static/tiles/8/151/97.png | Bin 0 -> 19345 bytes static/tiles/8/151/98.png | Bin 0 -> 17263 bytes static/tiles/8/151/99.png | Bin 0 -> 19589 bytes static/tiles/8/152/100.png | Bin 0 -> 9471 bytes static/tiles/8/152/101.png | Bin 0 -> 8230 bytes static/tiles/8/152/102.png | Bin 0 -> 1459 bytes static/tiles/8/152/103.png | Bin 0 -> 13445 bytes static/tiles/8/152/104.png | Bin 0 -> 24964 bytes static/tiles/8/152/105.png | Bin 0 -> 15636 bytes static/tiles/8/152/106.png | Bin 0 -> 19421 bytes static/tiles/8/152/75.png | Bin 0 -> 34366 bytes static/tiles/8/152/76.png | Bin 0 -> 29427 bytes static/tiles/8/152/77.png | Bin 0 -> 40255 bytes static/tiles/8/152/78.png | Bin 0 -> 37196 bytes static/tiles/8/152/79.png | Bin 0 -> 37384 bytes static/tiles/8/152/80.png | Bin 0 -> 33687 bytes static/tiles/8/152/81.png | Bin 0 -> 37535 bytes static/tiles/8/152/82.png | Bin 0 -> 35543 bytes static/tiles/8/152/83.png | Bin 0 -> 29151 bytes static/tiles/8/152/84.png | Bin 0 -> 30418 bytes static/tiles/8/152/85.png | Bin 0 -> 36167 bytes static/tiles/8/152/86.png | Bin 0 -> 35673 bytes static/tiles/8/152/87.png | Bin 0 -> 36466 bytes static/tiles/8/152/88.png | Bin 0 -> 38926 bytes static/tiles/8/152/89.png | Bin 0 -> 35053 bytes static/tiles/8/152/90.png | Bin 0 -> 26535 bytes static/tiles/8/152/91.png | Bin 0 -> 28824 bytes static/tiles/8/152/92.png | Bin 0 -> 21537 bytes static/tiles/8/152/93.png | Bin 0 -> 796 bytes static/tiles/8/152/94.png | Bin 0 -> 2584 bytes static/tiles/8/152/95.png | Bin 0 -> 32491 bytes static/tiles/8/152/96.png | Bin 0 -> 23361 bytes static/tiles/8/152/97.png | Bin 0 -> 16196 bytes static/tiles/8/152/98.png | Bin 0 -> 18113 bytes static/tiles/8/152/99.png | Bin 0 -> 21115 bytes static/tiles/8/153/100.png | Bin 0 -> 20429 bytes static/tiles/8/153/101.png | Bin 0 -> 21380 bytes static/tiles/8/153/102.png | Bin 0 -> 33774 bytes static/tiles/8/153/103.png | Bin 0 -> 40897 bytes static/tiles/8/153/104.png | Bin 0 -> 23707 bytes static/tiles/8/153/105.png | Bin 0 -> 14359 bytes static/tiles/8/153/106.png | Bin 0 -> 19514 bytes static/tiles/8/153/75.png | Bin 0 -> 29839 bytes static/tiles/8/153/76.png | Bin 0 -> 32867 bytes static/tiles/8/153/77.png | Bin 0 -> 34757 bytes static/tiles/8/153/78.png | Bin 0 -> 40945 bytes static/tiles/8/153/79.png | Bin 0 -> 42045 bytes static/tiles/8/153/80.png | Bin 0 -> 43916 bytes static/tiles/8/153/81.png | Bin 0 -> 41538 bytes static/tiles/8/153/82.png | Bin 0 -> 36285 bytes static/tiles/8/153/83.png | Bin 0 -> 28078 bytes static/tiles/8/153/84.png | Bin 0 -> 42965 bytes static/tiles/8/153/85.png | Bin 0 -> 39748 bytes static/tiles/8/153/86.png | Bin 0 -> 43554 bytes static/tiles/8/153/87.png | Bin 0 -> 45490 bytes static/tiles/8/153/88.png | Bin 0 -> 38471 bytes static/tiles/8/153/89.png | Bin 0 -> 41179 bytes static/tiles/8/153/90.png | Bin 0 -> 20593 bytes static/tiles/8/153/91.png | Bin 0 -> 12413 bytes static/tiles/8/153/92.png | Bin 0 -> 4470 bytes static/tiles/8/153/93.png | Bin 0 -> 404 bytes static/tiles/8/153/94.png | Bin 0 -> 2256 bytes static/tiles/8/153/95.png | Bin 0 -> 24565 bytes static/tiles/8/153/96.png | Bin 0 -> 29208 bytes static/tiles/8/153/97.png | Bin 0 -> 22280 bytes static/tiles/8/153/98.png | Bin 0 -> 36513 bytes static/tiles/8/153/99.png | Bin 0 -> 29432 bytes static/tiles/8/154/100.png | Bin 0 -> 29885 bytes static/tiles/8/154/101.png | Bin 0 -> 22582 bytes static/tiles/8/154/102.png | Bin 0 -> 11189 bytes static/tiles/8/154/103.png | Bin 0 -> 13268 bytes static/tiles/8/154/104.png | Bin 0 -> 15451 bytes static/tiles/8/154/105.png | Bin 0 -> 12622 bytes static/tiles/8/154/106.png | Bin 0 -> 13061 bytes static/tiles/8/154/75.png | Bin 0 -> 31428 bytes static/tiles/8/154/76.png | Bin 0 -> 31840 bytes static/tiles/8/154/77.png | Bin 0 -> 36948 bytes static/tiles/8/154/78.png | Bin 0 -> 39280 bytes static/tiles/8/154/79.png | Bin 0 -> 47550 bytes static/tiles/8/154/80.png | Bin 0 -> 48601 bytes static/tiles/8/154/81.png | Bin 0 -> 43061 bytes static/tiles/8/154/82.png | Bin 0 -> 34614 bytes static/tiles/8/154/83.png | Bin 0 -> 24459 bytes static/tiles/8/154/84.png | Bin 0 -> 31637 bytes static/tiles/8/154/85.png | Bin 0 -> 42955 bytes static/tiles/8/154/86.png | Bin 0 -> 38722 bytes static/tiles/8/154/87.png | Bin 0 -> 37199 bytes static/tiles/8/154/88.png | Bin 0 -> 43843 bytes static/tiles/8/154/89.png | Bin 0 -> 43110 bytes static/tiles/8/154/90.png | Bin 0 -> 10417 bytes static/tiles/8/154/91.png | Bin 0 -> 16662 bytes static/tiles/8/154/92.png | Bin 0 -> 12720 bytes static/tiles/8/154/93.png | Bin 0 -> 767 bytes static/tiles/8/154/94.png | Bin 0 -> 2465 bytes static/tiles/8/154/95.png | Bin 0 -> 9074 bytes static/tiles/8/154/96.png | Bin 0 -> 30194 bytes static/tiles/8/154/97.png | Bin 0 -> 16342 bytes static/tiles/8/154/98.png | Bin 0 -> 15962 bytes static/tiles/8/154/99.png | Bin 0 -> 26768 bytes static/tiles/8/155/100.png | Bin 0 -> 23390 bytes static/tiles/8/155/101.png | Bin 0 -> 8980 bytes static/tiles/8/155/102.png | Bin 0 -> 4531 bytes static/tiles/8/155/103.png | Bin 0 -> 7168 bytes static/tiles/8/155/104.png | Bin 0 -> 23101 bytes static/tiles/8/155/105.png | Bin 0 -> 27652 bytes static/tiles/8/155/106.png | Bin 0 -> 11174 bytes static/tiles/8/155/75.png | Bin 0 -> 30108 bytes static/tiles/8/155/76.png | Bin 0 -> 22482 bytes static/tiles/8/155/77.png | Bin 0 -> 39139 bytes static/tiles/8/155/78.png | Bin 0 -> 40541 bytes static/tiles/8/155/79.png | Bin 0 -> 45598 bytes static/tiles/8/155/80.png | Bin 0 -> 45996 bytes static/tiles/8/155/81.png | Bin 0 -> 40602 bytes static/tiles/8/155/82.png | Bin 0 -> 34029 bytes static/tiles/8/155/83.png | Bin 0 -> 38351 bytes static/tiles/8/155/84.png | Bin 0 -> 40495 bytes static/tiles/8/155/85.png | Bin 0 -> 41607 bytes static/tiles/8/155/86.png | Bin 0 -> 34635 bytes static/tiles/8/155/87.png | Bin 0 -> 46206 bytes static/tiles/8/155/88.png | Bin 0 -> 44912 bytes static/tiles/8/155/89.png | Bin 0 -> 38029 bytes static/tiles/8/155/90.png | Bin 0 -> 28261 bytes static/tiles/8/155/91.png | Bin 0 -> 33332 bytes static/tiles/8/155/92.png | Bin 0 -> 28835 bytes static/tiles/8/155/93.png | Bin 0 -> 3910 bytes static/tiles/8/155/94.png | Bin 0 -> 1582 bytes static/tiles/8/155/95.png | Bin 0 -> 3743 bytes static/tiles/8/155/96.png | Bin 0 -> 28867 bytes static/tiles/8/155/97.png | Bin 0 -> 18058 bytes static/tiles/8/155/98.png | Bin 0 -> 20626 bytes static/tiles/8/155/99.png | Bin 0 -> 23069 bytes static/tiles/8/156/100.png | Bin 0 -> 16371 bytes static/tiles/8/156/101.png | Bin 0 -> 13888 bytes static/tiles/8/156/102.png | Bin 0 -> 6162 bytes static/tiles/8/156/103.png | Bin 0 -> 6497 bytes static/tiles/8/156/104.png | Bin 0 -> 15466 bytes static/tiles/8/156/105.png | Bin 0 -> 18251 bytes static/tiles/8/156/106.png | Bin 0 -> 6877 bytes static/tiles/8/156/75.png | Bin 0 -> 30607 bytes static/tiles/8/156/76.png | Bin 0 -> 33177 bytes static/tiles/8/156/77.png | Bin 0 -> 43111 bytes static/tiles/8/156/78.png | Bin 0 -> 38509 bytes static/tiles/8/156/79.png | Bin 0 -> 42453 bytes static/tiles/8/156/80.png | Bin 0 -> 38410 bytes static/tiles/8/156/81.png | Bin 0 -> 34554 bytes static/tiles/8/156/82.png | Bin 0 -> 35212 bytes static/tiles/8/156/83.png | Bin 0 -> 39408 bytes static/tiles/8/156/84.png | Bin 0 -> 34978 bytes static/tiles/8/156/85.png | Bin 0 -> 37387 bytes static/tiles/8/156/86.png | Bin 0 -> 36572 bytes static/tiles/8/156/87.png | Bin 0 -> 40088 bytes static/tiles/8/156/88.png | Bin 0 -> 39837 bytes static/tiles/8/156/89.png | Bin 0 -> 38720 bytes static/tiles/8/156/90.png | Bin 0 -> 24222 bytes static/tiles/8/156/91.png | Bin 0 -> 29252 bytes static/tiles/8/156/92.png | Bin 0 -> 36079 bytes static/tiles/8/156/93.png | Bin 0 -> 28687 bytes static/tiles/8/156/94.png | Bin 0 -> 3254 bytes static/tiles/8/156/95.png | Bin 0 -> 5637 bytes static/tiles/8/156/96.png | Bin 0 -> 26297 bytes static/tiles/8/156/97.png | Bin 0 -> 19915 bytes static/tiles/8/156/98.png | Bin 0 -> 25238 bytes static/tiles/8/156/99.png | Bin 0 -> 20876 bytes static/tiles/8/157/100.png | Bin 0 -> 12948 bytes static/tiles/8/157/101.png | Bin 0 -> 10101 bytes static/tiles/8/157/102.png | Bin 0 -> 5872 bytes static/tiles/8/157/103.png | Bin 0 -> 4720 bytes static/tiles/8/157/104.png | Bin 0 -> 13297 bytes static/tiles/8/157/105.png | Bin 0 -> 15989 bytes static/tiles/8/157/106.png | Bin 0 -> 7251 bytes static/tiles/8/157/75.png | Bin 0 -> 16984 bytes static/tiles/8/157/76.png | Bin 0 -> 28274 bytes static/tiles/8/157/77.png | Bin 0 -> 38576 bytes static/tiles/8/157/78.png | Bin 0 -> 39197 bytes static/tiles/8/157/79.png | Bin 0 -> 39785 bytes static/tiles/8/157/80.png | Bin 0 -> 36114 bytes static/tiles/8/157/81.png | Bin 0 -> 34326 bytes static/tiles/8/157/82.png | Bin 0 -> 28042 bytes static/tiles/8/157/83.png | Bin 0 -> 30211 bytes static/tiles/8/157/84.png | Bin 0 -> 29838 bytes static/tiles/8/157/85.png | Bin 0 -> 36387 bytes static/tiles/8/157/86.png | Bin 0 -> 41216 bytes static/tiles/8/157/87.png | Bin 0 -> 25444 bytes static/tiles/8/157/88.png | Bin 0 -> 20430 bytes static/tiles/8/157/89.png | Bin 0 -> 26862 bytes static/tiles/8/157/90.png | Bin 0 -> 23171 bytes static/tiles/8/157/91.png | Bin 0 -> 27243 bytes static/tiles/8/157/92.png | Bin 0 -> 36624 bytes static/tiles/8/157/93.png | Bin 0 -> 38165 bytes static/tiles/8/157/94.png | Bin 0 -> 25621 bytes static/tiles/8/157/95.png | Bin 0 -> 22647 bytes static/tiles/8/157/96.png | Bin 0 -> 20153 bytes static/tiles/8/157/97.png | Bin 0 -> 14494 bytes static/tiles/8/157/98.png | Bin 0 -> 28810 bytes static/tiles/8/157/99.png | Bin 0 -> 29746 bytes static/tiles/8/158/100.png | Bin 0 -> 18197 bytes static/tiles/8/158/101.png | Bin 0 -> 10340 bytes static/tiles/8/158/102.png | Bin 0 -> 13314 bytes static/tiles/8/158/103.png | Bin 0 -> 4956 bytes static/tiles/8/158/104.png | Bin 0 -> 3203 bytes static/tiles/8/158/105.png | Bin 0 -> 11422 bytes static/tiles/8/158/106.png | Bin 0 -> 23133 bytes static/tiles/8/158/75.png | Bin 0 -> 19641 bytes static/tiles/8/158/76.png | Bin 0 -> 24161 bytes static/tiles/8/158/77.png | Bin 0 -> 25305 bytes static/tiles/8/158/78.png | Bin 0 -> 36112 bytes static/tiles/8/158/79.png | Bin 0 -> 40644 bytes static/tiles/8/158/80.png | Bin 0 -> 28095 bytes static/tiles/8/158/81.png | Bin 0 -> 31300 bytes static/tiles/8/158/82.png | Bin 0 -> 26106 bytes static/tiles/8/158/83.png | Bin 0 -> 25268 bytes static/tiles/8/158/84.png | Bin 0 -> 21109 bytes static/tiles/8/158/85.png | Bin 0 -> 20998 bytes static/tiles/8/158/86.png | Bin 0 -> 28376 bytes static/tiles/8/158/87.png | Bin 0 -> 22389 bytes static/tiles/8/158/88.png | Bin 0 -> 22319 bytes static/tiles/8/158/89.png | Bin 0 -> 18173 bytes static/tiles/8/158/90.png | Bin 0 -> 20433 bytes static/tiles/8/158/91.png | Bin 0 -> 23399 bytes static/tiles/8/158/92.png | Bin 0 -> 26805 bytes static/tiles/8/158/93.png | Bin 0 -> 35649 bytes static/tiles/8/158/94.png | Bin 0 -> 37498 bytes static/tiles/8/158/95.png | Bin 0 -> 30756 bytes static/tiles/8/158/96.png | Bin 0 -> 17989 bytes static/tiles/8/158/97.png | Bin 0 -> 16304 bytes static/tiles/8/158/98.png | Bin 0 -> 15465 bytes static/tiles/8/158/99.png | Bin 0 -> 27160 bytes static/tiles/8/159/100.png | Bin 0 -> 29722 bytes static/tiles/8/159/101.png | Bin 0 -> 19999 bytes static/tiles/8/159/102.png | Bin 0 -> 20057 bytes static/tiles/8/159/103.png | Bin 0 -> 20680 bytes static/tiles/8/159/104.png | Bin 0 -> 7617 bytes static/tiles/8/159/105.png | Bin 0 -> 3971 bytes static/tiles/8/159/106.png | Bin 0 -> 18758 bytes static/tiles/8/159/75.png | Bin 0 -> 15135 bytes static/tiles/8/159/76.png | Bin 0 -> 18442 bytes static/tiles/8/159/77.png | Bin 0 -> 16060 bytes static/tiles/8/159/78.png | Bin 0 -> 29966 bytes static/tiles/8/159/79.png | Bin 0 -> 36689 bytes static/tiles/8/159/80.png | Bin 0 -> 26338 bytes static/tiles/8/159/81.png | Bin 0 -> 27199 bytes static/tiles/8/159/82.png | Bin 0 -> 28509 bytes static/tiles/8/159/83.png | Bin 0 -> 32318 bytes static/tiles/8/159/84.png | Bin 0 -> 21738 bytes static/tiles/8/159/85.png | Bin 0 -> 23996 bytes static/tiles/8/159/86.png | Bin 0 -> 15774 bytes static/tiles/8/159/87.png | Bin 0 -> 26263 bytes static/tiles/8/159/88.png | Bin 0 -> 28483 bytes static/tiles/8/159/89.png | Bin 0 -> 17370 bytes static/tiles/8/159/90.png | Bin 0 -> 18194 bytes static/tiles/8/159/91.png | Bin 0 -> 15378 bytes static/tiles/8/159/92.png | Bin 0 -> 23617 bytes static/tiles/8/159/93.png | Bin 0 -> 32975 bytes static/tiles/8/159/94.png | Bin 0 -> 36462 bytes static/tiles/8/159/95.png | Bin 0 -> 34781 bytes static/tiles/8/159/96.png | Bin 0 -> 35077 bytes static/tiles/8/159/97.png | Bin 0 -> 16834 bytes static/tiles/8/159/98.png | Bin 0 -> 14387 bytes static/tiles/8/159/99.png | Bin 0 -> 23449 bytes static/tiles/8/160/100.png | Bin 0 -> 28414 bytes static/tiles/8/160/101.png | Bin 0 -> 28554 bytes static/tiles/8/160/102.png | Bin 0 -> 17997 bytes static/tiles/8/160/103.png | Bin 0 -> 14535 bytes static/tiles/8/160/104.png | Bin 0 -> 13982 bytes static/tiles/8/160/105.png | Bin 0 -> 3220 bytes static/tiles/8/160/106.png | Bin 0 -> 9059 bytes static/tiles/8/160/75.png | Bin 0 -> 15312 bytes static/tiles/8/160/76.png | Bin 0 -> 25522 bytes static/tiles/8/160/77.png | Bin 0 -> 20255 bytes static/tiles/8/160/78.png | Bin 0 -> 22342 bytes static/tiles/8/160/79.png | Bin 0 -> 30383 bytes static/tiles/8/160/80.png | Bin 0 -> 25966 bytes static/tiles/8/160/81.png | Bin 0 -> 31048 bytes static/tiles/8/160/82.png | Bin 0 -> 28299 bytes static/tiles/8/160/83.png | Bin 0 -> 29741 bytes static/tiles/8/160/84.png | Bin 0 -> 29960 bytes static/tiles/8/160/85.png | Bin 0 -> 26429 bytes static/tiles/8/160/86.png | Bin 0 -> 16256 bytes static/tiles/8/160/87.png | Bin 0 -> 11311 bytes static/tiles/8/160/88.png | Bin 0 -> 20993 bytes static/tiles/8/160/89.png | Bin 0 -> 6985 bytes static/tiles/8/160/90.png | Bin 0 -> 9174 bytes static/tiles/8/160/91.png | Bin 0 -> 14606 bytes static/tiles/8/160/92.png | Bin 0 -> 10918 bytes static/tiles/8/160/93.png | Bin 0 -> 20189 bytes static/tiles/8/160/94.png | Bin 0 -> 33395 bytes static/tiles/8/160/95.png | Bin 0 -> 29404 bytes static/tiles/8/160/96.png | Bin 0 -> 30917 bytes static/tiles/8/160/97.png | Bin 0 -> 27042 bytes static/tiles/8/160/98.png | Bin 0 -> 21082 bytes static/tiles/8/160/99.png | Bin 0 -> 21364 bytes static/tiles/8/161/100.png | Bin 0 -> 17000 bytes static/tiles/8/161/101.png | Bin 0 -> 21129 bytes static/tiles/8/161/102.png | Bin 0 -> 22829 bytes static/tiles/8/161/103.png | Bin 0 -> 18244 bytes static/tiles/8/161/104.png | Bin 0 -> 19462 bytes static/tiles/8/161/105.png | Bin 0 -> 14086 bytes static/tiles/8/161/106.png | Bin 0 -> 9218 bytes static/tiles/8/161/75.png | Bin 0 -> 19195 bytes static/tiles/8/161/76.png | Bin 0 -> 31274 bytes static/tiles/8/161/77.png | Bin 0 -> 27248 bytes static/tiles/8/161/78.png | Bin 0 -> 27555 bytes static/tiles/8/161/79.png | Bin 0 -> 33730 bytes static/tiles/8/161/80.png | Bin 0 -> 28898 bytes static/tiles/8/161/81.png | Bin 0 -> 27250 bytes static/tiles/8/161/82.png | Bin 0 -> 29968 bytes static/tiles/8/161/83.png | Bin 0 -> 25887 bytes static/tiles/8/161/84.png | Bin 0 -> 28210 bytes static/tiles/8/161/85.png | Bin 0 -> 12293 bytes static/tiles/8/161/86.png | Bin 0 -> 12070 bytes static/tiles/8/161/87.png | Bin 0 -> 10349 bytes static/tiles/8/161/88.png | Bin 0 -> 8632 bytes static/tiles/8/161/89.png | Bin 0 -> 16007 bytes static/tiles/8/161/90.png | Bin 0 -> 13163 bytes static/tiles/8/161/91.png | Bin 0 -> 17994 bytes static/tiles/8/161/92.png | Bin 0 -> 10126 bytes static/tiles/8/161/93.png | Bin 0 -> 18803 bytes static/tiles/8/161/94.png | Bin 0 -> 25443 bytes static/tiles/8/161/95.png | Bin 0 -> 26622 bytes static/tiles/8/161/96.png | Bin 0 -> 32013 bytes static/tiles/8/161/97.png | Bin 0 -> 28793 bytes static/tiles/8/161/98.png | Bin 0 -> 17921 bytes static/tiles/8/161/99.png | Bin 0 -> 19334 bytes static/tiles/8/162/100.png | Bin 0 -> 17951 bytes static/tiles/8/162/101.png | Bin 0 -> 19967 bytes static/tiles/8/162/102.png | Bin 0 -> 23432 bytes static/tiles/8/162/103.png | Bin 0 -> 21112 bytes static/tiles/8/162/104.png | Bin 0 -> 18621 bytes static/tiles/8/162/105.png | Bin 0 -> 18918 bytes static/tiles/8/162/106.png | Bin 0 -> 12777 bytes static/tiles/8/162/75.png | Bin 0 -> 26359 bytes static/tiles/8/162/76.png | Bin 0 -> 42811 bytes static/tiles/8/162/77.png | Bin 0 -> 42541 bytes static/tiles/8/162/78.png | Bin 0 -> 39280 bytes static/tiles/8/162/79.png | Bin 0 -> 34097 bytes static/tiles/8/162/80.png | Bin 0 -> 39702 bytes static/tiles/8/162/81.png | Bin 0 -> 29550 bytes static/tiles/8/162/82.png | Bin 0 -> 29825 bytes static/tiles/8/162/83.png | Bin 0 -> 24635 bytes static/tiles/8/162/84.png | Bin 0 -> 19736 bytes static/tiles/8/162/85.png | Bin 0 -> 10249 bytes static/tiles/8/162/86.png | Bin 0 -> 7391 bytes static/tiles/8/162/87.png | Bin 0 -> 7340 bytes static/tiles/8/162/88.png | Bin 0 -> 1930 bytes static/tiles/8/162/89.png | Bin 0 -> 3571 bytes static/tiles/8/162/90.png | Bin 0 -> 21187 bytes static/tiles/8/162/91.png | Bin 0 -> 13393 bytes static/tiles/8/162/92.png | Bin 0 -> 1975 bytes static/tiles/8/162/93.png | Bin 0 -> 1848 bytes static/tiles/8/162/94.png | Bin 0 -> 7463 bytes static/tiles/8/162/95.png | Bin 0 -> 27348 bytes static/tiles/8/162/96.png | Bin 0 -> 27526 bytes static/tiles/8/162/97.png | Bin 0 -> 24706 bytes static/tiles/8/162/98.png | Bin 0 -> 21698 bytes static/tiles/8/162/99.png | Bin 0 -> 20412 bytes static/tiles/8/163/100.png | Bin 0 -> 21773 bytes static/tiles/8/163/101.png | Bin 0 -> 19012 bytes static/tiles/8/163/102.png | Bin 0 -> 18054 bytes static/tiles/8/163/103.png | Bin 0 -> 19877 bytes static/tiles/8/163/104.png | Bin 0 -> 21490 bytes static/tiles/8/163/105.png | Bin 0 -> 14544 bytes static/tiles/8/163/106.png | Bin 0 -> 2647 bytes static/tiles/8/163/75.png | Bin 0 -> 24783 bytes static/tiles/8/163/76.png | Bin 0 -> 43729 bytes static/tiles/8/163/77.png | Bin 0 -> 45725 bytes static/tiles/8/163/78.png | Bin 0 -> 38751 bytes static/tiles/8/163/79.png | Bin 0 -> 38260 bytes static/tiles/8/163/80.png | Bin 0 -> 36326 bytes static/tiles/8/163/81.png | Bin 0 -> 29353 bytes static/tiles/8/163/82.png | Bin 0 -> 30636 bytes static/tiles/8/163/83.png | Bin 0 -> 30881 bytes static/tiles/8/163/84.png | Bin 0 -> 13502 bytes static/tiles/8/163/85.png | Bin 0 -> 12181 bytes static/tiles/8/163/86.png | Bin 0 -> 1901 bytes static/tiles/8/163/87.png | Bin 0 -> 6646 bytes static/tiles/8/163/88.png | Bin 0 -> 2174 bytes static/tiles/8/163/89.png | Bin 0 -> 2682 bytes static/tiles/8/163/90.png | Bin 0 -> 7968 bytes static/tiles/8/163/91.png | Bin 0 -> 1748 bytes static/tiles/8/163/92.png | Bin 0 -> 3095 bytes static/tiles/8/163/93.png | Bin 0 -> 1318 bytes static/tiles/8/163/94.png | Bin 0 -> 826 bytes static/tiles/8/163/95.png | Bin 0 -> 2088 bytes static/tiles/8/163/96.png | Bin 0 -> 15524 bytes static/tiles/8/163/97.png | Bin 0 -> 6087 bytes static/tiles/8/163/98.png | Bin 0 -> 630 bytes static/tiles/8/163/99.png | Bin 0 -> 24007 bytes static/tiles/8/164/100.png | Bin 0 -> 30841 bytes static/tiles/8/164/101.png | Bin 0 -> 19832 bytes static/tiles/8/164/102.png | Bin 0 -> 17591 bytes static/tiles/8/164/103.png | Bin 0 -> 24735 bytes static/tiles/8/164/104.png | Bin 0 -> 21410 bytes static/tiles/8/164/105.png | Bin 0 -> 24360 bytes static/tiles/8/164/106.png | Bin 0 -> 20740 bytes static/tiles/8/164/75.png | Bin 0 -> 21686 bytes static/tiles/8/164/76.png | Bin 0 -> 30645 bytes static/tiles/8/164/77.png | Bin 0 -> 33436 bytes static/tiles/8/164/78.png | Bin 0 -> 31871 bytes static/tiles/8/164/79.png | Bin 0 -> 39791 bytes static/tiles/8/164/80.png | Bin 0 -> 35298 bytes static/tiles/8/164/81.png | Bin 0 -> 28727 bytes static/tiles/8/164/82.png | Bin 0 -> 25586 bytes static/tiles/8/164/83.png | Bin 0 -> 26629 bytes static/tiles/8/164/84.png | Bin 0 -> 20725 bytes static/tiles/8/164/85.png | Bin 0 -> 25139 bytes static/tiles/8/164/86.png | Bin 0 -> 9810 bytes static/tiles/8/164/87.png | Bin 0 -> 4327 bytes static/tiles/8/164/88.png | Bin 0 -> 7128 bytes static/tiles/8/164/89.png | Bin 0 -> 9984 bytes static/tiles/8/164/90.png | Bin 0 -> 4453 bytes static/tiles/8/164/91.png | Bin 0 -> 2172 bytes static/tiles/8/164/92.png | Bin 0 -> 4444 bytes static/tiles/8/164/93.png | Bin 0 -> 10429 bytes static/tiles/8/164/94.png | Bin 0 -> 1966 bytes static/tiles/8/164/95.png | Bin 0 -> 1495 bytes static/tiles/8/164/96.png | Bin 0 -> 3220 bytes static/tiles/8/164/97.png | Bin 0 -> 338 bytes static/tiles/8/164/98.png | Bin 0 -> 103 bytes static/tiles/8/164/99.png | Bin 0 -> 6662 bytes static/tiles/8/165/100.png | Bin 0 -> 25712 bytes static/tiles/8/165/101.png | Bin 0 -> 12863 bytes static/tiles/8/165/102.png | Bin 0 -> 8340 bytes static/tiles/8/165/103.png | Bin 0 -> 11795 bytes static/tiles/8/165/104.png | Bin 0 -> 16207 bytes static/tiles/8/165/105.png | Bin 0 -> 29328 bytes static/tiles/8/165/106.png | Bin 0 -> 28244 bytes static/tiles/8/165/75.png | Bin 0 -> 21293 bytes static/tiles/8/165/76.png | Bin 0 -> 29095 bytes static/tiles/8/165/77.png | Bin 0 -> 35669 bytes static/tiles/8/165/78.png | Bin 0 -> 39190 bytes static/tiles/8/165/79.png | Bin 0 -> 39958 bytes static/tiles/8/165/80.png | Bin 0 -> 29415 bytes static/tiles/8/165/81.png | Bin 0 -> 40903 bytes static/tiles/8/165/82.png | Bin 0 -> 27704 bytes static/tiles/8/165/83.png | Bin 0 -> 27338 bytes static/tiles/8/165/84.png | Bin 0 -> 25737 bytes static/tiles/8/165/85.png | Bin 0 -> 13599 bytes static/tiles/8/165/86.png | Bin 0 -> 5335 bytes static/tiles/8/165/87.png | Bin 0 -> 3101 bytes static/tiles/8/165/88.png | Bin 0 -> 5147 bytes static/tiles/8/165/89.png | Bin 0 -> 5514 bytes static/tiles/8/165/90.png | Bin 0 -> 4176 bytes static/tiles/8/165/91.png | Bin 0 -> 6996 bytes static/tiles/8/165/92.png | Bin 0 -> 2968 bytes static/tiles/8/165/93.png | Bin 0 -> 5983 bytes static/tiles/8/165/94.png | Bin 0 -> 7521 bytes static/tiles/8/165/95.png | Bin 0 -> 6339 bytes static/tiles/8/165/96.png | Bin 0 -> 8030 bytes static/tiles/8/165/97.png | Bin 0 -> 3982 bytes static/tiles/8/165/98.png | Bin 0 -> 881 bytes static/tiles/8/165/99.png | Bin 0 -> 8536 bytes static/tiles/8/166/100.png | Bin 0 -> 16147 bytes static/tiles/8/166/101.png | Bin 0 -> 8663 bytes static/tiles/8/166/102.png | Bin 0 -> 8256 bytes static/tiles/8/166/103.png | Bin 0 -> 14380 bytes static/tiles/8/166/104.png | Bin 0 -> 12996 bytes static/tiles/8/166/105.png | Bin 0 -> 16351 bytes static/tiles/8/166/106.png | Bin 0 -> 24930 bytes static/tiles/8/166/75.png | Bin 0 -> 23104 bytes static/tiles/8/166/76.png | Bin 0 -> 37110 bytes static/tiles/8/166/77.png | Bin 0 -> 41776 bytes static/tiles/8/166/78.png | Bin 0 -> 40168 bytes static/tiles/8/166/79.png | Bin 0 -> 34939 bytes static/tiles/8/166/80.png | Bin 0 -> 30559 bytes static/tiles/8/166/81.png | Bin 0 -> 34033 bytes static/tiles/8/166/82.png | Bin 0 -> 36052 bytes static/tiles/8/166/83.png | Bin 0 -> 12587 bytes static/tiles/8/166/84.png | Bin 0 -> 16288 bytes static/tiles/8/166/85.png | Bin 0 -> 12102 bytes static/tiles/8/166/86.png | Bin 0 -> 6773 bytes static/tiles/8/166/87.png | Bin 0 -> 5560 bytes static/tiles/8/166/88.png | Bin 0 -> 5154 bytes static/tiles/8/166/89.png | Bin 0 -> 6982 bytes static/tiles/8/166/90.png | Bin 0 -> 7040 bytes static/tiles/8/166/91.png | Bin 0 -> 3329 bytes static/tiles/8/166/92.png | Bin 0 -> 3243 bytes static/tiles/8/166/93.png | Bin 0 -> 2557 bytes static/tiles/8/166/94.png | Bin 0 -> 9425 bytes static/tiles/8/166/95.png | Bin 0 -> 3431 bytes static/tiles/8/166/96.png | Bin 0 -> 4248 bytes static/tiles/8/166/97.png | Bin 0 -> 9096 bytes static/tiles/8/166/98.png | Bin 0 -> 5276 bytes static/tiles/8/166/99.png | Bin 0 -> 16568 bytes static/tiles/8/167/100.png | Bin 0 -> 10676 bytes static/tiles/8/167/101.png | Bin 0 -> 6658 bytes static/tiles/8/167/102.png | Bin 0 -> 8466 bytes static/tiles/8/167/103.png | Bin 0 -> 12180 bytes static/tiles/8/167/104.png | Bin 0 -> 14272 bytes static/tiles/8/167/105.png | Bin 0 -> 12627 bytes static/tiles/8/167/106.png | Bin 0 -> 14217 bytes static/tiles/8/167/75.png | Bin 0 -> 22348 bytes static/tiles/8/167/76.png | Bin 0 -> 39746 bytes static/tiles/8/167/77.png | Bin 0 -> 34793 bytes static/tiles/8/167/78.png | Bin 0 -> 35170 bytes static/tiles/8/167/79.png | Bin 0 -> 36878 bytes static/tiles/8/167/80.png | Bin 0 -> 34399 bytes static/tiles/8/167/81.png | Bin 0 -> 40799 bytes static/tiles/8/167/82.png | Bin 0 -> 34606 bytes static/tiles/8/167/83.png | Bin 0 -> 25859 bytes static/tiles/8/167/84.png | Bin 0 -> 20426 bytes static/tiles/8/167/85.png | Bin 0 -> 12717 bytes static/tiles/8/167/86.png | Bin 0 -> 6403 bytes static/tiles/8/167/87.png | Bin 0 -> 4089 bytes static/tiles/8/167/88.png | Bin 0 -> 7376 bytes static/tiles/8/167/89.png | Bin 0 -> 3079 bytes static/tiles/8/167/90.png | Bin 0 -> 2326 bytes static/tiles/8/167/91.png | Bin 0 -> 3656 bytes static/tiles/8/167/92.png | Bin 0 -> 2424 bytes static/tiles/8/167/93.png | Bin 0 -> 729 bytes static/tiles/8/167/94.png | Bin 0 -> 808 bytes static/tiles/8/167/95.png | Bin 0 -> 2891 bytes static/tiles/8/167/96.png | Bin 0 -> 2503 bytes static/tiles/8/167/97.png | Bin 0 -> 7045 bytes static/tiles/8/167/98.png | Bin 0 -> 8510 bytes static/tiles/8/167/99.png | Bin 0 -> 19896 bytes static/tiles/8/168/100.png | Bin 0 -> 13117 bytes static/tiles/8/168/101.png | Bin 0 -> 12507 bytes static/tiles/8/168/102.png | Bin 0 -> 12062 bytes static/tiles/8/168/103.png | Bin 0 -> 8694 bytes static/tiles/8/168/104.png | Bin 0 -> 11707 bytes static/tiles/8/168/105.png | Bin 0 -> 14160 bytes static/tiles/8/168/106.png | Bin 0 -> 13670 bytes static/tiles/8/168/75.png | Bin 0 -> 26272 bytes static/tiles/8/168/76.png | Bin 0 -> 27076 bytes static/tiles/8/168/77.png | Bin 0 -> 38520 bytes static/tiles/8/168/78.png | Bin 0 -> 29670 bytes static/tiles/8/168/79.png | Bin 0 -> 28261 bytes static/tiles/8/168/80.png | Bin 0 -> 25700 bytes static/tiles/8/168/81.png | Bin 0 -> 29615 bytes static/tiles/8/168/82.png | Bin 0 -> 20508 bytes static/tiles/8/168/83.png | Bin 0 -> 26405 bytes static/tiles/8/168/84.png | Bin 0 -> 33502 bytes static/tiles/8/168/85.png | Bin 0 -> 17754 bytes static/tiles/8/168/86.png | Bin 0 -> 13218 bytes static/tiles/8/168/87.png | Bin 0 -> 8019 bytes static/tiles/8/168/88.png | Bin 0 -> 4140 bytes static/tiles/8/168/89.png | Bin 0 -> 2726 bytes static/tiles/8/168/90.png | Bin 0 -> 2129 bytes static/tiles/8/168/91.png | Bin 0 -> 3196 bytes static/tiles/8/168/92.png | Bin 0 -> 5604 bytes static/tiles/8/168/93.png | Bin 0 -> 1292 bytes static/tiles/8/168/94.png | Bin 0 -> 2325 bytes static/tiles/8/168/95.png | Bin 0 -> 10632 bytes static/tiles/8/168/96.png | Bin 0 -> 4722 bytes static/tiles/8/168/97.png | Bin 0 -> 3553 bytes static/tiles/8/168/98.png | Bin 0 -> 10995 bytes static/tiles/8/168/99.png | Bin 0 -> 17548 bytes static/tiles/8/169/100.png | Bin 0 -> 17671 bytes static/tiles/8/169/101.png | Bin 0 -> 16917 bytes static/tiles/8/169/102.png | Bin 0 -> 13852 bytes static/tiles/8/169/103.png | Bin 0 -> 8624 bytes static/tiles/8/169/104.png | Bin 0 -> 5843 bytes static/tiles/8/169/105.png | Bin 0 -> 7115 bytes static/tiles/8/169/106.png | Bin 0 -> 14405 bytes static/tiles/8/169/75.png | Bin 0 -> 19885 bytes static/tiles/8/169/76.png | Bin 0 -> 25293 bytes static/tiles/8/169/77.png | Bin 0 -> 25752 bytes static/tiles/8/169/78.png | Bin 0 -> 24110 bytes static/tiles/8/169/79.png | Bin 0 -> 28491 bytes static/tiles/8/169/80.png | Bin 0 -> 30733 bytes static/tiles/8/169/81.png | Bin 0 -> 28942 bytes static/tiles/8/169/82.png | Bin 0 -> 30911 bytes static/tiles/8/169/83.png | Bin 0 -> 21341 bytes static/tiles/8/169/84.png | Bin 0 -> 16579 bytes static/tiles/8/169/85.png | Bin 0 -> 21703 bytes static/tiles/8/169/86.png | Bin 0 -> 10180 bytes static/tiles/8/169/87.png | Bin 0 -> 5402 bytes static/tiles/8/169/88.png | Bin 0 -> 6363 bytes static/tiles/8/169/89.png | Bin 0 -> 2279 bytes static/tiles/8/169/90.png | Bin 0 -> 4010 bytes static/tiles/8/169/91.png | Bin 0 -> 6136 bytes static/tiles/8/169/92.png | Bin 0 -> 3013 bytes static/tiles/8/169/93.png | Bin 0 -> 9757 bytes static/tiles/8/169/94.png | Bin 0 -> 9382 bytes static/tiles/8/169/95.png | Bin 0 -> 5762 bytes static/tiles/8/169/96.png | Bin 0 -> 4438 bytes static/tiles/8/169/97.png | Bin 0 -> 3043 bytes static/tiles/8/169/98.png | Bin 0 -> 11030 bytes static/tiles/8/169/99.png | Bin 0 -> 19141 bytes static/tiles/8/170/100.png | Bin 0 -> 20584 bytes static/tiles/8/170/101.png | Bin 0 -> 16961 bytes static/tiles/8/170/102.png | Bin 0 -> 11227 bytes static/tiles/8/170/103.png | Bin 0 -> 13057 bytes static/tiles/8/170/104.png | Bin 0 -> 6347 bytes static/tiles/8/170/105.png | Bin 0 -> 8147 bytes static/tiles/8/170/106.png | Bin 0 -> 9758 bytes static/tiles/8/170/75.png | Bin 0 -> 15976 bytes static/tiles/8/170/76.png | Bin 0 -> 24867 bytes static/tiles/8/170/77.png | Bin 0 -> 29138 bytes static/tiles/8/170/78.png | Bin 0 -> 33322 bytes static/tiles/8/170/79.png | Bin 0 -> 28359 bytes static/tiles/8/170/80.png | Bin 0 -> 31105 bytes static/tiles/8/170/81.png | Bin 0 -> 30110 bytes static/tiles/8/170/82.png | Bin 0 -> 24261 bytes static/tiles/8/170/83.png | Bin 0 -> 24195 bytes static/tiles/8/170/84.png | Bin 0 -> 14196 bytes static/tiles/8/170/85.png | Bin 0 -> 10299 bytes static/tiles/8/170/86.png | Bin 0 -> 9561 bytes static/tiles/8/170/87.png | Bin 0 -> 4797 bytes static/tiles/8/170/88.png | Bin 0 -> 3455 bytes static/tiles/8/170/89.png | Bin 0 -> 4699 bytes static/tiles/8/170/90.png | Bin 0 -> 3931 bytes static/tiles/8/170/91.png | Bin 0 -> 3850 bytes static/tiles/8/170/92.png | Bin 0 -> 1961 bytes static/tiles/8/170/93.png | Bin 0 -> 10378 bytes static/tiles/8/170/94.png | Bin 0 -> 18871 bytes static/tiles/8/170/95.png | Bin 0 -> 12101 bytes static/tiles/8/170/96.png | Bin 0 -> 2666 bytes static/tiles/8/170/97.png | Bin 0 -> 1786 bytes static/tiles/8/170/98.png | Bin 0 -> 3397 bytes static/tiles/8/170/99.png | Bin 0 -> 17385 bytes static/tiles/8/171/100.png | Bin 0 -> 10968 bytes static/tiles/8/171/101.png | Bin 0 -> 14242 bytes static/tiles/8/171/102.png | Bin 0 -> 7841 bytes static/tiles/8/171/103.png | Bin 0 -> 10959 bytes static/tiles/8/171/104.png | Bin 0 -> 14395 bytes static/tiles/8/171/105.png | Bin 0 -> 11895 bytes static/tiles/8/171/106.png | Bin 0 -> 13300 bytes static/tiles/8/171/75.png | Bin 0 -> 22815 bytes static/tiles/8/171/76.png | Bin 0 -> 22228 bytes static/tiles/8/171/77.png | Bin 0 -> 33439 bytes static/tiles/8/171/78.png | Bin 0 -> 38485 bytes static/tiles/8/171/79.png | Bin 0 -> 41037 bytes static/tiles/8/171/80.png | Bin 0 -> 39725 bytes static/tiles/8/171/81.png | Bin 0 -> 32296 bytes static/tiles/8/171/82.png | Bin 0 -> 21206 bytes static/tiles/8/171/83.png | Bin 0 -> 19591 bytes static/tiles/8/171/84.png | Bin 0 -> 8596 bytes static/tiles/8/171/85.png | Bin 0 -> 7774 bytes static/tiles/8/171/86.png | Bin 0 -> 4760 bytes static/tiles/8/171/87.png | Bin 0 -> 1758 bytes static/tiles/8/171/88.png | Bin 0 -> 6537 bytes static/tiles/8/171/89.png | Bin 0 -> 6675 bytes static/tiles/8/171/90.png | Bin 0 -> 7972 bytes static/tiles/8/171/91.png | Bin 0 -> 2377 bytes static/tiles/8/171/92.png | Bin 0 -> 3993 bytes static/tiles/8/171/93.png | Bin 0 -> 6763 bytes static/tiles/8/171/94.png | Bin 0 -> 4334 bytes static/tiles/8/171/95.png | Bin 0 -> 15612 bytes static/tiles/8/171/96.png | Bin 0 -> 2739 bytes static/tiles/8/171/97.png | Bin 0 -> 3297 bytes static/tiles/8/171/98.png | Bin 0 -> 3325 bytes static/tiles/8/171/99.png | Bin 0 -> 11349 bytes static/tiles/8/172/100.png | Bin 0 -> 6214 bytes static/tiles/8/172/101.png | Bin 0 -> 14003 bytes static/tiles/8/172/102.png | Bin 0 -> 9422 bytes static/tiles/8/172/103.png | Bin 0 -> 11668 bytes static/tiles/8/172/104.png | Bin 0 -> 8551 bytes static/tiles/8/172/105.png | Bin 0 -> 5483 bytes static/tiles/8/172/106.png | Bin 0 -> 4778 bytes static/tiles/8/172/75.png | Bin 0 -> 14367 bytes static/tiles/8/172/76.png | Bin 0 -> 17230 bytes static/tiles/8/172/77.png | Bin 0 -> 24394 bytes static/tiles/8/172/78.png | Bin 0 -> 32511 bytes static/tiles/8/172/79.png | Bin 0 -> 35673 bytes static/tiles/8/172/80.png | Bin 0 -> 31780 bytes static/tiles/8/172/81.png | Bin 0 -> 25991 bytes static/tiles/8/172/82.png | Bin 0 -> 10471 bytes static/tiles/8/172/83.png | Bin 0 -> 14771 bytes static/tiles/8/172/84.png | Bin 0 -> 6149 bytes static/tiles/8/172/85.png | Bin 0 -> 4488 bytes static/tiles/8/172/86.png | Bin 0 -> 5022 bytes static/tiles/8/172/87.png | Bin 0 -> 5178 bytes static/tiles/8/172/88.png | Bin 0 -> 3606 bytes static/tiles/8/172/89.png | Bin 0 -> 2833 bytes static/tiles/8/172/90.png | Bin 0 -> 3008 bytes static/tiles/8/172/91.png | Bin 0 -> 8363 bytes static/tiles/8/172/92.png | Bin 0 -> 1669 bytes static/tiles/8/172/93.png | Bin 0 -> 2680 bytes static/tiles/8/172/94.png | Bin 0 -> 6698 bytes static/tiles/8/172/95.png | Bin 0 -> 5707 bytes static/tiles/8/172/96.png | Bin 0 -> 8491 bytes static/tiles/8/172/97.png | Bin 0 -> 7278 bytes static/tiles/8/172/98.png | Bin 0 -> 5410 bytes static/tiles/8/172/99.png | Bin 0 -> 7179 bytes static/tiles/9/301/151.png | Bin 0 -> 18325 bytes static/tiles/9/301/152.png | Bin 0 -> 16534 bytes static/tiles/9/301/153.png | Bin 0 -> 19949 bytes static/tiles/9/301/154.png | Bin 0 -> 15381 bytes static/tiles/9/301/155.png | Bin 0 -> 15035 bytes static/tiles/9/301/156.png | Bin 0 -> 20150 bytes static/tiles/9/301/157.png | Bin 0 -> 27512 bytes static/tiles/9/301/158.png | Bin 0 -> 25547 bytes static/tiles/9/301/159.png | Bin 0 -> 20351 bytes static/tiles/9/301/160.png | Bin 0 -> 26171 bytes static/tiles/9/301/161.png | Bin 0 -> 22116 bytes static/tiles/9/301/162.png | Bin 0 -> 34557 bytes static/tiles/9/301/163.png | Bin 0 -> 21961 bytes static/tiles/9/301/164.png | Bin 0 -> 28239 bytes static/tiles/9/301/165.png | Bin 0 -> 33283 bytes static/tiles/9/301/166.png | Bin 0 -> 26977 bytes static/tiles/9/301/167.png | Bin 0 -> 25533 bytes static/tiles/9/301/168.png | Bin 0 -> 29175 bytes static/tiles/9/301/169.png | Bin 0 -> 20443 bytes static/tiles/9/301/170.png | Bin 0 -> 19827 bytes static/tiles/9/301/171.png | Bin 0 -> 22260 bytes static/tiles/9/301/172.png | Bin 0 -> 23675 bytes static/tiles/9/301/173.png | Bin 0 -> 29878 bytes static/tiles/9/301/174.png | Bin 0 -> 34828 bytes static/tiles/9/301/175.png | Bin 0 -> 40490 bytes static/tiles/9/301/176.png | Bin 0 -> 34392 bytes static/tiles/9/301/177.png | Bin 0 -> 32212 bytes static/tiles/9/301/178.png | Bin 0 -> 36439 bytes static/tiles/9/301/179.png | Bin 0 -> 34526 bytes static/tiles/9/301/180.png | Bin 0 -> 29436 bytes static/tiles/9/301/181.png | Bin 0 -> 20691 bytes static/tiles/9/301/182.png | Bin 0 -> 1616 bytes static/tiles/9/301/183.png | Bin 0 -> 1926 bytes static/tiles/9/301/184.png | Bin 0 -> 103 bytes static/tiles/9/301/185.png | Bin 0 -> 103 bytes static/tiles/9/301/186.png | Bin 0 -> 674 bytes static/tiles/9/301/187.png | Bin 0 -> 462 bytes static/tiles/9/301/188.png | Bin 0 -> 520 bytes static/tiles/9/301/189.png | Bin 0 -> 399 bytes static/tiles/9/301/190.png | Bin 0 -> 7535 bytes static/tiles/9/301/191.png | Bin 0 -> 25825 bytes static/tiles/9/301/192.png | Bin 0 -> 20627 bytes static/tiles/9/301/193.png | Bin 0 -> 15303 bytes static/tiles/9/301/194.png | Bin 0 -> 13133 bytes static/tiles/9/301/195.png | Bin 0 -> 12022 bytes static/tiles/9/301/196.png | Bin 0 -> 10044 bytes static/tiles/9/301/197.png | Bin 0 -> 15246 bytes static/tiles/9/301/198.png | Bin 0 -> 18008 bytes static/tiles/9/301/199.png | Bin 0 -> 22135 bytes static/tiles/9/301/200.png | Bin 0 -> 10281 bytes static/tiles/9/301/201.png | Bin 0 -> 528 bytes static/tiles/9/301/202.png | Bin 0 -> 3482 bytes static/tiles/9/301/203.png | Bin 0 -> 2015 bytes static/tiles/9/301/204.png | Bin 0 -> 103 bytes static/tiles/9/301/205.png | Bin 0 -> 103 bytes static/tiles/9/301/206.png | Bin 0 -> 103 bytes static/tiles/9/301/207.png | Bin 0 -> 531 bytes static/tiles/9/301/208.png | Bin 0 -> 8491 bytes static/tiles/9/301/209.png | Bin 0 -> 17165 bytes static/tiles/9/301/210.png | Bin 0 -> 21744 bytes static/tiles/9/301/211.png | Bin 0 -> 14301 bytes static/tiles/9/301/212.png | Bin 0 -> 4196 bytes static/tiles/9/301/213.png | Bin 0 -> 2315 bytes static/tiles/9/302/151.png | Bin 0 -> 12928 bytes static/tiles/9/302/152.png | Bin 0 -> 21994 bytes static/tiles/9/302/153.png | Bin 0 -> 19075 bytes static/tiles/9/302/154.png | Bin 0 -> 20568 bytes static/tiles/9/302/155.png | Bin 0 -> 19380 bytes static/tiles/9/302/156.png | Bin 0 -> 23117 bytes static/tiles/9/302/157.png | Bin 0 -> 23677 bytes static/tiles/9/302/158.png | Bin 0 -> 23137 bytes static/tiles/9/302/159.png | Bin 0 -> 17980 bytes static/tiles/9/302/160.png | Bin 0 -> 24186 bytes static/tiles/9/302/161.png | Bin 0 -> 24065 bytes static/tiles/9/302/162.png | Bin 0 -> 29617 bytes static/tiles/9/302/163.png | Bin 0 -> 33556 bytes static/tiles/9/302/164.png | Bin 0 -> 35571 bytes static/tiles/9/302/165.png | Bin 0 -> 31880 bytes static/tiles/9/302/166.png | Bin 0 -> 28185 bytes static/tiles/9/302/167.png | Bin 0 -> 25576 bytes static/tiles/9/302/168.png | Bin 0 -> 26040 bytes static/tiles/9/302/169.png | Bin 0 -> 25235 bytes static/tiles/9/302/170.png | Bin 0 -> 26204 bytes static/tiles/9/302/171.png | Bin 0 -> 18668 bytes static/tiles/9/302/172.png | Bin 0 -> 29458 bytes static/tiles/9/302/173.png | Bin 0 -> 30666 bytes static/tiles/9/302/174.png | Bin 0 -> 29438 bytes static/tiles/9/302/175.png | Bin 0 -> 25972 bytes static/tiles/9/302/176.png | Bin 0 -> 36814 bytes static/tiles/9/302/177.png | Bin 0 -> 33440 bytes static/tiles/9/302/178.png | Bin 0 -> 35767 bytes static/tiles/9/302/179.png | Bin 0 -> 31229 bytes static/tiles/9/302/180.png | Bin 0 -> 34420 bytes static/tiles/9/302/181.png | Bin 0 -> 28550 bytes static/tiles/9/302/182.png | Bin 0 -> 5208 bytes static/tiles/9/302/183.png | Bin 0 -> 11704 bytes static/tiles/9/302/184.png | Bin 0 -> 582 bytes static/tiles/9/302/185.png | Bin 0 -> 103 bytes static/tiles/9/302/186.png | Bin 0 -> 485 bytes static/tiles/9/302/187.png | Bin 0 -> 624 bytes static/tiles/9/302/188.png | Bin 0 -> 548 bytes static/tiles/9/302/189.png | Bin 0 -> 1457 bytes static/tiles/9/302/190.png | Bin 0 -> 17775 bytes static/tiles/9/302/191.png | Bin 0 -> 25311 bytes static/tiles/9/302/192.png | Bin 0 -> 22000 bytes static/tiles/9/302/193.png | Bin 0 -> 27609 bytes static/tiles/9/302/194.png | Bin 0 -> 19088 bytes static/tiles/9/302/195.png | Bin 0 -> 12663 bytes static/tiles/9/302/196.png | Bin 0 -> 12703 bytes static/tiles/9/302/197.png | Bin 0 -> 15777 bytes static/tiles/9/302/198.png | Bin 0 -> 13834 bytes static/tiles/9/302/199.png | Bin 0 -> 20801 bytes static/tiles/9/302/200.png | Bin 0 -> 21388 bytes static/tiles/9/302/201.png | Bin 0 -> 2959 bytes static/tiles/9/302/202.png | Bin 0 -> 20521 bytes static/tiles/9/302/203.png | Bin 0 -> 18435 bytes static/tiles/9/302/204.png | Bin 0 -> 103 bytes static/tiles/9/302/205.png | Bin 0 -> 103 bytes static/tiles/9/302/206.png | Bin 0 -> 849 bytes static/tiles/9/302/207.png | Bin 0 -> 634 bytes static/tiles/9/302/208.png | Bin 0 -> 942 bytes static/tiles/9/302/209.png | Bin 0 -> 9063 bytes static/tiles/9/302/210.png | Bin 0 -> 11406 bytes static/tiles/9/302/211.png | Bin 0 -> 12280 bytes static/tiles/9/302/212.png | Bin 0 -> 9599 bytes static/tiles/9/302/213.png | Bin 0 -> 3356 bytes static/tiles/9/303/151.png | Bin 0 -> 16751 bytes static/tiles/9/303/152.png | Bin 0 -> 21551 bytes static/tiles/9/303/153.png | Bin 0 -> 26453 bytes static/tiles/9/303/154.png | Bin 0 -> 26309 bytes static/tiles/9/303/155.png | Bin 0 -> 22819 bytes static/tiles/9/303/156.png | Bin 0 -> 21816 bytes static/tiles/9/303/157.png | Bin 0 -> 26474 bytes static/tiles/9/303/158.png | Bin 0 -> 25463 bytes static/tiles/9/303/159.png | Bin 0 -> 21586 bytes static/tiles/9/303/160.png | Bin 0 -> 22007 bytes static/tiles/9/303/161.png | Bin 0 -> 28041 bytes static/tiles/9/303/162.png | Bin 0 -> 30560 bytes static/tiles/9/303/163.png | Bin 0 -> 28375 bytes static/tiles/9/303/164.png | Bin 0 -> 26677 bytes static/tiles/9/303/165.png | Bin 0 -> 27017 bytes static/tiles/9/303/166.png | Bin 0 -> 19529 bytes static/tiles/9/303/167.png | Bin 0 -> 22661 bytes static/tiles/9/303/168.png | Bin 0 -> 27665 bytes static/tiles/9/303/169.png | Bin 0 -> 26319 bytes static/tiles/9/303/170.png | Bin 0 -> 33785 bytes static/tiles/9/303/171.png | Bin 0 -> 22305 bytes static/tiles/9/303/172.png | Bin 0 -> 25734 bytes static/tiles/9/303/173.png | Bin 0 -> 35039 bytes static/tiles/9/303/174.png | Bin 0 -> 26365 bytes static/tiles/9/303/175.png | Bin 0 -> 31399 bytes static/tiles/9/303/176.png | Bin 0 -> 32054 bytes static/tiles/9/303/177.png | Bin 0 -> 36261 bytes static/tiles/9/303/178.png | Bin 0 -> 38382 bytes static/tiles/9/303/179.png | Bin 0 -> 32036 bytes static/tiles/9/303/180.png | Bin 0 -> 29809 bytes static/tiles/9/303/181.png | Bin 0 -> 22982 bytes static/tiles/9/303/182.png | Bin 0 -> 14048 bytes static/tiles/9/303/183.png | Bin 0 -> 24231 bytes static/tiles/9/303/184.png | Bin 0 -> 15277 bytes static/tiles/9/303/185.png | Bin 0 -> 9637 bytes static/tiles/9/303/186.png | Bin 0 -> 103 bytes static/tiles/9/303/187.png | Bin 0 -> 828 bytes static/tiles/9/303/188.png | Bin 0 -> 515 bytes static/tiles/9/303/189.png | Bin 0 -> 1567 bytes static/tiles/9/303/190.png | Bin 0 -> 25093 bytes static/tiles/9/303/191.png | Bin 0 -> 23937 bytes static/tiles/9/303/192.png | Bin 0 -> 17926 bytes static/tiles/9/303/193.png | Bin 0 -> 17417 bytes static/tiles/9/303/194.png | Bin 0 -> 15034 bytes static/tiles/9/303/195.png | Bin 0 -> 15925 bytes static/tiles/9/303/196.png | Bin 0 -> 12232 bytes static/tiles/9/303/197.png | Bin 0 -> 10291 bytes static/tiles/9/303/198.png | Bin 0 -> 11757 bytes static/tiles/9/303/199.png | Bin 0 -> 16486 bytes static/tiles/9/303/200.png | Bin 0 -> 19957 bytes static/tiles/9/303/201.png | Bin 0 -> 3335 bytes static/tiles/9/303/202.png | Bin 0 -> 32080 bytes static/tiles/9/303/203.png | Bin 0 -> 11819 bytes static/tiles/9/303/204.png | Bin 0 -> 481 bytes static/tiles/9/303/205.png | Bin 0 -> 913 bytes static/tiles/9/303/206.png | Bin 0 -> 103 bytes static/tiles/9/303/207.png | Bin 0 -> 103 bytes static/tiles/9/303/208.png | Bin 0 -> 1169 bytes static/tiles/9/303/209.png | Bin 0 -> 7415 bytes static/tiles/9/303/210.png | Bin 0 -> 7041 bytes static/tiles/9/303/211.png | Bin 0 -> 5179 bytes static/tiles/9/303/212.png | Bin 0 -> 5747 bytes static/tiles/9/303/213.png | Bin 0 -> 10025 bytes static/tiles/9/304/151.png | Bin 0 -> 20496 bytes static/tiles/9/304/152.png | Bin 0 -> 21701 bytes static/tiles/9/304/153.png | Bin 0 -> 24443 bytes static/tiles/9/304/154.png | Bin 0 -> 32127 bytes static/tiles/9/304/155.png | Bin 0 -> 28533 bytes static/tiles/9/304/156.png | Bin 0 -> 24290 bytes static/tiles/9/304/157.png | Bin 0 -> 24667 bytes static/tiles/9/304/158.png | Bin 0 -> 28136 bytes static/tiles/9/304/159.png | Bin 0 -> 29034 bytes static/tiles/9/304/160.png | Bin 0 -> 21665 bytes static/tiles/9/304/161.png | Bin 0 -> 29548 bytes static/tiles/9/304/162.png | Bin 0 -> 23326 bytes static/tiles/9/304/163.png | Bin 0 -> 32128 bytes static/tiles/9/304/164.png | Bin 0 -> 29199 bytes static/tiles/9/304/165.png | Bin 0 -> 23969 bytes static/tiles/9/304/166.png | Bin 0 -> 27088 bytes static/tiles/9/304/167.png | Bin 0 -> 21254 bytes static/tiles/9/304/168.png | Bin 0 -> 23898 bytes static/tiles/9/304/169.png | Bin 0 -> 22047 bytes static/tiles/9/304/170.png | Bin 0 -> 29174 bytes static/tiles/9/304/171.png | Bin 0 -> 23858 bytes static/tiles/9/304/172.png | Bin 0 -> 23000 bytes static/tiles/9/304/173.png | Bin 0 -> 23248 bytes static/tiles/9/304/174.png | Bin 0 -> 31437 bytes static/tiles/9/304/175.png | Bin 0 -> 27957 bytes static/tiles/9/304/176.png | Bin 0 -> 31990 bytes static/tiles/9/304/177.png | Bin 0 -> 30250 bytes static/tiles/9/304/178.png | Bin 0 -> 32639 bytes static/tiles/9/304/179.png | Bin 0 -> 29104 bytes static/tiles/9/304/180.png | Bin 0 -> 22798 bytes static/tiles/9/304/181.png | Bin 0 -> 20968 bytes static/tiles/9/304/182.png | Bin 0 -> 23679 bytes static/tiles/9/304/183.png | Bin 0 -> 23353 bytes static/tiles/9/304/184.png | Bin 0 -> 34589 bytes static/tiles/9/304/185.png | Bin 0 -> 14049 bytes static/tiles/9/304/186.png | Bin 0 -> 103 bytes static/tiles/9/304/187.png | Bin 0 -> 815 bytes static/tiles/9/304/188.png | Bin 0 -> 527 bytes static/tiles/9/304/189.png | Bin 0 -> 1581 bytes static/tiles/9/304/190.png | Bin 0 -> 20501 bytes static/tiles/9/304/191.png | Bin 0 -> 26056 bytes static/tiles/9/309/159.png | Bin 0 -> 47836 bytes static/tiles/9/309/160.png | Bin 0 -> 50332 bytes static/xterm/xterm-addon-fit.min.js | 7 + static/xterm/xterm.css | 209 + static/xterm/xterm.min.js | 7 + static/xterm/xterm.min.js.new | 8 + templates/cert.html | 76 + templates/index.html | 700 ++ terminal.py | 92 + tools/build_mmsi_mid_json.py | 174 + transponder.py | 664 ++ 1460 files changed, 16334 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 README_OFFLINE.md create mode 100644 SVG/ChosenTarget.svg create mode 100644 SVG/Engine.svg create mode 100644 SVG/LosingTarget.svg create mode 100644 SVG/Moored.svg create mode 100644 SVG/SVG/Engine.svg create mode 100644 SVG/SVG/Moored.svg create mode 100644 SVG/SVG/achor.svg create mode 100644 SVG/SVG/cog.svg create mode 100644 SVG/SVG/cursor.svg create mode 100644 SVG/SVG/fishing.svg create mode 100644 SVG/SVG/fishing_1.svg create mode 100644 SVG/SVG/ownShip.svg create mode 100644 SVG/SVG/sail.svg create mode 100644 SVG/SVG/Ресурс 8.svg create mode 100644 SVG/ScaleTarget.svg create mode 100644 SVG/Target.svg create mode 100644 SVG/TargetClassA.svg create mode 100644 SVG/achor.svg create mode 100644 SVG/base_station.svg create mode 100644 SVG/buey.svg create mode 100644 SVG/compass.svg create mode 100644 SVG/fishing.svg create mode 100644 SVG/icon.svg create mode 100644 SVG/sail.svg create mode 100644 SVG/targetList.svg create mode 100644 SVG/targetList_1.svg create mode 100644 ais_nrzi_pipeline/__init__.py create mode 100644 ais_nrzi_pipeline/encode_to_nrzi.py create mode 100644 ais_nrzi_pipeline/phy.py create mode 100644 ais_phy.py create mode 100644 download_tiles.py create mode 100644 main.py create mode 100644 mock_data/base_stations.json create mode 100644 mock_data/buoys.json create mode 100644 mock_data/vessels.json create mode 100644 network_manager.py create mode 100644 requirements.txt create mode 100644 routes.py create mode 100644 scripts/aismap-network.service create mode 100644 scripts/install.sh create mode 100644 scripts/network_init.sh create mode 100644 scripts/pulse_once.py create mode 100644 scripts/to_ap.sh create mode 100644 scripts/to_wifi.sh create mode 100644 ssl_utils.py create mode 100644 state.py create mode 100644 static/css/style.css create mode 100644 static/js/app.js create mode 100644 static/js/mmsi_mid_iso2.json create mode 100644 static/js/ship_dims_editor.js create mode 100644 static/js/ship_types_table51.js create mode 100644 static/leaflet/Leaflet.VectorGrid.bundled.min.js create mode 100644 static/leaflet/images/layers-2x.png create mode 100644 static/leaflet/images/layers.png create mode 100644 static/leaflet/images/marker-icon-2x.png create mode 100644 static/leaflet/images/marker-icon.png create mode 100644 static/leaflet/images/marker-shadow.png create mode 100644 static/leaflet/leaflet-rotate.js create mode 100644 static/leaflet/leaflet.css create mode 100644 static/leaflet/leaflet.js create mode 100644 static/sw.js create mode 100644 static/tiles/1/1/0.png create mode 100644 static/tiles/10/618/318.png create mode 100644 static/tiles/10/618/319.png create mode 100644 static/tiles/10/618/320.png create mode 100644 static/tiles/10/618/321.png create mode 100644 static/tiles/10/619/318.png create mode 100644 static/tiles/10/619/319.png create mode 100644 static/tiles/10/619/320.png create mode 100644 static/tiles/10/619/321.png create mode 100644 static/tiles/11/1236/637.png create mode 100644 static/tiles/11/1236/638.png create mode 100644 static/tiles/11/1236/639.png create mode 100644 static/tiles/11/1236/640.png create mode 100644 static/tiles/11/1236/641.png create mode 100644 static/tiles/11/1236/642.png create mode 100644 static/tiles/11/1237/637.png create mode 100644 static/tiles/11/1237/638.png create mode 100644 static/tiles/11/1237/639.png create mode 100644 static/tiles/11/1237/640.png create mode 100644 static/tiles/11/1237/641.png create mode 100644 static/tiles/11/1237/642.png create mode 100644 static/tiles/11/1238/637.png create mode 100644 static/tiles/11/1238/638.png create mode 100644 static/tiles/11/1238/639.png create mode 100644 static/tiles/11/1238/640.png create mode 100644 static/tiles/11/1238/641.png create mode 100644 static/tiles/11/1238/642.png create mode 100644 static/tiles/11/1239/637.png create mode 100644 static/tiles/11/1239/638.png create mode 100644 static/tiles/11/1239/639.png create mode 100644 static/tiles/11/1239/640.png create mode 100644 static/tiles/11/1239/641.png create mode 100644 static/tiles/11/1239/642.png create mode 100644 static/tiles/12/2472/1275.png create mode 100644 static/tiles/12/2472/1276.png create mode 100644 static/tiles/12/2472/1277.png create mode 100644 static/tiles/12/2472/1278.png create mode 100644 static/tiles/12/2472/1279.png create mode 100644 static/tiles/12/2472/1280.png create mode 100644 static/tiles/12/2472/1281.png create mode 100644 static/tiles/12/2472/1282.png create mode 100644 static/tiles/12/2472/1283.png create mode 100644 static/tiles/12/2472/1284.png create mode 100644 static/tiles/12/2472/1285.png create mode 100644 static/tiles/12/2473/1275.png create mode 100644 static/tiles/12/2473/1276.png create mode 100644 static/tiles/12/2473/1277.png create mode 100644 static/tiles/12/2473/1278.png create mode 100644 static/tiles/12/2473/1279.png create mode 100644 static/tiles/12/2473/1280.png create mode 100644 static/tiles/12/2473/1281.png create mode 100644 static/tiles/12/2473/1282.png create mode 100644 static/tiles/12/2473/1283.png create mode 100644 static/tiles/12/2473/1284.png create mode 100644 static/tiles/12/2473/1285.png create mode 100644 static/tiles/12/2474/1275.png create mode 100644 static/tiles/12/2474/1276.png create mode 100644 static/tiles/12/2474/1277.png create mode 100644 static/tiles/12/2474/1278.png create mode 100644 static/tiles/12/2474/1279.png create mode 100644 static/tiles/12/2474/1280.png create mode 100644 static/tiles/12/2474/1281.png create mode 100644 static/tiles/12/2474/1282.png create mode 100644 static/tiles/12/2474/1283.png create mode 100644 static/tiles/12/2474/1284.png create mode 100644 static/tiles/12/2474/1285.png create mode 100644 static/tiles/12/2475/1275.png create mode 100644 static/tiles/12/2475/1276.png create mode 100644 static/tiles/12/2475/1277.png create mode 100644 static/tiles/12/2475/1278.png create mode 100644 static/tiles/12/2475/1279.png create mode 100644 static/tiles/12/2475/1280.png create mode 100644 static/tiles/12/2475/1281.png create mode 100644 static/tiles/12/2475/1282.png create mode 100644 static/tiles/12/2475/1283.png create mode 100644 static/tiles/12/2475/1284.png create mode 100644 static/tiles/12/2475/1285.png create mode 100644 static/tiles/12/2476/1275.png create mode 100644 static/tiles/12/2476/1276.png create mode 100644 static/tiles/12/2476/1277.png create mode 100644 static/tiles/12/2476/1278.png create mode 100644 static/tiles/12/2476/1279.png create mode 100644 static/tiles/12/2476/1280.png create mode 100644 static/tiles/12/2476/1281.png create mode 100644 static/tiles/12/2476/1282.png create mode 100644 static/tiles/12/2476/1283.png create mode 100644 static/tiles/12/2476/1284.png create mode 100644 static/tiles/12/2476/1285.png create mode 100644 static/tiles/12/2477/1275.png create mode 100644 static/tiles/12/2477/1276.png create mode 100644 static/tiles/12/2477/1277.png create mode 100644 static/tiles/12/2477/1278.png create mode 100644 static/tiles/12/2477/1279.png create mode 100644 static/tiles/12/2477/1280.png create mode 100644 static/tiles/12/2477/1281.png create mode 100644 static/tiles/12/2477/1282.png create mode 100644 static/tiles/12/2477/1283.png create mode 100644 static/tiles/12/2477/1284.png create mode 100644 static/tiles/12/2477/1285.png create mode 100644 static/tiles/12/2478/1275.png create mode 100644 static/tiles/12/2478/1276.png create mode 100644 static/tiles/12/2478/1277.png create mode 100644 static/tiles/12/2478/1278.png create mode 100644 static/tiles/12/2478/1279.png create mode 100644 static/tiles/12/2478/1280.png create mode 100644 static/tiles/12/2478/1281.png create mode 100644 static/tiles/12/2478/1282.png create mode 100644 static/tiles/12/2478/1283.png create mode 100644 static/tiles/12/2478/1284.png create mode 100644 static/tiles/12/2478/1285.png create mode 100644 static/tiles/12/2479/1275.png create mode 100644 static/tiles/12/2479/1276.png create mode 100644 static/tiles/12/2479/1277.png create mode 100644 static/tiles/12/2479/1278.png create mode 100644 static/tiles/12/2479/1279.png create mode 100644 static/tiles/12/2479/1280.png create mode 100644 static/tiles/12/2479/1281.png create mode 100644 static/tiles/12/2479/1282.png create mode 100644 static/tiles/12/2479/1283.png create mode 100644 static/tiles/12/2479/1284.png create mode 100644 static/tiles/12/2479/1285.png create mode 100644 static/tiles/2/2/1.png create mode 100644 static/tiles/3/4/2.png create mode 100644 static/tiles/3/4/3.png create mode 100644 static/tiles/3/5/2.png create mode 100644 static/tiles/3/5/3.png create mode 100644 static/tiles/4/10/4.png create mode 100644 static/tiles/4/10/5.png create mode 100644 static/tiles/4/10/6.png create mode 100644 static/tiles/4/9/4.png create mode 100644 static/tiles/4/9/5.png create mode 100644 static/tiles/4/9/6.png create mode 100644 static/tiles/5/18/10.png create mode 100644 static/tiles/5/18/11.png create mode 100644 static/tiles/5/18/12.png create mode 100644 static/tiles/5/18/13.png create mode 100644 static/tiles/5/18/9.png create mode 100644 static/tiles/5/19/10.png create mode 100644 static/tiles/5/19/11.png create mode 100644 static/tiles/5/19/12.png create mode 100644 static/tiles/5/19/13.png create mode 100644 static/tiles/5/19/9.png create mode 100644 static/tiles/5/20/10.png create mode 100644 static/tiles/5/20/11.png create mode 100644 static/tiles/5/20/12.png create mode 100644 static/tiles/5/20/13.png create mode 100644 static/tiles/5/20/9.png create mode 100644 static/tiles/5/21/10.png create mode 100644 static/tiles/5/21/11.png create mode 100644 static/tiles/5/21/12.png create mode 100644 static/tiles/5/21/13.png create mode 100644 static/tiles/5/21/9.png create mode 100644 static/tiles/6/37/18.png create mode 100644 static/tiles/6/37/19.png create mode 100644 static/tiles/6/37/20.png create mode 100644 static/tiles/6/37/21.png create mode 100644 static/tiles/6/37/22.png create mode 100644 static/tiles/6/37/23.png create mode 100644 static/tiles/6/37/24.png create mode 100644 static/tiles/6/37/25.png create mode 100644 static/tiles/6/37/26.png create mode 100644 static/tiles/6/38/18.png create mode 100644 static/tiles/6/38/19.png create mode 100644 static/tiles/6/38/20.png create mode 100644 static/tiles/6/38/21.png create mode 100644 static/tiles/6/38/22.png create mode 100644 static/tiles/6/38/23.png create mode 100644 static/tiles/6/38/24.png create mode 100644 static/tiles/6/38/25.png create mode 100644 static/tiles/6/38/26.png create mode 100644 static/tiles/6/39/18.png create mode 100644 static/tiles/6/39/19.png create mode 100644 static/tiles/6/39/20.png create mode 100644 static/tiles/6/39/21.png create mode 100644 static/tiles/6/39/22.png create mode 100644 static/tiles/6/39/23.png create mode 100644 static/tiles/6/39/24.png create mode 100644 static/tiles/6/39/25.png create mode 100644 static/tiles/6/39/26.png create mode 100644 static/tiles/6/40/18.png create mode 100644 static/tiles/6/40/19.png create mode 100644 static/tiles/6/40/20.png create mode 100644 static/tiles/6/40/21.png create mode 100644 static/tiles/6/40/22.png create mode 100644 static/tiles/6/40/23.png create mode 100644 static/tiles/6/40/24.png create mode 100644 static/tiles/6/40/25.png create mode 100644 static/tiles/6/40/26.png create mode 100644 static/tiles/6/41/18.png create mode 100644 static/tiles/6/41/19.png create mode 100644 static/tiles/6/41/20.png create mode 100644 static/tiles/6/41/21.png create mode 100644 static/tiles/6/41/22.png create mode 100644 static/tiles/6/41/23.png create mode 100644 static/tiles/6/41/24.png create mode 100644 static/tiles/6/41/25.png create mode 100644 static/tiles/6/41/26.png create mode 100644 static/tiles/6/42/18.png create mode 100644 static/tiles/6/42/19.png create mode 100644 static/tiles/6/42/20.png create mode 100644 static/tiles/6/42/21.png create mode 100644 static/tiles/6/42/22.png create mode 100644 static/tiles/6/42/23.png create mode 100644 static/tiles/6/42/24.png create mode 100644 static/tiles/6/42/25.png create mode 100644 static/tiles/6/42/26.png create mode 100644 static/tiles/6/43/18.png create mode 100644 static/tiles/6/43/19.png create mode 100644 static/tiles/6/43/20.png create mode 100644 static/tiles/6/43/21.png create mode 100644 static/tiles/6/43/22.png create mode 100644 static/tiles/6/43/23.png create mode 100644 static/tiles/6/43/24.png create mode 100644 static/tiles/6/43/25.png create mode 100644 static/tiles/6/43/26.png create mode 100644 static/tiles/7/75/37.png create mode 100644 static/tiles/7/75/38.png create mode 100644 static/tiles/7/75/39.png create mode 100644 static/tiles/7/75/40.png create mode 100644 static/tiles/7/75/41.png create mode 100644 static/tiles/7/75/42.png create mode 100644 static/tiles/7/75/43.png create mode 100644 static/tiles/7/75/44.png create mode 100644 static/tiles/7/75/45.png create mode 100644 static/tiles/7/75/46.png create mode 100644 static/tiles/7/75/47.png create mode 100644 static/tiles/7/75/48.png create mode 100644 static/tiles/7/75/49.png create mode 100644 static/tiles/7/75/50.png create mode 100644 static/tiles/7/75/51.png create mode 100644 static/tiles/7/75/52.png create mode 100644 static/tiles/7/75/53.png create mode 100644 static/tiles/7/76/37.png create mode 100644 static/tiles/7/76/38.png create mode 100644 static/tiles/7/76/39.png create mode 100644 static/tiles/7/76/40.png create mode 100644 static/tiles/7/76/41.png create mode 100644 static/tiles/7/76/42.png create mode 100644 static/tiles/7/76/43.png create mode 100644 static/tiles/7/76/44.png create mode 100644 static/tiles/7/76/45.png create mode 100644 static/tiles/7/76/46.png create mode 100644 static/tiles/7/76/47.png create mode 100644 static/tiles/7/76/48.png create mode 100644 static/tiles/7/76/49.png create mode 100644 static/tiles/7/76/50.png create mode 100644 static/tiles/7/76/51.png create mode 100644 static/tiles/7/76/52.png create mode 100644 static/tiles/7/76/53.png create mode 100644 static/tiles/7/77/37.png create mode 100644 static/tiles/7/77/38.png create mode 100644 static/tiles/7/77/39.png create mode 100644 static/tiles/7/77/40.png create mode 100644 static/tiles/7/77/41.png create mode 100644 static/tiles/7/77/42.png create mode 100644 static/tiles/7/77/43.png create mode 100644 static/tiles/7/77/44.png create mode 100644 static/tiles/7/77/45.png create mode 100644 static/tiles/7/77/46.png create mode 100644 static/tiles/7/77/47.png create mode 100644 static/tiles/7/77/48.png create mode 100644 static/tiles/7/77/49.png create mode 100644 static/tiles/7/77/50.png create mode 100644 static/tiles/7/77/51.png create mode 100644 static/tiles/7/77/52.png create mode 100644 static/tiles/7/77/53.png create mode 100644 static/tiles/7/78/37.png create mode 100644 static/tiles/7/78/38.png create mode 100644 static/tiles/7/78/39.png create mode 100644 static/tiles/7/78/40.png create mode 100644 static/tiles/7/78/41.png create mode 100644 static/tiles/7/78/42.png create mode 100644 static/tiles/7/78/43.png create mode 100644 static/tiles/7/78/44.png create mode 100644 static/tiles/7/78/45.png create mode 100644 static/tiles/7/78/46.png create mode 100644 static/tiles/7/78/47.png create mode 100644 static/tiles/7/78/48.png create mode 100644 static/tiles/7/78/49.png create mode 100644 static/tiles/7/78/50.png create mode 100644 static/tiles/7/78/51.png create mode 100644 static/tiles/7/78/52.png create mode 100644 static/tiles/7/78/53.png create mode 100644 static/tiles/7/79/37.png create mode 100644 static/tiles/7/79/38.png create mode 100644 static/tiles/7/79/39.png create mode 100644 static/tiles/7/79/40.png create mode 100644 static/tiles/7/79/41.png create mode 100644 static/tiles/7/79/42.png create mode 100644 static/tiles/7/79/43.png create mode 100644 static/tiles/7/79/44.png create mode 100644 static/tiles/7/79/45.png create mode 100644 static/tiles/7/79/46.png create mode 100644 static/tiles/7/79/47.png create mode 100644 static/tiles/7/79/48.png create mode 100644 static/tiles/7/79/49.png create mode 100644 static/tiles/7/79/50.png create mode 100644 static/tiles/7/79/51.png create mode 100644 static/tiles/7/79/52.png create mode 100644 static/tiles/7/79/53.png create mode 100644 static/tiles/7/80/37.png create mode 100644 static/tiles/7/80/38.png create mode 100644 static/tiles/7/80/39.png create mode 100644 static/tiles/7/80/40.png create mode 100644 static/tiles/7/80/41.png create mode 100644 static/tiles/7/80/42.png create mode 100644 static/tiles/7/80/43.png create mode 100644 static/tiles/7/80/44.png create mode 100644 static/tiles/7/80/45.png create mode 100644 static/tiles/7/80/46.png create mode 100644 static/tiles/7/80/47.png create mode 100644 static/tiles/7/80/48.png create mode 100644 static/tiles/7/80/49.png create mode 100644 static/tiles/7/80/50.png create mode 100644 static/tiles/7/80/51.png create mode 100644 static/tiles/7/80/52.png create mode 100644 static/tiles/7/80/53.png create mode 100644 static/tiles/7/81/37.png create mode 100644 static/tiles/7/81/38.png create mode 100644 static/tiles/7/81/39.png create mode 100644 static/tiles/7/81/40.png create mode 100644 static/tiles/7/81/41.png create mode 100644 static/tiles/7/81/42.png create mode 100644 static/tiles/7/81/43.png create mode 100644 static/tiles/7/81/44.png create mode 100644 static/tiles/7/81/45.png create mode 100644 static/tiles/7/81/46.png create mode 100644 static/tiles/7/81/47.png create mode 100644 static/tiles/7/81/48.png create mode 100644 static/tiles/7/81/49.png create mode 100644 static/tiles/7/81/50.png create mode 100644 static/tiles/7/81/51.png create mode 100644 static/tiles/7/81/52.png create mode 100644 static/tiles/7/81/53.png create mode 100644 static/tiles/7/82/37.png create mode 100644 static/tiles/7/82/38.png create mode 100644 static/tiles/7/82/39.png create mode 100644 static/tiles/7/82/40.png create mode 100644 static/tiles/7/82/41.png create mode 100644 static/tiles/7/82/42.png create mode 100644 static/tiles/7/82/43.png create mode 100644 static/tiles/7/82/44.png create mode 100644 static/tiles/7/82/45.png create mode 100644 static/tiles/7/82/46.png create mode 100644 static/tiles/7/82/47.png create mode 100644 static/tiles/7/82/48.png create mode 100644 static/tiles/7/82/49.png create mode 100644 static/tiles/7/82/50.png create mode 100644 static/tiles/7/82/51.png create mode 100644 static/tiles/7/82/52.png create mode 100644 static/tiles/7/82/53.png create mode 100644 static/tiles/7/83/37.png create mode 100644 static/tiles/7/83/38.png create mode 100644 static/tiles/7/83/39.png create mode 100644 static/tiles/7/83/40.png create mode 100644 static/tiles/7/83/41.png create mode 100644 static/tiles/7/83/42.png create mode 100644 static/tiles/7/83/43.png create mode 100644 static/tiles/7/83/44.png create mode 100644 static/tiles/7/83/45.png create mode 100644 static/tiles/7/83/46.png create mode 100644 static/tiles/7/83/47.png create mode 100644 static/tiles/7/83/48.png create mode 100644 static/tiles/7/83/49.png create mode 100644 static/tiles/7/83/50.png create mode 100644 static/tiles/7/83/51.png create mode 100644 static/tiles/7/83/52.png create mode 100644 static/tiles/7/83/53.png create mode 100644 static/tiles/7/84/37.png create mode 100644 static/tiles/7/84/38.png create mode 100644 static/tiles/7/84/39.png create mode 100644 static/tiles/7/84/40.png create mode 100644 static/tiles/7/84/41.png create mode 100644 static/tiles/7/84/42.png create mode 100644 static/tiles/7/84/43.png create mode 100644 static/tiles/7/84/44.png create mode 100644 static/tiles/7/84/45.png create mode 100644 static/tiles/7/84/46.png create mode 100644 static/tiles/7/84/47.png create mode 100644 static/tiles/7/84/48.png create mode 100644 static/tiles/7/84/49.png create mode 100644 static/tiles/7/84/50.png create mode 100644 static/tiles/7/84/51.png create mode 100644 static/tiles/7/84/52.png create mode 100644 static/tiles/7/84/53.png create mode 100644 static/tiles/7/85/37.png create mode 100644 static/tiles/7/85/38.png create mode 100644 static/tiles/7/85/39.png create mode 100644 static/tiles/7/85/40.png create mode 100644 static/tiles/7/85/41.png create mode 100644 static/tiles/7/85/42.png create mode 100644 static/tiles/7/85/43.png create mode 100644 static/tiles/7/85/44.png create mode 100644 static/tiles/7/85/45.png create mode 100644 static/tiles/7/85/46.png create mode 100644 static/tiles/7/85/47.png create mode 100644 static/tiles/7/85/48.png create mode 100644 static/tiles/7/85/49.png create mode 100644 static/tiles/7/85/50.png create mode 100644 static/tiles/7/85/51.png create mode 100644 static/tiles/7/85/52.png create mode 100644 static/tiles/7/85/53.png create mode 100644 static/tiles/7/86/37.png create mode 100644 static/tiles/7/86/38.png create mode 100644 static/tiles/7/86/39.png create mode 100644 static/tiles/7/86/40.png create mode 100644 static/tiles/7/86/41.png create mode 100644 static/tiles/7/86/42.png create mode 100644 static/tiles/7/86/43.png create mode 100644 static/tiles/7/86/44.png create mode 100644 static/tiles/7/86/45.png create mode 100644 static/tiles/7/86/46.png create mode 100644 static/tiles/7/86/47.png create mode 100644 static/tiles/7/86/48.png create mode 100644 static/tiles/7/86/49.png create mode 100644 static/tiles/7/86/50.png create mode 100644 static/tiles/7/86/51.png create mode 100644 static/tiles/7/86/52.png create mode 100644 static/tiles/7/86/53.png create mode 100644 static/tiles/8/150/100.png create mode 100644 static/tiles/8/150/101.png create mode 100644 static/tiles/8/150/102.png create mode 100644 static/tiles/8/150/103.png create mode 100644 static/tiles/8/150/104.png create mode 100644 static/tiles/8/150/105.png create mode 100644 static/tiles/8/150/106.png create mode 100644 static/tiles/8/150/75.png create mode 100644 static/tiles/8/150/76.png create mode 100644 static/tiles/8/150/77.png create mode 100644 static/tiles/8/150/78.png create mode 100644 static/tiles/8/150/79.png create mode 100644 static/tiles/8/150/80.png create mode 100644 static/tiles/8/150/81.png create mode 100644 static/tiles/8/150/82.png create mode 100644 static/tiles/8/150/83.png create mode 100644 static/tiles/8/150/84.png create mode 100644 static/tiles/8/150/85.png create mode 100644 static/tiles/8/150/86.png create mode 100644 static/tiles/8/150/87.png create mode 100644 static/tiles/8/150/88.png create mode 100644 static/tiles/8/150/89.png create mode 100644 static/tiles/8/150/90.png create mode 100644 static/tiles/8/150/91.png create mode 100644 static/tiles/8/150/92.png create mode 100644 static/tiles/8/150/93.png create mode 100644 static/tiles/8/150/94.png create mode 100644 static/tiles/8/150/95.png create mode 100644 static/tiles/8/150/96.png create mode 100644 static/tiles/8/150/97.png create mode 100644 static/tiles/8/150/98.png create mode 100644 static/tiles/8/150/99.png create mode 100644 static/tiles/8/151/100.png create mode 100644 static/tiles/8/151/101.png create mode 100644 static/tiles/8/151/102.png create mode 100644 static/tiles/8/151/103.png create mode 100644 static/tiles/8/151/104.png create mode 100644 static/tiles/8/151/105.png create mode 100644 static/tiles/8/151/106.png create mode 100644 static/tiles/8/151/75.png create mode 100644 static/tiles/8/151/76.png create mode 100644 static/tiles/8/151/77.png create mode 100644 static/tiles/8/151/78.png create mode 100644 static/tiles/8/151/79.png create mode 100644 static/tiles/8/151/80.png create mode 100644 static/tiles/8/151/81.png create mode 100644 static/tiles/8/151/82.png create mode 100644 static/tiles/8/151/83.png create mode 100644 static/tiles/8/151/84.png create mode 100644 static/tiles/8/151/85.png create mode 100644 static/tiles/8/151/86.png create mode 100644 static/tiles/8/151/87.png create mode 100644 static/tiles/8/151/88.png create mode 100644 static/tiles/8/151/89.png create mode 100644 static/tiles/8/151/90.png create mode 100644 static/tiles/8/151/91.png create mode 100644 static/tiles/8/151/92.png create mode 100644 static/tiles/8/151/93.png create mode 100644 static/tiles/8/151/94.png create mode 100644 static/tiles/8/151/95.png create mode 100644 static/tiles/8/151/96.png create mode 100644 static/tiles/8/151/97.png create mode 100644 static/tiles/8/151/98.png create mode 100644 static/tiles/8/151/99.png create mode 100644 static/tiles/8/152/100.png create mode 100644 static/tiles/8/152/101.png create mode 100644 static/tiles/8/152/102.png create mode 100644 static/tiles/8/152/103.png create mode 100644 static/tiles/8/152/104.png create mode 100644 static/tiles/8/152/105.png create mode 100644 static/tiles/8/152/106.png create mode 100644 static/tiles/8/152/75.png create mode 100644 static/tiles/8/152/76.png create mode 100644 static/tiles/8/152/77.png create mode 100644 static/tiles/8/152/78.png create mode 100644 static/tiles/8/152/79.png create mode 100644 static/tiles/8/152/80.png create mode 100644 static/tiles/8/152/81.png create mode 100644 static/tiles/8/152/82.png create mode 100644 static/tiles/8/152/83.png create mode 100644 static/tiles/8/152/84.png create mode 100644 static/tiles/8/152/85.png create mode 100644 static/tiles/8/152/86.png create mode 100644 static/tiles/8/152/87.png create mode 100644 static/tiles/8/152/88.png create mode 100644 static/tiles/8/152/89.png create mode 100644 static/tiles/8/152/90.png create mode 100644 static/tiles/8/152/91.png create mode 100644 static/tiles/8/152/92.png create mode 100644 static/tiles/8/152/93.png create mode 100644 static/tiles/8/152/94.png create mode 100644 static/tiles/8/152/95.png create mode 100644 static/tiles/8/152/96.png create mode 100644 static/tiles/8/152/97.png create mode 100644 static/tiles/8/152/98.png create mode 100644 static/tiles/8/152/99.png create mode 100644 static/tiles/8/153/100.png create mode 100644 static/tiles/8/153/101.png create mode 100644 static/tiles/8/153/102.png create mode 100644 static/tiles/8/153/103.png create mode 100644 static/tiles/8/153/104.png create mode 100644 static/tiles/8/153/105.png create mode 100644 static/tiles/8/153/106.png create mode 100644 static/tiles/8/153/75.png create mode 100644 static/tiles/8/153/76.png create mode 100644 static/tiles/8/153/77.png create mode 100644 static/tiles/8/153/78.png create mode 100644 static/tiles/8/153/79.png create mode 100644 static/tiles/8/153/80.png create mode 100644 static/tiles/8/153/81.png create mode 100644 static/tiles/8/153/82.png create mode 100644 static/tiles/8/153/83.png create mode 100644 static/tiles/8/153/84.png create mode 100644 static/tiles/8/153/85.png create mode 100644 static/tiles/8/153/86.png create mode 100644 static/tiles/8/153/87.png create mode 100644 static/tiles/8/153/88.png create mode 100644 static/tiles/8/153/89.png create mode 100644 static/tiles/8/153/90.png create mode 100644 static/tiles/8/153/91.png create mode 100644 static/tiles/8/153/92.png create mode 100644 static/tiles/8/153/93.png create mode 100644 static/tiles/8/153/94.png create mode 100644 static/tiles/8/153/95.png create mode 100644 static/tiles/8/153/96.png create mode 100644 static/tiles/8/153/97.png create mode 100644 static/tiles/8/153/98.png create mode 100644 static/tiles/8/153/99.png create mode 100644 static/tiles/8/154/100.png create mode 100644 static/tiles/8/154/101.png create mode 100644 static/tiles/8/154/102.png create mode 100644 static/tiles/8/154/103.png create mode 100644 static/tiles/8/154/104.png create mode 100644 static/tiles/8/154/105.png create mode 100644 static/tiles/8/154/106.png create mode 100644 static/tiles/8/154/75.png create mode 100644 static/tiles/8/154/76.png create mode 100644 static/tiles/8/154/77.png create mode 100644 static/tiles/8/154/78.png create mode 100644 static/tiles/8/154/79.png create mode 100644 static/tiles/8/154/80.png create mode 100644 static/tiles/8/154/81.png create mode 100644 static/tiles/8/154/82.png create mode 100644 static/tiles/8/154/83.png create mode 100644 static/tiles/8/154/84.png create mode 100644 static/tiles/8/154/85.png create mode 100644 static/tiles/8/154/86.png create mode 100644 static/tiles/8/154/87.png create mode 100644 static/tiles/8/154/88.png create mode 100644 static/tiles/8/154/89.png create mode 100644 static/tiles/8/154/90.png create mode 100644 static/tiles/8/154/91.png create mode 100644 static/tiles/8/154/92.png create mode 100644 static/tiles/8/154/93.png create mode 100644 static/tiles/8/154/94.png create mode 100644 static/tiles/8/154/95.png create mode 100644 static/tiles/8/154/96.png create mode 100644 static/tiles/8/154/97.png create mode 100644 static/tiles/8/154/98.png create mode 100644 static/tiles/8/154/99.png create mode 100644 static/tiles/8/155/100.png create mode 100644 static/tiles/8/155/101.png create mode 100644 static/tiles/8/155/102.png create mode 100644 static/tiles/8/155/103.png create mode 100644 static/tiles/8/155/104.png create mode 100644 static/tiles/8/155/105.png create mode 100644 static/tiles/8/155/106.png create mode 100644 static/tiles/8/155/75.png create mode 100644 static/tiles/8/155/76.png create mode 100644 static/tiles/8/155/77.png create mode 100644 static/tiles/8/155/78.png create mode 100644 static/tiles/8/155/79.png create mode 100644 static/tiles/8/155/80.png create mode 100644 static/tiles/8/155/81.png create mode 100644 static/tiles/8/155/82.png create mode 100644 static/tiles/8/155/83.png create mode 100644 static/tiles/8/155/84.png create mode 100644 static/tiles/8/155/85.png create mode 100644 static/tiles/8/155/86.png create mode 100644 static/tiles/8/155/87.png create mode 100644 static/tiles/8/155/88.png create mode 100644 static/tiles/8/155/89.png create mode 100644 static/tiles/8/155/90.png create mode 100644 static/tiles/8/155/91.png create mode 100644 static/tiles/8/155/92.png create mode 100644 static/tiles/8/155/93.png create mode 100644 static/tiles/8/155/94.png create mode 100644 static/tiles/8/155/95.png create mode 100644 static/tiles/8/155/96.png create mode 100644 static/tiles/8/155/97.png create mode 100644 static/tiles/8/155/98.png create mode 100644 static/tiles/8/155/99.png create mode 100644 static/tiles/8/156/100.png create mode 100644 static/tiles/8/156/101.png create mode 100644 static/tiles/8/156/102.png create mode 100644 static/tiles/8/156/103.png create mode 100644 static/tiles/8/156/104.png create mode 100644 static/tiles/8/156/105.png create mode 100644 static/tiles/8/156/106.png create mode 100644 static/tiles/8/156/75.png create mode 100644 static/tiles/8/156/76.png create mode 100644 static/tiles/8/156/77.png create mode 100644 static/tiles/8/156/78.png create mode 100644 static/tiles/8/156/79.png create mode 100644 static/tiles/8/156/80.png create mode 100644 static/tiles/8/156/81.png create mode 100644 static/tiles/8/156/82.png create mode 100644 static/tiles/8/156/83.png create mode 100644 static/tiles/8/156/84.png create mode 100644 static/tiles/8/156/85.png create mode 100644 static/tiles/8/156/86.png create mode 100644 static/tiles/8/156/87.png create mode 100644 static/tiles/8/156/88.png create mode 100644 static/tiles/8/156/89.png create mode 100644 static/tiles/8/156/90.png create mode 100644 static/tiles/8/156/91.png create mode 100644 static/tiles/8/156/92.png create mode 100644 static/tiles/8/156/93.png create mode 100644 static/tiles/8/156/94.png create mode 100644 static/tiles/8/156/95.png create mode 100644 static/tiles/8/156/96.png create mode 100644 static/tiles/8/156/97.png create mode 100644 static/tiles/8/156/98.png create mode 100644 static/tiles/8/156/99.png create mode 100644 static/tiles/8/157/100.png create mode 100644 static/tiles/8/157/101.png create mode 100644 static/tiles/8/157/102.png create mode 100644 static/tiles/8/157/103.png create mode 100644 static/tiles/8/157/104.png create mode 100644 static/tiles/8/157/105.png create mode 100644 static/tiles/8/157/106.png create mode 100644 static/tiles/8/157/75.png create mode 100644 static/tiles/8/157/76.png create mode 100644 static/tiles/8/157/77.png create mode 100644 static/tiles/8/157/78.png create mode 100644 static/tiles/8/157/79.png create mode 100644 static/tiles/8/157/80.png create mode 100644 static/tiles/8/157/81.png create mode 100644 static/tiles/8/157/82.png create mode 100644 static/tiles/8/157/83.png create mode 100644 static/tiles/8/157/84.png create mode 100644 static/tiles/8/157/85.png create mode 100644 static/tiles/8/157/86.png create mode 100644 static/tiles/8/157/87.png create mode 100644 static/tiles/8/157/88.png create mode 100644 static/tiles/8/157/89.png create mode 100644 static/tiles/8/157/90.png create mode 100644 static/tiles/8/157/91.png create mode 100644 static/tiles/8/157/92.png create mode 100644 static/tiles/8/157/93.png create mode 100644 static/tiles/8/157/94.png create mode 100644 static/tiles/8/157/95.png create mode 100644 static/tiles/8/157/96.png create mode 100644 static/tiles/8/157/97.png create mode 100644 static/tiles/8/157/98.png create mode 100644 static/tiles/8/157/99.png create mode 100644 static/tiles/8/158/100.png create mode 100644 static/tiles/8/158/101.png create mode 100644 static/tiles/8/158/102.png create mode 100644 static/tiles/8/158/103.png create mode 100644 static/tiles/8/158/104.png create mode 100644 static/tiles/8/158/105.png create mode 100644 static/tiles/8/158/106.png create mode 100644 static/tiles/8/158/75.png create mode 100644 static/tiles/8/158/76.png create mode 100644 static/tiles/8/158/77.png create mode 100644 static/tiles/8/158/78.png create mode 100644 static/tiles/8/158/79.png create mode 100644 static/tiles/8/158/80.png create mode 100644 static/tiles/8/158/81.png create mode 100644 static/tiles/8/158/82.png create mode 100644 static/tiles/8/158/83.png create mode 100644 static/tiles/8/158/84.png create mode 100644 static/tiles/8/158/85.png create mode 100644 static/tiles/8/158/86.png create mode 100644 static/tiles/8/158/87.png create mode 100644 static/tiles/8/158/88.png create mode 100644 static/tiles/8/158/89.png create mode 100644 static/tiles/8/158/90.png create mode 100644 static/tiles/8/158/91.png create mode 100644 static/tiles/8/158/92.png create mode 100644 static/tiles/8/158/93.png create mode 100644 static/tiles/8/158/94.png create mode 100644 static/tiles/8/158/95.png create mode 100644 static/tiles/8/158/96.png create mode 100644 static/tiles/8/158/97.png create mode 100644 static/tiles/8/158/98.png create mode 100644 static/tiles/8/158/99.png create mode 100644 static/tiles/8/159/100.png create mode 100644 static/tiles/8/159/101.png create mode 100644 static/tiles/8/159/102.png create mode 100644 static/tiles/8/159/103.png create mode 100644 static/tiles/8/159/104.png create mode 100644 static/tiles/8/159/105.png create mode 100644 static/tiles/8/159/106.png create mode 100644 static/tiles/8/159/75.png create mode 100644 static/tiles/8/159/76.png create mode 100644 static/tiles/8/159/77.png create mode 100644 static/tiles/8/159/78.png create mode 100644 static/tiles/8/159/79.png create mode 100644 static/tiles/8/159/80.png create mode 100644 static/tiles/8/159/81.png create mode 100644 static/tiles/8/159/82.png create mode 100644 static/tiles/8/159/83.png create mode 100644 static/tiles/8/159/84.png create mode 100644 static/tiles/8/159/85.png create mode 100644 static/tiles/8/159/86.png create mode 100644 static/tiles/8/159/87.png create mode 100644 static/tiles/8/159/88.png create mode 100644 static/tiles/8/159/89.png create mode 100644 static/tiles/8/159/90.png create mode 100644 static/tiles/8/159/91.png create mode 100644 static/tiles/8/159/92.png create mode 100644 static/tiles/8/159/93.png create mode 100644 static/tiles/8/159/94.png create mode 100644 static/tiles/8/159/95.png create mode 100644 static/tiles/8/159/96.png create mode 100644 static/tiles/8/159/97.png create mode 100644 static/tiles/8/159/98.png create mode 100644 static/tiles/8/159/99.png create mode 100644 static/tiles/8/160/100.png create mode 100644 static/tiles/8/160/101.png create mode 100644 static/tiles/8/160/102.png create mode 100644 static/tiles/8/160/103.png create mode 100644 static/tiles/8/160/104.png create mode 100644 static/tiles/8/160/105.png create mode 100644 static/tiles/8/160/106.png create mode 100644 static/tiles/8/160/75.png create mode 100644 static/tiles/8/160/76.png create mode 100644 static/tiles/8/160/77.png create mode 100644 static/tiles/8/160/78.png create mode 100644 static/tiles/8/160/79.png create mode 100644 static/tiles/8/160/80.png create mode 100644 static/tiles/8/160/81.png create mode 100644 static/tiles/8/160/82.png create mode 100644 static/tiles/8/160/83.png create mode 100644 static/tiles/8/160/84.png create mode 100644 static/tiles/8/160/85.png create mode 100644 static/tiles/8/160/86.png create mode 100644 static/tiles/8/160/87.png create mode 100644 static/tiles/8/160/88.png create mode 100644 static/tiles/8/160/89.png create mode 100644 static/tiles/8/160/90.png create mode 100644 static/tiles/8/160/91.png create mode 100644 static/tiles/8/160/92.png create mode 100644 static/tiles/8/160/93.png create mode 100644 static/tiles/8/160/94.png create mode 100644 static/tiles/8/160/95.png create mode 100644 static/tiles/8/160/96.png create mode 100644 static/tiles/8/160/97.png create mode 100644 static/tiles/8/160/98.png create mode 100644 static/tiles/8/160/99.png create mode 100644 static/tiles/8/161/100.png create mode 100644 static/tiles/8/161/101.png create mode 100644 static/tiles/8/161/102.png create mode 100644 static/tiles/8/161/103.png create mode 100644 static/tiles/8/161/104.png create mode 100644 static/tiles/8/161/105.png create mode 100644 static/tiles/8/161/106.png create mode 100644 static/tiles/8/161/75.png create mode 100644 static/tiles/8/161/76.png create mode 100644 static/tiles/8/161/77.png create mode 100644 static/tiles/8/161/78.png create mode 100644 static/tiles/8/161/79.png create mode 100644 static/tiles/8/161/80.png create mode 100644 static/tiles/8/161/81.png create mode 100644 static/tiles/8/161/82.png create mode 100644 static/tiles/8/161/83.png create mode 100644 static/tiles/8/161/84.png create mode 100644 static/tiles/8/161/85.png create mode 100644 static/tiles/8/161/86.png create mode 100644 static/tiles/8/161/87.png create mode 100644 static/tiles/8/161/88.png create mode 100644 static/tiles/8/161/89.png create mode 100644 static/tiles/8/161/90.png create mode 100644 static/tiles/8/161/91.png create mode 100644 static/tiles/8/161/92.png create mode 100644 static/tiles/8/161/93.png create mode 100644 static/tiles/8/161/94.png create mode 100644 static/tiles/8/161/95.png create mode 100644 static/tiles/8/161/96.png create mode 100644 static/tiles/8/161/97.png create mode 100644 static/tiles/8/161/98.png create mode 100644 static/tiles/8/161/99.png create mode 100644 static/tiles/8/162/100.png create mode 100644 static/tiles/8/162/101.png create mode 100644 static/tiles/8/162/102.png create mode 100644 static/tiles/8/162/103.png create mode 100644 static/tiles/8/162/104.png create mode 100644 static/tiles/8/162/105.png create mode 100644 static/tiles/8/162/106.png create mode 100644 static/tiles/8/162/75.png create mode 100644 static/tiles/8/162/76.png create mode 100644 static/tiles/8/162/77.png create mode 100644 static/tiles/8/162/78.png create mode 100644 static/tiles/8/162/79.png create mode 100644 static/tiles/8/162/80.png create mode 100644 static/tiles/8/162/81.png create mode 100644 static/tiles/8/162/82.png create mode 100644 static/tiles/8/162/83.png create mode 100644 static/tiles/8/162/84.png create mode 100644 static/tiles/8/162/85.png create mode 100644 static/tiles/8/162/86.png create mode 100644 static/tiles/8/162/87.png create mode 100644 static/tiles/8/162/88.png create mode 100644 static/tiles/8/162/89.png create mode 100644 static/tiles/8/162/90.png create mode 100644 static/tiles/8/162/91.png create mode 100644 static/tiles/8/162/92.png create mode 100644 static/tiles/8/162/93.png create mode 100644 static/tiles/8/162/94.png create mode 100644 static/tiles/8/162/95.png create mode 100644 static/tiles/8/162/96.png create mode 100644 static/tiles/8/162/97.png create mode 100644 static/tiles/8/162/98.png create mode 100644 static/tiles/8/162/99.png create mode 100644 static/tiles/8/163/100.png create mode 100644 static/tiles/8/163/101.png create mode 100644 static/tiles/8/163/102.png create mode 100644 static/tiles/8/163/103.png create mode 100644 static/tiles/8/163/104.png create mode 100644 static/tiles/8/163/105.png create mode 100644 static/tiles/8/163/106.png create mode 100644 static/tiles/8/163/75.png create mode 100644 static/tiles/8/163/76.png create mode 100644 static/tiles/8/163/77.png create mode 100644 static/tiles/8/163/78.png create mode 100644 static/tiles/8/163/79.png create mode 100644 static/tiles/8/163/80.png create mode 100644 static/tiles/8/163/81.png create mode 100644 static/tiles/8/163/82.png create mode 100644 static/tiles/8/163/83.png create mode 100644 static/tiles/8/163/84.png create mode 100644 static/tiles/8/163/85.png create mode 100644 static/tiles/8/163/86.png create mode 100644 static/tiles/8/163/87.png create mode 100644 static/tiles/8/163/88.png create mode 100644 static/tiles/8/163/89.png create mode 100644 static/tiles/8/163/90.png create mode 100644 static/tiles/8/163/91.png create mode 100644 static/tiles/8/163/92.png create mode 100644 static/tiles/8/163/93.png create mode 100644 static/tiles/8/163/94.png create mode 100644 static/tiles/8/163/95.png create mode 100644 static/tiles/8/163/96.png create mode 100644 static/tiles/8/163/97.png create mode 100644 static/tiles/8/163/98.png create mode 100644 static/tiles/8/163/99.png create mode 100644 static/tiles/8/164/100.png create mode 100644 static/tiles/8/164/101.png create mode 100644 static/tiles/8/164/102.png create mode 100644 static/tiles/8/164/103.png create mode 100644 static/tiles/8/164/104.png create mode 100644 static/tiles/8/164/105.png create mode 100644 static/tiles/8/164/106.png create mode 100644 static/tiles/8/164/75.png create mode 100644 static/tiles/8/164/76.png create mode 100644 static/tiles/8/164/77.png create mode 100644 static/tiles/8/164/78.png create mode 100644 static/tiles/8/164/79.png create mode 100644 static/tiles/8/164/80.png create mode 100644 static/tiles/8/164/81.png create mode 100644 static/tiles/8/164/82.png create mode 100644 static/tiles/8/164/83.png create mode 100644 static/tiles/8/164/84.png create mode 100644 static/tiles/8/164/85.png create mode 100644 static/tiles/8/164/86.png create mode 100644 static/tiles/8/164/87.png create mode 100644 static/tiles/8/164/88.png create mode 100644 static/tiles/8/164/89.png create mode 100644 static/tiles/8/164/90.png create mode 100644 static/tiles/8/164/91.png create mode 100644 static/tiles/8/164/92.png create mode 100644 static/tiles/8/164/93.png create mode 100644 static/tiles/8/164/94.png create mode 100644 static/tiles/8/164/95.png create mode 100644 static/tiles/8/164/96.png create mode 100644 static/tiles/8/164/97.png create mode 100644 static/tiles/8/164/98.png create mode 100644 static/tiles/8/164/99.png create mode 100644 static/tiles/8/165/100.png create mode 100644 static/tiles/8/165/101.png create mode 100644 static/tiles/8/165/102.png create mode 100644 static/tiles/8/165/103.png create mode 100644 static/tiles/8/165/104.png create mode 100644 static/tiles/8/165/105.png create mode 100644 static/tiles/8/165/106.png create mode 100644 static/tiles/8/165/75.png create mode 100644 static/tiles/8/165/76.png create mode 100644 static/tiles/8/165/77.png create mode 100644 static/tiles/8/165/78.png create mode 100644 static/tiles/8/165/79.png create mode 100644 static/tiles/8/165/80.png create mode 100644 static/tiles/8/165/81.png create mode 100644 static/tiles/8/165/82.png create mode 100644 static/tiles/8/165/83.png create mode 100644 static/tiles/8/165/84.png create mode 100644 static/tiles/8/165/85.png create mode 100644 static/tiles/8/165/86.png create mode 100644 static/tiles/8/165/87.png create mode 100644 static/tiles/8/165/88.png create mode 100644 static/tiles/8/165/89.png create mode 100644 static/tiles/8/165/90.png create mode 100644 static/tiles/8/165/91.png create mode 100644 static/tiles/8/165/92.png create mode 100644 static/tiles/8/165/93.png create mode 100644 static/tiles/8/165/94.png create mode 100644 static/tiles/8/165/95.png create mode 100644 static/tiles/8/165/96.png create mode 100644 static/tiles/8/165/97.png create mode 100644 static/tiles/8/165/98.png create mode 100644 static/tiles/8/165/99.png create mode 100644 static/tiles/8/166/100.png create mode 100644 static/tiles/8/166/101.png create mode 100644 static/tiles/8/166/102.png create mode 100644 static/tiles/8/166/103.png create mode 100644 static/tiles/8/166/104.png create mode 100644 static/tiles/8/166/105.png create mode 100644 static/tiles/8/166/106.png create mode 100644 static/tiles/8/166/75.png create mode 100644 static/tiles/8/166/76.png create mode 100644 static/tiles/8/166/77.png create mode 100644 static/tiles/8/166/78.png create mode 100644 static/tiles/8/166/79.png create mode 100644 static/tiles/8/166/80.png create mode 100644 static/tiles/8/166/81.png create mode 100644 static/tiles/8/166/82.png create mode 100644 static/tiles/8/166/83.png create mode 100644 static/tiles/8/166/84.png create mode 100644 static/tiles/8/166/85.png create mode 100644 static/tiles/8/166/86.png create mode 100644 static/tiles/8/166/87.png create mode 100644 static/tiles/8/166/88.png create mode 100644 static/tiles/8/166/89.png create mode 100644 static/tiles/8/166/90.png create mode 100644 static/tiles/8/166/91.png create mode 100644 static/tiles/8/166/92.png create mode 100644 static/tiles/8/166/93.png create mode 100644 static/tiles/8/166/94.png create mode 100644 static/tiles/8/166/95.png create mode 100644 static/tiles/8/166/96.png create mode 100644 static/tiles/8/166/97.png create mode 100644 static/tiles/8/166/98.png create mode 100644 static/tiles/8/166/99.png create mode 100644 static/tiles/8/167/100.png create mode 100644 static/tiles/8/167/101.png create mode 100644 static/tiles/8/167/102.png create mode 100644 static/tiles/8/167/103.png create mode 100644 static/tiles/8/167/104.png create mode 100644 static/tiles/8/167/105.png create mode 100644 static/tiles/8/167/106.png create mode 100644 static/tiles/8/167/75.png create mode 100644 static/tiles/8/167/76.png create mode 100644 static/tiles/8/167/77.png create mode 100644 static/tiles/8/167/78.png create mode 100644 static/tiles/8/167/79.png create mode 100644 static/tiles/8/167/80.png create mode 100644 static/tiles/8/167/81.png create mode 100644 static/tiles/8/167/82.png create mode 100644 static/tiles/8/167/83.png create mode 100644 static/tiles/8/167/84.png create mode 100644 static/tiles/8/167/85.png create mode 100644 static/tiles/8/167/86.png create mode 100644 static/tiles/8/167/87.png create mode 100644 static/tiles/8/167/88.png create mode 100644 static/tiles/8/167/89.png create mode 100644 static/tiles/8/167/90.png create mode 100644 static/tiles/8/167/91.png create mode 100644 static/tiles/8/167/92.png create mode 100644 static/tiles/8/167/93.png create mode 100644 static/tiles/8/167/94.png create mode 100644 static/tiles/8/167/95.png create mode 100644 static/tiles/8/167/96.png create mode 100644 static/tiles/8/167/97.png create mode 100644 static/tiles/8/167/98.png create mode 100644 static/tiles/8/167/99.png create mode 100644 static/tiles/8/168/100.png create mode 100644 static/tiles/8/168/101.png create mode 100644 static/tiles/8/168/102.png create mode 100644 static/tiles/8/168/103.png create mode 100644 static/tiles/8/168/104.png create mode 100644 static/tiles/8/168/105.png create mode 100644 static/tiles/8/168/106.png create mode 100644 static/tiles/8/168/75.png create mode 100644 static/tiles/8/168/76.png create mode 100644 static/tiles/8/168/77.png create mode 100644 static/tiles/8/168/78.png create mode 100644 static/tiles/8/168/79.png create mode 100644 static/tiles/8/168/80.png create mode 100644 static/tiles/8/168/81.png create mode 100644 static/tiles/8/168/82.png create mode 100644 static/tiles/8/168/83.png create mode 100644 static/tiles/8/168/84.png create mode 100644 static/tiles/8/168/85.png create mode 100644 static/tiles/8/168/86.png create mode 100644 static/tiles/8/168/87.png create mode 100644 static/tiles/8/168/88.png create mode 100644 static/tiles/8/168/89.png create mode 100644 static/tiles/8/168/90.png create mode 100644 static/tiles/8/168/91.png create mode 100644 static/tiles/8/168/92.png create mode 100644 static/tiles/8/168/93.png create mode 100644 static/tiles/8/168/94.png create mode 100644 static/tiles/8/168/95.png create mode 100644 static/tiles/8/168/96.png create mode 100644 static/tiles/8/168/97.png create mode 100644 static/tiles/8/168/98.png create mode 100644 static/tiles/8/168/99.png create mode 100644 static/tiles/8/169/100.png create mode 100644 static/tiles/8/169/101.png create mode 100644 static/tiles/8/169/102.png create mode 100644 static/tiles/8/169/103.png create mode 100644 static/tiles/8/169/104.png create mode 100644 static/tiles/8/169/105.png create mode 100644 static/tiles/8/169/106.png create mode 100644 static/tiles/8/169/75.png create mode 100644 static/tiles/8/169/76.png create mode 100644 static/tiles/8/169/77.png create mode 100644 static/tiles/8/169/78.png create mode 100644 static/tiles/8/169/79.png create mode 100644 static/tiles/8/169/80.png create mode 100644 static/tiles/8/169/81.png create mode 100644 static/tiles/8/169/82.png create mode 100644 static/tiles/8/169/83.png create mode 100644 static/tiles/8/169/84.png create mode 100644 static/tiles/8/169/85.png create mode 100644 static/tiles/8/169/86.png create mode 100644 static/tiles/8/169/87.png create mode 100644 static/tiles/8/169/88.png create mode 100644 static/tiles/8/169/89.png create mode 100644 static/tiles/8/169/90.png create mode 100644 static/tiles/8/169/91.png create mode 100644 static/tiles/8/169/92.png create mode 100644 static/tiles/8/169/93.png create mode 100644 static/tiles/8/169/94.png create mode 100644 static/tiles/8/169/95.png create mode 100644 static/tiles/8/169/96.png create mode 100644 static/tiles/8/169/97.png create mode 100644 static/tiles/8/169/98.png create mode 100644 static/tiles/8/169/99.png create mode 100644 static/tiles/8/170/100.png create mode 100644 static/tiles/8/170/101.png create mode 100644 static/tiles/8/170/102.png create mode 100644 static/tiles/8/170/103.png create mode 100644 static/tiles/8/170/104.png create mode 100644 static/tiles/8/170/105.png create mode 100644 static/tiles/8/170/106.png create mode 100644 static/tiles/8/170/75.png create mode 100644 static/tiles/8/170/76.png create mode 100644 static/tiles/8/170/77.png create mode 100644 static/tiles/8/170/78.png create mode 100644 static/tiles/8/170/79.png create mode 100644 static/tiles/8/170/80.png create mode 100644 static/tiles/8/170/81.png create mode 100644 static/tiles/8/170/82.png create mode 100644 static/tiles/8/170/83.png create mode 100644 static/tiles/8/170/84.png create mode 100644 static/tiles/8/170/85.png create mode 100644 static/tiles/8/170/86.png create mode 100644 static/tiles/8/170/87.png create mode 100644 static/tiles/8/170/88.png create mode 100644 static/tiles/8/170/89.png create mode 100644 static/tiles/8/170/90.png create mode 100644 static/tiles/8/170/91.png create mode 100644 static/tiles/8/170/92.png create mode 100644 static/tiles/8/170/93.png create mode 100644 static/tiles/8/170/94.png create mode 100644 static/tiles/8/170/95.png create mode 100644 static/tiles/8/170/96.png create mode 100644 static/tiles/8/170/97.png create mode 100644 static/tiles/8/170/98.png create mode 100644 static/tiles/8/170/99.png create mode 100644 static/tiles/8/171/100.png create mode 100644 static/tiles/8/171/101.png create mode 100644 static/tiles/8/171/102.png create mode 100644 static/tiles/8/171/103.png create mode 100644 static/tiles/8/171/104.png create mode 100644 static/tiles/8/171/105.png create mode 100644 static/tiles/8/171/106.png create mode 100644 static/tiles/8/171/75.png create mode 100644 static/tiles/8/171/76.png create mode 100644 static/tiles/8/171/77.png create mode 100644 static/tiles/8/171/78.png create mode 100644 static/tiles/8/171/79.png create mode 100644 static/tiles/8/171/80.png create mode 100644 static/tiles/8/171/81.png create mode 100644 static/tiles/8/171/82.png create mode 100644 static/tiles/8/171/83.png create mode 100644 static/tiles/8/171/84.png create mode 100644 static/tiles/8/171/85.png create mode 100644 static/tiles/8/171/86.png create mode 100644 static/tiles/8/171/87.png create mode 100644 static/tiles/8/171/88.png create mode 100644 static/tiles/8/171/89.png create mode 100644 static/tiles/8/171/90.png create mode 100644 static/tiles/8/171/91.png create mode 100644 static/tiles/8/171/92.png create mode 100644 static/tiles/8/171/93.png create mode 100644 static/tiles/8/171/94.png create mode 100644 static/tiles/8/171/95.png create mode 100644 static/tiles/8/171/96.png create mode 100644 static/tiles/8/171/97.png create mode 100644 static/tiles/8/171/98.png create mode 100644 static/tiles/8/171/99.png create mode 100644 static/tiles/8/172/100.png create mode 100644 static/tiles/8/172/101.png create mode 100644 static/tiles/8/172/102.png create mode 100644 static/tiles/8/172/103.png create mode 100644 static/tiles/8/172/104.png create mode 100644 static/tiles/8/172/105.png create mode 100644 static/tiles/8/172/106.png create mode 100644 static/tiles/8/172/75.png create mode 100644 static/tiles/8/172/76.png create mode 100644 static/tiles/8/172/77.png create mode 100644 static/tiles/8/172/78.png create mode 100644 static/tiles/8/172/79.png create mode 100644 static/tiles/8/172/80.png create mode 100644 static/tiles/8/172/81.png create mode 100644 static/tiles/8/172/82.png create mode 100644 static/tiles/8/172/83.png create mode 100644 static/tiles/8/172/84.png create mode 100644 static/tiles/8/172/85.png create mode 100644 static/tiles/8/172/86.png create mode 100644 static/tiles/8/172/87.png create mode 100644 static/tiles/8/172/88.png create mode 100644 static/tiles/8/172/89.png create mode 100644 static/tiles/8/172/90.png create mode 100644 static/tiles/8/172/91.png create mode 100644 static/tiles/8/172/92.png create mode 100644 static/tiles/8/172/93.png create mode 100644 static/tiles/8/172/94.png create mode 100644 static/tiles/8/172/95.png create mode 100644 static/tiles/8/172/96.png create mode 100644 static/tiles/8/172/97.png create mode 100644 static/tiles/8/172/98.png create mode 100644 static/tiles/8/172/99.png create mode 100644 static/tiles/9/301/151.png create mode 100644 static/tiles/9/301/152.png create mode 100644 static/tiles/9/301/153.png create mode 100644 static/tiles/9/301/154.png create mode 100644 static/tiles/9/301/155.png create mode 100644 static/tiles/9/301/156.png create mode 100644 static/tiles/9/301/157.png create mode 100644 static/tiles/9/301/158.png create mode 100644 static/tiles/9/301/159.png create mode 100644 static/tiles/9/301/160.png create mode 100644 static/tiles/9/301/161.png create mode 100644 static/tiles/9/301/162.png create mode 100644 static/tiles/9/301/163.png create mode 100644 static/tiles/9/301/164.png create mode 100644 static/tiles/9/301/165.png create mode 100644 static/tiles/9/301/166.png create mode 100644 static/tiles/9/301/167.png create mode 100644 static/tiles/9/301/168.png create mode 100644 static/tiles/9/301/169.png create mode 100644 static/tiles/9/301/170.png create mode 100644 static/tiles/9/301/171.png create mode 100644 static/tiles/9/301/172.png create mode 100644 static/tiles/9/301/173.png create mode 100644 static/tiles/9/301/174.png create mode 100644 static/tiles/9/301/175.png create mode 100644 static/tiles/9/301/176.png create mode 100644 static/tiles/9/301/177.png create mode 100644 static/tiles/9/301/178.png create mode 100644 static/tiles/9/301/179.png create mode 100644 static/tiles/9/301/180.png create mode 100644 static/tiles/9/301/181.png create mode 100644 static/tiles/9/301/182.png create mode 100644 static/tiles/9/301/183.png create mode 100644 static/tiles/9/301/184.png create mode 100644 static/tiles/9/301/185.png create mode 100644 static/tiles/9/301/186.png create mode 100644 static/tiles/9/301/187.png create mode 100644 static/tiles/9/301/188.png create mode 100644 static/tiles/9/301/189.png create mode 100644 static/tiles/9/301/190.png create mode 100644 static/tiles/9/301/191.png create mode 100644 static/tiles/9/301/192.png create mode 100644 static/tiles/9/301/193.png create mode 100644 static/tiles/9/301/194.png create mode 100644 static/tiles/9/301/195.png create mode 100644 static/tiles/9/301/196.png create mode 100644 static/tiles/9/301/197.png create mode 100644 static/tiles/9/301/198.png create mode 100644 static/tiles/9/301/199.png create mode 100644 static/tiles/9/301/200.png create mode 100644 static/tiles/9/301/201.png create mode 100644 static/tiles/9/301/202.png create mode 100644 static/tiles/9/301/203.png create mode 100644 static/tiles/9/301/204.png create mode 100644 static/tiles/9/301/205.png create mode 100644 static/tiles/9/301/206.png create mode 100644 static/tiles/9/301/207.png create mode 100644 static/tiles/9/301/208.png create mode 100644 static/tiles/9/301/209.png create mode 100644 static/tiles/9/301/210.png create mode 100644 static/tiles/9/301/211.png create mode 100644 static/tiles/9/301/212.png create mode 100644 static/tiles/9/301/213.png create mode 100644 static/tiles/9/302/151.png create mode 100644 static/tiles/9/302/152.png create mode 100644 static/tiles/9/302/153.png create mode 100644 static/tiles/9/302/154.png create mode 100644 static/tiles/9/302/155.png create mode 100644 static/tiles/9/302/156.png create mode 100644 static/tiles/9/302/157.png create mode 100644 static/tiles/9/302/158.png create mode 100644 static/tiles/9/302/159.png create mode 100644 static/tiles/9/302/160.png create mode 100644 static/tiles/9/302/161.png create mode 100644 static/tiles/9/302/162.png create mode 100644 static/tiles/9/302/163.png create mode 100644 static/tiles/9/302/164.png create mode 100644 static/tiles/9/302/165.png create mode 100644 static/tiles/9/302/166.png create mode 100644 static/tiles/9/302/167.png create mode 100644 static/tiles/9/302/168.png create mode 100644 static/tiles/9/302/169.png create mode 100644 static/tiles/9/302/170.png create mode 100644 static/tiles/9/302/171.png create mode 100644 static/tiles/9/302/172.png create mode 100644 static/tiles/9/302/173.png create mode 100644 static/tiles/9/302/174.png create mode 100644 static/tiles/9/302/175.png create mode 100644 static/tiles/9/302/176.png create mode 100644 static/tiles/9/302/177.png create mode 100644 static/tiles/9/302/178.png create mode 100644 static/tiles/9/302/179.png create mode 100644 static/tiles/9/302/180.png create mode 100644 static/tiles/9/302/181.png create mode 100644 static/tiles/9/302/182.png create mode 100644 static/tiles/9/302/183.png create mode 100644 static/tiles/9/302/184.png create mode 100644 static/tiles/9/302/185.png create mode 100644 static/tiles/9/302/186.png create mode 100644 static/tiles/9/302/187.png create mode 100644 static/tiles/9/302/188.png create mode 100644 static/tiles/9/302/189.png create mode 100644 static/tiles/9/302/190.png create mode 100644 static/tiles/9/302/191.png create mode 100644 static/tiles/9/302/192.png create mode 100644 static/tiles/9/302/193.png create mode 100644 static/tiles/9/302/194.png create mode 100644 static/tiles/9/302/195.png create mode 100644 static/tiles/9/302/196.png create mode 100644 static/tiles/9/302/197.png create mode 100644 static/tiles/9/302/198.png create mode 100644 static/tiles/9/302/199.png create mode 100644 static/tiles/9/302/200.png create mode 100644 static/tiles/9/302/201.png create mode 100644 static/tiles/9/302/202.png create mode 100644 static/tiles/9/302/203.png create mode 100644 static/tiles/9/302/204.png create mode 100644 static/tiles/9/302/205.png create mode 100644 static/tiles/9/302/206.png create mode 100644 static/tiles/9/302/207.png create mode 100644 static/tiles/9/302/208.png create mode 100644 static/tiles/9/302/209.png create mode 100644 static/tiles/9/302/210.png create mode 100644 static/tiles/9/302/211.png create mode 100644 static/tiles/9/302/212.png create mode 100644 static/tiles/9/302/213.png create mode 100644 static/tiles/9/303/151.png create mode 100644 static/tiles/9/303/152.png create mode 100644 static/tiles/9/303/153.png create mode 100644 static/tiles/9/303/154.png create mode 100644 static/tiles/9/303/155.png create mode 100644 static/tiles/9/303/156.png create mode 100644 static/tiles/9/303/157.png create mode 100644 static/tiles/9/303/158.png create mode 100644 static/tiles/9/303/159.png create mode 100644 static/tiles/9/303/160.png create mode 100644 static/tiles/9/303/161.png create mode 100644 static/tiles/9/303/162.png create mode 100644 static/tiles/9/303/163.png create mode 100644 static/tiles/9/303/164.png create mode 100644 static/tiles/9/303/165.png create mode 100644 static/tiles/9/303/166.png create mode 100644 static/tiles/9/303/167.png create mode 100644 static/tiles/9/303/168.png create mode 100644 static/tiles/9/303/169.png create mode 100644 static/tiles/9/303/170.png create mode 100644 static/tiles/9/303/171.png create mode 100644 static/tiles/9/303/172.png create mode 100644 static/tiles/9/303/173.png create mode 100644 static/tiles/9/303/174.png create mode 100644 static/tiles/9/303/175.png create mode 100644 static/tiles/9/303/176.png create mode 100644 static/tiles/9/303/177.png create mode 100644 static/tiles/9/303/178.png create mode 100644 static/tiles/9/303/179.png create mode 100644 static/tiles/9/303/180.png create mode 100644 static/tiles/9/303/181.png create mode 100644 static/tiles/9/303/182.png create mode 100644 static/tiles/9/303/183.png create mode 100644 static/tiles/9/303/184.png create mode 100644 static/tiles/9/303/185.png create mode 100644 static/tiles/9/303/186.png create mode 100644 static/tiles/9/303/187.png create mode 100644 static/tiles/9/303/188.png create mode 100644 static/tiles/9/303/189.png create mode 100644 static/tiles/9/303/190.png create mode 100644 static/tiles/9/303/191.png create mode 100644 static/tiles/9/303/192.png create mode 100644 static/tiles/9/303/193.png create mode 100644 static/tiles/9/303/194.png create mode 100644 static/tiles/9/303/195.png create mode 100644 static/tiles/9/303/196.png create mode 100644 static/tiles/9/303/197.png create mode 100644 static/tiles/9/303/198.png create mode 100644 static/tiles/9/303/199.png create mode 100644 static/tiles/9/303/200.png create mode 100644 static/tiles/9/303/201.png create mode 100644 static/tiles/9/303/202.png create mode 100644 static/tiles/9/303/203.png create mode 100644 static/tiles/9/303/204.png create mode 100644 static/tiles/9/303/205.png create mode 100644 static/tiles/9/303/206.png create mode 100644 static/tiles/9/303/207.png create mode 100644 static/tiles/9/303/208.png create mode 100644 static/tiles/9/303/209.png create mode 100644 static/tiles/9/303/210.png create mode 100644 static/tiles/9/303/211.png create mode 100644 static/tiles/9/303/212.png create mode 100644 static/tiles/9/303/213.png create mode 100644 static/tiles/9/304/151.png create mode 100644 static/tiles/9/304/152.png create mode 100644 static/tiles/9/304/153.png create mode 100644 static/tiles/9/304/154.png create mode 100644 static/tiles/9/304/155.png create mode 100644 static/tiles/9/304/156.png create mode 100644 static/tiles/9/304/157.png create mode 100644 static/tiles/9/304/158.png create mode 100644 static/tiles/9/304/159.png create mode 100644 static/tiles/9/304/160.png create mode 100644 static/tiles/9/304/161.png create mode 100644 static/tiles/9/304/162.png create mode 100644 static/tiles/9/304/163.png create mode 100644 static/tiles/9/304/164.png create mode 100644 static/tiles/9/304/165.png create mode 100644 static/tiles/9/304/166.png create mode 100644 static/tiles/9/304/167.png create mode 100644 static/tiles/9/304/168.png create mode 100644 static/tiles/9/304/169.png create mode 100644 static/tiles/9/304/170.png create mode 100644 static/tiles/9/304/171.png create mode 100644 static/tiles/9/304/172.png create mode 100644 static/tiles/9/304/173.png create mode 100644 static/tiles/9/304/174.png create mode 100644 static/tiles/9/304/175.png create mode 100644 static/tiles/9/304/176.png create mode 100644 static/tiles/9/304/177.png create mode 100644 static/tiles/9/304/178.png create mode 100644 static/tiles/9/304/179.png create mode 100644 static/tiles/9/304/180.png create mode 100644 static/tiles/9/304/181.png create mode 100644 static/tiles/9/304/182.png create mode 100644 static/tiles/9/304/183.png create mode 100644 static/tiles/9/304/184.png create mode 100644 static/tiles/9/304/185.png create mode 100644 static/tiles/9/304/186.png create mode 100644 static/tiles/9/304/187.png create mode 100644 static/tiles/9/304/188.png create mode 100644 static/tiles/9/304/189.png create mode 100644 static/tiles/9/304/190.png create mode 100644 static/tiles/9/304/191.png create mode 100644 static/tiles/9/309/159.png create mode 100644 static/tiles/9/309/160.png create mode 100644 static/xterm/xterm-addon-fit.min.js create mode 100644 static/xterm/xterm.css create mode 100644 static/xterm/xterm.min.js create mode 100644 static/xterm/xterm.min.js.new create mode 100644 templates/cert.html create mode 100644 templates/index.html create mode 100644 terminal.py create mode 100644 tools/build_mmsi_mid_json.py create mode 100644 transponder.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5180a0e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +__pycache__/ +*.py[cod] +.venv/ +venv/ +*.pem diff --git a/README.md b/README.md new file mode 100644 index 0000000..12de7b3 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# WebAisMap + +AIS map web application (Python backend + Leaflet frontend). diff --git a/README_OFFLINE.md b/README_OFFLINE.md new file mode 100644 index 0000000..3f9ca03 --- /dev/null +++ b/README_OFFLINE.md @@ -0,0 +1,97 @@ +# Работа в офлайн режиме + +Приложение настроено для работы без подключения к интернету. Все необходимые файлы (библиотека Leaflet и тайлы карты) хранятся локально. + +## Структура файлов + +- `static/leaflet/` - библиотека Leaflet (CSS, JS и изображения) +- `static/xterm/` - терминал в браузере (вкладка «Консоль»), без CDN + (не удаляйте комментарий `sourceMappingURL` через `splitlines()` в Python — в `xterm.min.js` есть символ U+0085, из‑за него строка «ломается» и появляется SyntaxError в браузере) +- `static/tiles/` - тайлы карты OpenStreetMap + +## Скачивание тайлов карты + +Для работы в офлайн режиме необходимо предварительно скачать тайлы карты для нужной области. + +### Использование скрипта download_tiles.py + +```bash +# Скачать тайлы для области Москвы (по умолчанию) +python download_tiles.py + +# Скачать тайлы для конкретной области +python download_tiles.py --bounds 55.5,37.5,56.0,38.0 --min-zoom 5 --max-zoom 12 + +# Скачать тайлы вокруг центра с радиусом +python download_tiles.py --center 55.75,37.62,50 --min-zoom 5 --max-zoom 12 + +# Указать выходную папку +python download_tiles.py --output static/tiles --min-zoom 5 --max-zoom 12 +``` + +### Параметры скрипта + +- `--min-zoom` - минимальный уровень масштабирования (по умолчанию: 5) +- `--max-zoom` - максимальный уровень масштабирования (по умолчанию: 12) +- `--bounds` - границы области в формате: `min_lat,min_lon,max_lat,max_lon` +- `--center` - центр области и радиус в формате: `lat,lon,radius_km` +- `--output` - выходная папка для тайлов (по умолчанию: `static/tiles`) +- `--delay` - задержка между запросами в секундах (по умолчанию: 1.0, минимум рекомендуется 1.0) + +### Примеры использования + +```bash +# Москва и окрестности, уровни 5-12 +python download_tiles.py --bounds 55.5,37.3,56.0,37.9 --min-zoom 5 --max-zoom 12 + +# Санкт-Петербург, уровни 5-14 +python download_tiles.py --center 59.934,30.306,30 --min-zoom 5 --max-zoom 14 + +# Большая область (например, весь регион), уровни 3-10 +python download_tiles.py --bounds 50.0,20.0,60.0,40.0 --min-zoom 3 --max-zoom 10 +``` + +### Рекомендации по уровням масштабирования + +- **Уровни 0-5**: Весь мир / континенты (очень мало тайлов, быстро скачивается) +- **Уровни 5-10**: Регионы / крупные города (умеренное количество тайлов) +- **Уровни 10-14**: Города / районы (много тайлов, может занять время) +- **Уровни 14-19**: Детальные карты (очень много тайлов, долгое скачивание) + +**Важно**: Чем больше уровней масштабирования и область, тем больше тайлов нужно скачать. Для начала рекомендуется использовать уровни 5-12 для нужной области. + +## Запуск приложения + +После скачивания тайлов приложение будет работать полностью офлайн: + +```bash +python main.py +``` + +Приложение будет доступно по адресу `http://localhost:8000` + +## Примечания + +- Если тайл не найден локально, карта покажет пустое место (серый квадрат) +- Для полного покрытия области рекомендуется скачать тайлы заранее +- Размер тайлов зависит от области и уровней масштабирования (может быть от нескольких МБ до нескольких ГБ) + +## Политика использования тайлов OpenStreetMap + +Скрипт настроен для соблюдения [политики использования тайлов OpenStreetMap](https://operations.osmfoundation.org/policies/tiles/): + +- ✅ Используется корректный User-Agent в заголовках запросов +- ✅ Соблюдается минимальная задержка 1 секунда между запросами +- ✅ Обрабатываются ошибки 429 (Too Many Requests) с автоматическим увеличением задержки +- ✅ Используются разные поддомены для распределения нагрузки + +**Важно**: Если вы получаете ошибку "Access blocked", убедитесь, что: +1. Используется задержка не менее 1 секунды (`--delay 1.0` или больше) +2. Не запускаете несколько экземпляров скрипта одновременно +3. Не скачиваете слишком много тайлов за короткое время + +Для больших областей рекомендуется: +- Использовать задержку 1.5-2 секунды: `--delay 1.5` +- Скачивать тайлы в несколько этапов (разные уровни масштабирования отдельно) +- Делать перерывы между сессиями скачивания + diff --git a/SVG/ChosenTarget.svg b/SVG/ChosenTarget.svg new file mode 100644 index 0000000..ef8eb0c --- /dev/null +++ b/SVG/ChosenTarget.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/Engine.svg b/SVG/Engine.svg new file mode 100644 index 0000000..ce39c98 --- /dev/null +++ b/SVG/Engine.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/LosingTarget.svg b/SVG/LosingTarget.svg new file mode 100644 index 0000000..c1f21f1 --- /dev/null +++ b/SVG/LosingTarget.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SVG/Moored.svg b/SVG/Moored.svg new file mode 100644 index 0000000..df83abd --- /dev/null +++ b/SVG/Moored.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/Engine.svg b/SVG/SVG/Engine.svg new file mode 100644 index 0000000..ce39c98 --- /dev/null +++ b/SVG/SVG/Engine.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/Moored.svg b/SVG/SVG/Moored.svg new file mode 100644 index 0000000..df83abd --- /dev/null +++ b/SVG/SVG/Moored.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/achor.svg b/SVG/SVG/achor.svg new file mode 100644 index 0000000..064fdfe --- /dev/null +++ b/SVG/SVG/achor.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/cog.svg b/SVG/SVG/cog.svg new file mode 100644 index 0000000..a321443 --- /dev/null +++ b/SVG/SVG/cog.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/cursor.svg b/SVG/SVG/cursor.svg new file mode 100644 index 0000000..e863fe8 --- /dev/null +++ b/SVG/SVG/cursor.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/fishing.svg b/SVG/SVG/fishing.svg new file mode 100644 index 0000000..e6351e5 --- /dev/null +++ b/SVG/SVG/fishing.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/fishing_1.svg b/SVG/SVG/fishing_1.svg new file mode 100644 index 0000000..047879f --- /dev/null +++ b/SVG/SVG/fishing_1.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/ownShip.svg b/SVG/SVG/ownShip.svg new file mode 100644 index 0000000..407f0f3 --- /dev/null +++ b/SVG/SVG/ownShip.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/sail.svg b/SVG/SVG/sail.svg new file mode 100644 index 0000000..8f6b682 --- /dev/null +++ b/SVG/SVG/sail.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/SVG/Ресурс 8.svg b/SVG/SVG/Ресурс 8.svg new file mode 100644 index 0000000..064fdfe --- /dev/null +++ b/SVG/SVG/Ресурс 8.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/ScaleTarget.svg b/SVG/ScaleTarget.svg new file mode 100644 index 0000000..17fdfc0 --- /dev/null +++ b/SVG/ScaleTarget.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SVG/Target.svg b/SVG/Target.svg new file mode 100644 index 0000000..3a3b326 --- /dev/null +++ b/SVG/Target.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SVG/TargetClassA.svg b/SVG/TargetClassA.svg new file mode 100644 index 0000000..9694880 --- /dev/null +++ b/SVG/TargetClassA.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/SVG/achor.svg b/SVG/achor.svg new file mode 100644 index 0000000..064fdfe --- /dev/null +++ b/SVG/achor.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/base_station.svg b/SVG/base_station.svg new file mode 100644 index 0000000..8054301 --- /dev/null +++ b/SVG/base_station.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/buey.svg b/SVG/buey.svg new file mode 100644 index 0000000..9c39e35 --- /dev/null +++ b/SVG/buey.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/compass.svg b/SVG/compass.svg new file mode 100644 index 0000000..d24b894 --- /dev/null +++ b/SVG/compass.svg @@ -0,0 +1,24 @@ + + + + + + + + + + \ No newline at end of file diff --git a/SVG/fishing.svg b/SVG/fishing.svg new file mode 100644 index 0000000..047879f --- /dev/null +++ b/SVG/fishing.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/icon.svg b/SVG/icon.svg new file mode 100644 index 0000000..4cea200 --- /dev/null +++ b/SVG/icon.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/sail.svg b/SVG/sail.svg new file mode 100644 index 0000000..8f6b682 --- /dev/null +++ b/SVG/sail.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SVG/targetList.svg b/SVG/targetList.svg new file mode 100644 index 0000000..c1cc506 --- /dev/null +++ b/SVG/targetList.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + MMSI + COG + SOG + ... + + \ No newline at end of file diff --git a/SVG/targetList_1.svg b/SVG/targetList_1.svg new file mode 100644 index 0000000..23481f3 --- /dev/null +++ b/SVG/targetList_1.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ais_nrzi_pipeline/__init__.py b/ais_nrzi_pipeline/__init__.py new file mode 100644 index 0000000..978d1b2 --- /dev/null +++ b/ais_nrzi_pipeline/__init__.py @@ -0,0 +1 @@ +# gr-aistx-compatible PHY (phy.py) + optional encode_to_nrzi CLI diff --git a/ais_nrzi_pipeline/encode_to_nrzi.py b/ais_nrzi_pipeline/encode_to_nrzi.py new file mode 100644 index 0000000..f5bc8e9 --- /dev/null +++ b/ais_nrzi_pipeline/encode_to_nrzi.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +CLI: AIS fields (type, MMSI, lat/lon, …) -> NRZI bit stream (and optional packed bytes). + +Uses AIVDM_Encoder.py in the parent directory for the PDU, then phy.build_nrzi_frame +(same stages as gr-aistx Build_Frame: CRC, reverse, stuff, flags, NRZI). +""" + +from __future__ import annotations + +import argparse +import os +import sys + +# Каталог со скриптом (phy.py) и корень репозитория (опционально AIVDM_Encoder.py) +_SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) +_ROOT = os.path.abspath(os.path.join(_SCRIPT_DIR, "..")) +for _p in (_SCRIPT_DIR, _ROOT): + if _p not in sys.path: + sys.path.insert(0, _p) + +from phy import build_nrzi_frame, nrzi_bits_to_bytes # noqa: E402 + +try: + import AIVDM_Encoder as enc # noqa: E402 +except ImportError: + enc = None # type: ignore + + +def build_payload(options) -> str: + if enc is None: + raise SystemExit( + "AIVDM_Encoder.py не найден в корне репозитория. " + "Для веб-транспондера используйте pyais + опцию «Кодер: phy.py»." + ) + t = options.type + if t == 1: + return enc.encode_1( + int(options.mmsi), int(options.status), float(options.speed), + float(options.lon), float(options.lat), float(options.course), int(options.ts), + ) + if t == 4: + return enc.encode_4( + int(options.mmsi), float(options.speed), + float(options.lon), float(options.lat), float(options.course), int(options.ts), + ) + if t == 14: + return enc.encode_14(int(options.mmsi), options.sart_msg) + if t == 18: + return enc.encode_18( + int(options.mmsi), float(options.speed), + float(options.lon), float(options.lat), float(options.course), int(options.ts), + ) + if t == 20: + return enc.encode_20( + int(options.mmsi), int(options.fatdmaoffset), int(options.fatdmaslots), + int(options.fatdmatimeout), int(options.fatdmaincrement), + ) + if t == 21: + v = 1 if options.v_AtoN else 0 + return enc.encode_21( + int(options.mmsi), int(options.aid_type), options.aid_name, + float(options.lon), float(options.lat), options.vsize, v, + ) + if t == 22: + return enc.encode_22( + int(options.mmsi), int(options.channel_a), int(options.channel_b), + float(options.ne_lon), float(options.ne_lat), float(options.sw_lon), float(options.sw_lat), + ) + if t == 23: + return enc.encode_23( + int(options.mmsi), float(options.ne_lon), float(options.ne_lat), + float(options.sw_lon), float(options.sw_lat), int(options.interval), int(options.quiet), + ) + if t == 24: + if options.part.upper() == "A": + return enc.encode_24(int(options.mmsi), "A", __vname=options.vname.upper()) + return enc.encode_24( + int(options.mmsi), "B", + __callsign=options.callsign.upper(), __vsize=options.vsize, __vtype=int(options.vtype), + ) + raise SystemExit("Unsupported type %r" % (t,)) + + +def main() -> None: + p = argparse.ArgumentParser(description="AIS parameters -> NRZI bit frame (gr-aistx-compatible chain).") + p.add_argument("--type", type=int, required=True, help="AIS message type (1,4,14,18,20-24)") + p.add_argument("--mmsi", type=int, default=247320162) + p.add_argument("--lat", type=float, default=45.6910166666667, help="Latitude (types 1,4,18,21,22,23)") + p.add_argument("--lon", type=float, default=9.72357833333333, help="Longitude (alias for encoder --long)") + p.add_argument("--speed", type=float, default=0.1) + p.add_argument("--course", type=float, default=83.4) + p.add_argument("--ts", type=int, default=38) + p.add_argument("--status", type=int, default=15) + p.add_argument("--sart-msg", dest="sart_msg", default="SART ACTIVE") + p.add_argument("--fatdmaoffset", type=int, default=0) + p.add_argument("--fatdmaslots", type=int, default=0) + p.add_argument("--fatdmatimeout", type=int, default=0) + p.add_argument("--fatdmaincrement", type=int, default=0) + p.add_argument("--v_AtoN", action="store_true") + p.add_argument("--aid_type", type=int, default=0) + p.add_argument("--aid_name", default="@@@@@@@@@@@@@@@@@@@@") + p.add_argument("--vsize", default="90x14") + p.add_argument("--channel_a", type=int, default=2087) + p.add_argument("--channel_b", type=int, default=2088) + p.add_argument("--ne_lon", type=float, default=9.9) + p.add_argument("--ne_lat", type=float, default=45.8) + p.add_argument("--sw_lon", type=float, default=9.5) + p.add_argument("--sw_lat", type=float, default=45.5) + p.add_argument("--interval", type=int, default=1) + p.add_argument("--quiet", type=int, default=15) + p.add_argument("--part", default="A") + p.add_argument("--vname", default="NAN") + p.add_argument("--callsign", default="KC9CAF") + p.add_argument("--vtype", type=int, default=60) + p.add_argument("--no-nrzi", action="store_true", help="Output NRZ frame before NRZI (debug)") + p.add_argument("--bytes", action="store_true", help="Write packed bytes (MSB-first) to stdout (binary)") + p.add_argument("--print-payload", action="store_true", help="Print 0/1 PDU line before the frame") + + args = p.parse_args() + if enc is None: + p.error("AIVDM_Encoder.py не найден; CLI encode_to_nrzi недоступен.") + payload = build_payload(args) + if args.print_payload: + print(payload, file=sys.stderr) + bits = build_nrzi_frame(payload, enable_nrzi=not args.no_nrzi) + if args.bytes: + sys.stdout.buffer.write(nrzi_bits_to_bytes(bits)) + else: + print("".join(str(b) for b in bits)) + + +if __name__ == "__main__": + main() diff --git a/ais_nrzi_pipeline/phy.py b/ais_nrzi_pipeline/phy.py new file mode 100644 index 0000000..53445d2 --- /dev/null +++ b/ais_nrzi_pipeline/phy.py @@ -0,0 +1,229 @@ +# -*- coding: utf-8 -*- +""" +Physical-layer AIS frame: bit padding, CRC-16 (ITU, as in gr-aistx Build_Frame), +HDLC-style bit stuffing, flags, NRZI — ported from gr-aistx/lib/Build_Frame_impl.cc +""" + +from __future__ import annotations + +LEN_PREAMBLE = 24 +LEN_START = 8 +LEN_CRC = 16 +LEN_FRAME_MAX = 256 + +# CRC-16-CCITT table (same as Build_frame_impl.cc) +_CRC_ITU16_TABLE = ( + 0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, + 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7, + 0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, + 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876, + 0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, + 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5, + 0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, + 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974, + 0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, + 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3, + 0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, + 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72, + 0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, + 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1, + 0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, + 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70, + 0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, + 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF, + 0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, + 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E, + 0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, + 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD, + 0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, + 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C, + 0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, + 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB, + 0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, + 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A, + 0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, + 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9, + 0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, + 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78, +) + + +def bits_from_payload_string(s: str) -> list[int]: + """ASCII '0'/'1' string -> list of 0/1 (same as Build_Frame ctor).""" + s = s.strip().replace(" ", "").replace("\n", "") + out: list[int] = [] + for c in s: + if c == "0": + out.append(0) + elif c == "1": + out.append(1) + else: + raise ValueError("Payload must be only 0 and 1 characters") + return out + + +def _pad_to_multiple_of_8(bits: list[int]) -> tuple[list[int], int]: + r = len(bits) % 8 + if r == 0: + return bits, 0 + pad = 8 - r + return bits + [0] * pad, pad + + +def reverse_bit_order(bits: list[int]) -> None: + """In-place: reverse bit order within each byte (8-bit group).""" + n = len(bits) + assert n % 8 == 0 + for i in range(n // 8): + base = i * 8 + for j in range(4): + a = base + j + b = base + 7 - j + bits[a], bits[b] = bits[b], bits[a] + + +def _compute_crc_bits(buffer_bits: list[int]) -> list[int]: + """ + Match Build_Frame_impl::compute_crc + int2bin/reverse/swap (16-bit FCS bits). + buffer_bits length must be multiple of 8. + """ + datalen = len(buffer_bits) // 8 + data = [] + for j in range(datalen): + v = 0 + for k in range(8): + v = (v << 1) | (buffer_bits[j * 8 + k] & 1) + data.append(v) + + crc = 0xFFFF + for b in data: + crc = ((crc >> 8) ^ _CRC_ITU16_TABLE[(crc ^ b) & 0xFF]) & 0xFFFF + crc = (crc & 0xFFFF) ^ 0xFFFF + + ret = ["0"] * 16 + buf_idx = 15 + a = crc & 0xFFFF + for _ in range(16): + ret[buf_idx] = "1" if (a & 1) else "0" + a >>= 1 + buf_idx -= 1 + + rb = [1 if c == "1" else 0 for c in ret] + reverse_bit_order(rb) + ret = ["1" if x else "0" for x in rb] + + buf_idx = 15 + a = crc & 0xFFFF + for _ in range(16): + ret[buf_idx] = "1" if (a & 1) else "0" + a >>= 1 + buf_idx -= 1 + + temp = ret[8:16] + ret[8:16] = ret[0:8] + ret[0:8] = temp + + return [1 if c == "1" else 0 for c in ret] + + +def bit_stuff(bits: list[int]) -> list[int]: + """HDLC-style: after five consecutive 1s insert a 0.""" + out: list[int] = [] + consecutive = 0 + for b in bits: + out.append(b) + if b & 1: + consecutive += 1 + if consecutive == 5: + out.append(0) + consecutive = 0 + else: + consecutive = 0 + return out + + +def nrz_to_nrzi(data: list[int]) -> None: + """In-place NRZI (same rule as nrz_to_nrzi_impl.cc / Build_Frame_impl).""" + prev = 0 + for i in range(len(data)): + nrz = data[i] & 1 + if nrz == 0: + nrzi = prev ^ 1 + else: + nrzi = prev + data[i] = nrzi + prev = nrzi + + +def _preamble_bits() -> list[int]: + return [1, 0] * (LEN_PREAMBLE // 2) + + +def _start_flag_bits() -> list[int]: + return [0, 1, 1, 1, 1, 1, 1, 0] + + +def build_nrzi_frame(payload_ascii: str, enable_nrzi: bool = True) -> list[int]: + """ + :param payload_ascii: AIS PDU as '0'/'1' string (output style of AIVDM_Encoder.py) + :param enable_nrzi: if False, return NRZ frame bits (before NRZI), for debugging + :return: list of 0/1 (length 256 for short PDUs, or dynamic for long) + """ + payload = bits_from_payload_string(payload_ascii) + payload, _ = _pad_to_multiple_of_8(payload) + len_payload = len(payload) + + crc_bits = _compute_crc_bits(payload) + full = payload + crc_bits + reverse_bit_order(full) + + stuffed = bit_stuff(full) + + preamble = _preamble_bits() + start = _start_flag_bits() + end = _start_flag_bits() + + if len_payload <= 168: + frame = [0] * LEN_FRAME_MAX + idx = 0 + frame[idx:idx + LEN_PREAMBLE] = preamble + idx += LEN_PREAMBLE + frame[idx:idx + LEN_START] = start + idx += LEN_START + frame[idx:idx + len(stuffed)] = stuffed + idx += len(stuffed) + frame[idx:idx + 8] = end + idx += 8 + # padding to 256 + assert idx <= LEN_FRAME_MAX + if enable_nrzi: + nrz_to_nrzi(frame) + return frame + + len_frame = LEN_PREAMBLE + LEN_START * 2 + len(stuffed) + while len_frame % 8 != 0: + len_frame += 1 + frame = [0] * len_frame + idx = 0 + frame[idx:idx + LEN_PREAMBLE] = preamble + idx += LEN_PREAMBLE + frame[idx:idx + LEN_START] = start + idx += LEN_START + frame[idx:idx + len(stuffed)] = stuffed + idx += len(stuffed) + frame[idx:idx + 8] = end + if enable_nrzi: + nrz_to_nrzi(frame) + return frame + + +def nrzi_bits_to_bytes(bits: list[int]) -> bytes: + """Pack MSB-first within each byte (same as byte_packing in Build_Frame).""" + assert len(bits) % 8 == 0 + out = bytearray() + for i in range(len(bits) // 8): + b = 0 + for k in range(8): + b = b * 2 + (bits[i * 8 + k] & 1) + out.append(b & 0xFF) + return bytes(out) diff --git a/ais_phy.py b/ais_phy.py new file mode 100644 index 0000000..7e265ce --- /dev/null +++ b/ais_phy.py @@ -0,0 +1,178 @@ +""" +Формирование кадра VDL AIS (флаги HDLC, bit stuffing, CRC-16-CCITT) и NRZI. +Опционально: выравнивание payload до октета и добор NRZ до N бит перед NRZI (аналог padd_frame в GNU Radio). +""" +from __future__ import annotations + +from typing import Optional + +from bitarray import bitarray + +FLAG = bitarray("01111110") + + +def _bits_to_bytes_msb(bits: bitarray) -> bytes: + out = bytearray() + for i in range(0, len(bits), 8): + chunk = bits[i : i + 8] + if len(chunk) < 8: + pad = bitarray(8 - len(chunk)) + pad.setall(0) + chunk = chunk + pad + v = 0 + for b in chunk: + v = (v << 1) | int(b) + out.append(v) + return bytes(out) + + +def crc16_ccitt_fcs(data_bits: bitarray) -> int: + """FCS по данным payload (без FCS), длина кратна 8 бит.""" + b = _bits_to_bytes_msb(data_bits) + crc = 0xFFFF + poly = 0x1021 + for byte in b: + crc ^= byte << 8 + for _ in range(8): + if crc & 0x8000: + crc = ((crc << 1) ^ poly) & 0xFFFF + else: + crc = (crc << 1) & 0xFFFF + return crc ^ 0xFFFF + + +def _int_to_bits(val: int, n: int) -> bitarray: + out = bitarray() + for i in range(n - 1, -1, -1): + out.append((val >> i) & 1) + return out + + +def bit_stuff(bits: bitarray) -> bitarray: + out = bitarray() + count = 0 + for b in bits: + out.append(b) + if b: + count += 1 + if count == 5: + out.append(0) + count = 0 + else: + count = 0 + return out + + +def _pad_payload_to_octet_boundary(payload_bits: bitarray) -> bitarray: + r = len(payload_bits) % 8 + if r == 0: + return payload_bits + z = bitarray(8 - r) + z.setall(0) + return payload_bits + z + + +def _pad_nrz_to_min_bits(nrz_bits: bitarray, min_len: int) -> bitarray: + if min_len <= 0 or len(nrz_bits) >= min_len: + return nrz_bits + tail = bitarray(min_len - len(nrz_bits)) + tail.setall(0) + return nrz_bits + tail + + +def build_hdlc_frame( + payload_bits: bitarray, *, pad_payload_to_octet: bool = False +) -> bitarray: + """payload_bits — двоичное тело AIS (как pyais Payload.to_bitarray()).""" + pl = payload_bits + if len(pl) % 8 != 0: + if pad_payload_to_octet: + pl = _pad_payload_to_octet_boundary(pl) + else: + raise ValueError("AIS payload length must be multiple of 8 bits for this CRC path") + fcs = crc16_ccitt_fcs(pl) + fcs_bits = _int_to_bits(fcs, 16) + data = pl + fcs_bits + stuffed = bit_stuff(data) + return FLAG + stuffed + FLAG + + +def nrzi_encode(bits: bitarray) -> bitarray: + """NRZI: 1 — уровень без изменения, 0 — переключение.""" + level = 0 + out = bitarray() + for b in bits: + if not int(b): + level = 1 - level + out.append(level) + return out + + +def preamble_alternating(num_bits: int = 24) -> bitarray: + """ + ITU-style dotting: чередование 1/0 (101010…), как gr-aistx LEN_PREAMBLE и phy._preamble_bits. + Вариант 010101… дал бы после NRZI (packed, старт уровня 0) байты 0xCC… вместо 0x66… — та же частота, + другая фаза; к стаффингу это не относится. + """ + out = bitarray() + for i in range(num_bits): + out.append(1 - (i & 1)) + return out + + +def hdlc_nrzi_bytes_no_preamble( + payload_bits: bitarray, + *, + nrzi_byte_mode: str = "packed", + pad_payload_to_octet: bool = False, + pad_nrz_total_bits: Optional[int] = None, +) -> bytes: + """Только HDLC+NRZI без преамбулы. pad_nrz_total_bits — добор нулей в NRZ до длины (как GNU Radio padd_frame).""" + frame = build_hdlc_frame(payload_bits, pad_payload_to_octet=pad_payload_to_octet) + frame = _pad_nrz_to_min_bits(frame, pad_nrz_total_bits or 0) + nrz = nrzi_encode(frame) + if nrzi_byte_mode == "expanded": + return bytes(0xFF if int(b) else 0x00 for b in nrz) + return _bits_to_bytes_msb(nrz) + + +def phy_frame_bit_counts( + payload_bits: bitarray, *, pad_payload_to_octet: bool = False +) -> dict: + """Длины для отладки: payload, поле между флагами (со стаффингом), полный HDLC.""" + pl_in = len(payload_bits) + pl = payload_bits + if len(pl) % 8 != 0 and pad_payload_to_octet: + pl = _pad_payload_to_octet_boundary(pl) + frame = build_hdlc_frame(pl, pad_payload_to_octet=pad_payload_to_octet) + inner = frame[8:-8] + return { + "payload_bits_input": pl_in, + "payload_bits_after_pad": len(pl), + "bits_between_flags_stuffed": len(inner), + "hdlc_frame_bits": len(frame), + } + + +def ais_channel_to_nrzi_bytes( + payload_bits: bitarray, + *, + preamble_bits: int = 24, + nrzi_byte_mode: str = "packed", + pad_payload_to_octet: bool = False, + pad_nrz_total_bits: Optional[int] = None, +) -> bytes: + """ + nrzi_byte_mode: + 'packed' — 8 NRZI-сэмплов в байт (MSB первый); + 'expanded' — один байт на NRZI-бит: 0x00 / 0xFF. + pad_nrz_total_bits — после преамбулы+кадра дописать нули в NRZ до этой длины (типично 200 для GNU Radio). + """ + frame = build_hdlc_frame(payload_bits, pad_payload_to_octet=pad_payload_to_octet) + pre = preamble_alternating(preamble_bits) if preamble_bits > 0 else bitarray() + combined = pre + frame + combined = _pad_nrz_to_min_bits(combined, pad_nrz_total_bits or 0) + nrzi = nrzi_encode(combined) + if nrzi_byte_mode == "expanded": + return bytes(0xFF if int(b) else 0x00 for b in nrzi) + return _bits_to_bytes_msb(nrzi) diff --git a/download_tiles.py b/download_tiles.py new file mode 100644 index 0000000..d60dd81 --- /dev/null +++ b/download_tiles.py @@ -0,0 +1,261 @@ +#!/usr/bin/env python3 +""" +Скрипт для скачивания тайлов карты OpenStreetMap для офлайн использования. +Соблюдает политику использования тайлов OpenStreetMap: +- Использует корректный User-Agent +- Соблюдает минимальную задержку 1 секунда между запросами +- Обрабатывает ошибки rate limiting + +Использование: + python download_tiles.py --min-zoom 5 --max-zoom 12 --bounds 55.5,37.5,56.0,38.0 +""" + +import os +import math +import argparse +import requests +from pathlib import Path +import time + + +def deg2num(lat_deg, lon_deg, zoom): + """Преобразует координаты в номер тайла""" + lat_rad = math.radians(lat_deg) + n = 2.0 ** zoom + xtile = int((lon_deg + 180.0) / 360.0 * n) + ytile = int((1.0 - math.asinh(math.tan(lat_rad)) / math.pi) / 2.0 * n) + return (xtile, ytile) + + +def num2deg(xtile, ytile, zoom): + """Преобразует номер тайла в координаты""" + n = 2.0 ** zoom + lon_deg = xtile / n * 360.0 - 180.0 + lat_rad = math.atan(math.sinh(math.pi * (1 - 2 * ytile / n))) + lat_deg = math.degrees(lat_rad) + return (lat_deg, lon_deg) + + +def download_tile(z, x, y, output_dir, retries=3, delay=1.0): + """Скачивает один тайл с соблюдением политики использования OpenStreetMap""" + tile_dir = os.path.join(output_dir, str(z), str(x)) + os.makedirs(tile_dir, exist_ok=True) + + tile_path = os.path.join(tile_dir, f"{y}.png") + + # Если тайл уже существует, пропускаем + if os.path.exists(tile_path): + return True + + # URL для скачивания тайла + # Используем разные поддомены для распределения нагрузки + subdomains = ['a', 'b', 'c'] + subdomain = subdomains[(x + y) % len(subdomains)] + url = f"https://{subdomain}.tile.openstreetmap.org/{z}/{x}/{y}.png" + + # Заголовки согласно политике использования OpenStreetMap + headers = { + 'User-Agent': 'PythonAisMap/1.0 (Offline Map Tile Downloader; contact: localhost)', + 'Referer': 'http://localhost:8000/' + } + + for attempt in range(retries): + try: + response = requests.get(url, headers=headers, timeout=30) + + if response.status_code == 200: + with open(tile_path, 'wb') as f: + f.write(response.content) + time.sleep(delay) # Задержка между запросами (минимум 1 сек согласно политике) + return True + elif response.status_code == 404: + # Тайл не существует (например, для океана) + return False + elif response.status_code == 429: + # Too Many Requests - нужно увеличить задержку + wait_time = delay * (2 ** attempt) + print(f" Превышен лимит запросов для {z}/{x}/{y}, ожидание {wait_time} сек...") + time.sleep(wait_time) + continue + elif response.status_code == 403: + # Forbidden - возможно, нарушена политика использования + print(f" Доступ запрещен для {z}/{x}/{y}. Проверьте User-Agent и задержки.") + return False + else: + print(f" Неожиданный статус {response.status_code} для {z}/{x}/{y}") + if attempt < retries - 1: + time.sleep(delay * (attempt + 1)) + else: + return False + except requests.exceptions.Timeout: + if attempt < retries - 1: + print(f" Таймаут для {z}/{x}/{y}, повторная попытка...") + time.sleep(delay * (attempt + 1)) + else: + print(f" Ошибка таймаута при скачивании тайла {z}/{x}/{y}") + return False + except Exception as e: + if attempt < retries - 1: + time.sleep(delay * (attempt + 1)) + else: + print(f" Ошибка при скачивании тайла {z}/{x}/{y}: {e}") + return False + + return False + + +def download_tiles(min_lat, min_lon, max_lat, max_lon, min_zoom, max_zoom, output_dir="static/tiles", delay=1.0): + """Скачивает тайлы для указанной области и уровней масштабирования""" + print(f"Начинаем скачивание тайлов...") + print(f"Область: ({min_lat}, {min_lon}) - ({max_lat}, {max_lon})") + print(f"Уровни масштабирования: {min_zoom} - {max_zoom}") + print(f"Выходная папка: {output_dir}") + + total_tiles = 0 + downloaded_tiles = 0 + skipped_tiles = 0 + + for z in range(min_zoom, max_zoom + 1): + print(f"\nОбработка уровня масштабирования {z}...") + + # Определяем диапазон тайлов для данного уровня + min_tile_x, max_tile_y = deg2num(min_lat, min_lon, z) + max_tile_x, min_tile_y = deg2num(max_lat, max_lon, z) + + # Убеждаемся, что координаты в правильном порядке + if min_tile_x > max_tile_x: + min_tile_x, max_tile_x = max_tile_x, min_tile_x + if min_tile_y > max_tile_y: + min_tile_y, max_tile_y = max_tile_y, min_tile_y + + level_tiles = (max_tile_x - min_tile_x + 1) * (max_tile_y - min_tile_y + 1) + total_tiles += level_tiles + + print(f" Тайлов на уровне {z}: {level_tiles} ({min_tile_x}-{max_tile_x}, {min_tile_y}-{max_tile_y})") + + level_downloaded = 0 + level_skipped = 0 + + for x in range(min_tile_x, max_tile_x + 1): + for y in range(min_tile_y, max_tile_y + 1): + if download_tile(z, x, y, output_dir, delay=delay): + level_downloaded += 1 + downloaded_tiles += 1 + else: + level_skipped += 1 + skipped_tiles += 1 + + # Показываем прогресс каждые 10 тайлов + if (level_downloaded + level_skipped) % 10 == 0: + print(f" Прогресс: {level_downloaded + level_skipped}/{level_tiles} тайлов") + + print(f" Уровень {z} завершен: скачано {level_downloaded}, пропущено {level_skipped}") + + print(f"\n=== Итоги ===") + print(f"Всего тайлов: {total_tiles}") + print(f"Скачано: {downloaded_tiles}") + print(f"Пропущено: {skipped_tiles}") + print(f"Готово!") + + +def main(): + parser = argparse.ArgumentParser( + description="Скачивание тайлов OpenStreetMap для офлайн использования" + ) + parser.add_argument( + "--min-zoom", + type=int, + default=5, + help="Минимальный уровень масштабирования (по умолчанию: 5)" + ) + parser.add_argument( + "--max-zoom", + type=int, + default=12, + help="Максимальный уровень масштабирования (по умолчанию: 12)" + ) + parser.add_argument( + "--delay", + type=float, + default=1.0, + help="Задержка между запросами в секундах (по умолчанию: 1.0, минимум рекомендуется 1.0)" + ) + parser.add_argument( + "--bounds", + type=str, + help="Границы области в формате: min_lat,min_lon,max_lat,max_lon (например: 55.5,37.5,56.0,38.0)" + ) + parser.add_argument( + "--center", + type=str, + help="Центр области и радиус в формате: lat,lon,radius_km (например: 55.75,37.62,50)" + ) + parser.add_argument( + "--output", + type=str, + default="static/tiles", + help="Выходная папка для тайлов (по умолчанию: static/tiles)" + ) + + args = parser.parse_args() + + # Определяем границы области + if args.bounds: + parts = args.bounds.split(",") + if len(parts) != 4: + print("Ошибка: --bounds должен содержать 4 значения: min_lat,min_lon,max_lat,max_lon") + return + min_lat, min_lon, max_lat, max_lon = map(float, parts) + elif args.center: + parts = args.center.split(",") + if len(parts) != 3: + print("Ошибка: --center должен содержать 3 значения: lat,lon,radius_km") + return + center_lat, center_lon, radius_km = map(float, parts) + # Приблизительно вычисляем границы на основе радиуса + # 1 градус широты ≈ 111 км + lat_delta = radius_km / 111.0 + # 1 градус долготы зависит от широты + lon_delta = radius_km / (111.0 * math.cos(math.radians(center_lat))) + min_lat = center_lat - lat_delta + max_lat = center_lat + lat_delta + min_lon = center_lon - lon_delta + max_lon = center_lon + lon_delta + else: + # По умолчанию: Москва и окрестности + print("Используются границы по умолчанию: Москва и окрестности") + min_lat, min_lon = 55.5, 37.3 + max_lat, max_lon = 56.0, 37.9 + + # Проверяем валидность границ + if min_lat >= max_lat or min_lon >= max_lon: + print("Ошибка: неверные границы области") + return + + if args.min_zoom < 0 or args.max_zoom > 19 or args.min_zoom > args.max_zoom: + print("Ошибка: неверные уровни масштабирования (должны быть от 0 до 19, min <= max)") + return + + # Создаем выходную папку + os.makedirs(args.output, exist_ok=True) + + # Проверяем задержку (рекомендуется минимум 1 секунда) + if args.delay < 1.0: + print("ВНИМАНИЕ: Задержка менее 1 секунды может привести к блокировке!") + print("Рекомендуется использовать задержку не менее 1.0 секунды.") + response = input("Продолжить с текущей задержкой? (y/n): ") + if response.lower() != 'y': + return + + # Скачиваем тайлы + download_tiles( + min_lat, min_lon, max_lat, max_lon, + args.min_zoom, args.max_zoom, + args.output, + args.delay + ) + + +if __name__ == "__main__": + main() + diff --git a/main.py b/main.py new file mode 100644 index 0000000..79036d7 --- /dev/null +++ b/main.py @@ -0,0 +1,60 @@ +import os +import threading +from urllib.request import urlopen +from urllib.error import URLError + +from routes import app, AIS_HUB_URL +from ssl_utils import get_ssl_context, run_http_redirect, _get_local_ips + + +def _check_ais_hub(): + """Однократная проверка доступности ais_hub на старте (не критично).""" + try: + resp = urlopen(f"{AIS_HUB_URL}/api/v1/health", timeout=2.0) + if getattr(resp, "status", 200) == 200: + print(f"[ais_hub] OK: {AIS_HUB_URL}") + return + print(f"[ais_hub] unexpected status {resp.status} from {AIS_HUB_URL}") + except URLError as e: + print(f"[ais_hub] WARNING: {AIS_HUB_URL} недоступен ({e.reason}). " + f"AIS-данные и /ws не будут работать, пока ais_hub не поднят.") + except Exception as e: + print(f"[ais_hub] WARNING: проверка {AIS_HUB_URL} не удалась: {e}") + + +if __name__ == "__main__": + _check_ais_hub() + + # Геолокация в браузере (телефон) требует secure context (HTTPS или localhost). + # Поэтому HTTPS можно включать/выключать флагом окружения. + use_https = os.environ.get("AISMAP_HTTPS", "1").strip().lower() not in ("0", "false", "no", "off") + + if use_https: + ssl_ctx = get_ssl_context() + else: + ssl_ctx = None + + if ssl_ctx: + https_port = int(os.environ.get("AISMAP_HTTPS_PORT", "443")) + enable_redirect = os.environ.get("AISMAP_HTTP_REDIRECT", "1").strip().lower() not in ("0", "false", "no", "off") + if enable_redirect: + redir_thread = threading.Thread(target=run_http_redirect, args=(https_port,), daemon=True) + redir_thread.start() + + local_ips = _get_local_ips() + print(f"[HTTPS] Сервер запускается на порту {https_port}") + for ip in local_ips: + port_suffix = f":{https_port}" if https_port != 443 else "" + print(f"[HTTPS] Карта: https://{ip}{port_suffix}/") + print(f"[HTTPS] Сертификат: https://{ip}{port_suffix}/cert") + print("[HTTPS] Чтобы убрать предупреждение — откройте /cert и установите CA-сертификат") + + app.run(host="0.0.0.0", port=https_port, debug=True, + use_reloader=False, threaded=True, ssl_context=ssl_ctx) + else: + print("[HTTP] Запуск без HTTPS (геолокация телефона в браузере работать не будет)") + local_ips = _get_local_ips() + for ip in local_ips: + print(f"[HTTP] Карта: http://{ip}/") + app.run(host="0.0.0.0", port=80, debug=True, + use_reloader=False, threaded=True) diff --git a/mock_data/base_stations.json b/mock_data/base_stations.json new file mode 100644 index 0000000..fef0bf0 --- /dev/null +++ b/mock_data/base_stations.json @@ -0,0 +1,16 @@ +[ + { + "lat": 59.898667, + "lon": 29.866833, + "mmsi": 2734450, + "msg_type": 4, + "timestamp": 1776335118 + }, + { + "lat": 59.873513, + "lon": 30.197913, + "mmsi": 352006264, + "msg_type": 4, + "timestamp": 1776334710 + } +] diff --git a/mock_data/buoys.json b/mock_data/buoys.json new file mode 100644 index 0000000..2d4fc9b --- /dev/null +++ b/mock_data/buoys.json @@ -0,0 +1,38 @@ +[ + { + "aton_type": 25, + "lat": 59.968, + "lon": 29.781333, + "mmsi": 992736009, + "msg_type": 21, + "name": "21", + "timestamp": 1776335021 + }, + { + "aton_type": 14, + "lat": 59.9765, + "lon": 29.764833, + "mmsi": 992736007, + "msg_type": 21, + "name": "17", + "timestamp": 1776335020 + }, + { + "aton_type": 14, + "lat": 59.973333, + "lon": 29.771167, + "mmsi": 992736008, + "msg_type": 21, + "name": "19", + "timestamp": 1776335019 + }, + { + "aton_type": 14, + "lat": 59.980333, + "lon": 29.752667, + "mmsi": 992736006, + "msg_type": 21, + "name": "13", + "timestamp": 1776335020 + } +] diff --git a/mock_data/vessels.json b/mock_data/vessels.json new file mode 100644 index 0000000..5b2f8be --- /dev/null +++ b/mock_data/vessels.json @@ -0,0 +1,81 @@ +[ + { + "callsign": "UCUA6", + "course": 360.0, + "heading": 511.0, + "lat": 91.0, + "lon": 181.0, + "mmsi": 273251120, + "rot": -128.0, + "shipname": "VALENTIN RYKOV", + "shiptype": 89, + "speed": 102.3, + "timestamp": 1776335052, + "to_bow": 15, + "to_port": 2, + "to_starboard": 12, + "to_stern": 59, + "vessel_class": "A" + }, + { + "course": 360.0, + "heading": 86.0, + "lat": 91.0, + "lon": 181.0, + "mmsi": 671575100, + "rot": 0.0, + "speed": 102.3, + "timestamp": 1776335119, + "vessel_class": "A" + }, + { + "callsign": "UAQN", + "course": 360.0, + "heading": 511.0, + "lat": 91.0, + "lon": 181.0, + "mmsi": 273315900, + "rot": -128.0, + "shipname": "KAPITAN PLAKHIN", + "shiptype": 90, + "speed": 102.3, + "timestamp": 1776335046, + "to_bow": 25, + "to_port": 7, + "to_starboard": 9, + "to_stern": 53, + "vessel_class": "A" + }, + { + "callsign": "UAPB6", + "course": 360.0, + "heading": 511.0, + "lat": 59.943828, + "lon": 30.189773, + "mmsi": 273262700, + "rot": -128.0, + "shipname": "CASTOR", + "shiptype": 30, + "speed": 0.0, + "timestamp": 1776335125, + "to_bow": 46, + "to_port": 6, + "to_starboard": 8, + "to_stern": 24, + "vessel_class": "A" + }, + { + "callsign": null, + "course": 360.0, + "heading": 511.0, + "lat": 91.0, + "lon": 181.0, + "mmsi": 0, + "rot": -128.0, + "shipname": null, + "shiptype": 37, + "speed": 102.3, + "timestamp": 1776335124, + "vessel_class": "A" + } +] diff --git a/network_manager.py b/network_manager.py new file mode 100644 index 0000000..7fd48b8 --- /dev/null +++ b/network_manager.py @@ -0,0 +1,150 @@ +import os +import json +import subprocess +import threading + +NETWORK_CONFIG_PATH = "/etc/aismap/network.json" +NETWORK_SCRIPTS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "scripts") + +NETWORK_DEFAULTS = { + "mode": "ap", + "wifi_ssid": "", + "wifi_psk": "", + "wifi_ip": "192.168.22.50/24", + "wifi_gw": "192.168.22.1", + "wifi_dns": "8.8.8.8", + "ap_ip": "192.168.4.1/24", + "ap_ssid": "", + "ap_psk": "", + "iface": "wlan0", +} +HOSTAPD_CONF = "/etc/hostapd/hostapd.conf" +network_config_lock = threading.Lock() + + +def _read_hostapd_conf() -> dict: + """Reads SSID, passphrase and interface from the real hostapd.conf.""" + result = {} + try: + with open(HOSTAPD_CONF, "r") as f: + for line in f: + line = line.strip() + if line.startswith("#") or "=" not in line: + continue + k, v = line.split("=", 1) + k, v = k.strip(), v.strip() + if k == "ssid": + result["ap_ssid"] = v + elif k == "wpa_passphrase": + result["ap_psk"] = v + elif k == "interface": + result["iface"] = v + except (FileNotFoundError, PermissionError): + pass + return result + + +def load_network_config() -> dict: + merged = dict(NETWORK_DEFAULTS) + hostapd_vals = _read_hostapd_conf() + merged.update(hostapd_vals) + try: + with open(NETWORK_CONFIG_PATH, "r") as f: + cfg = json.load(f) + merged.update(cfg) + except (FileNotFoundError, json.JSONDecodeError, PermissionError): + pass + return merged + + +def save_network_config(cfg: dict): + os.makedirs(os.path.dirname(NETWORK_CONFIG_PATH), exist_ok=True) + with open(NETWORK_CONFIG_PATH, "w") as f: + json.dump(cfg, f, indent=2) + + +def get_current_network_info() -> dict: + """Reads live network state from the OS (Linux only).""" + info = {"ip": None, "ssid": None, "mode": None, "iface": None} + cfg = load_network_config() + iface = cfg.get("iface", "wlan0") + info["iface"] = iface + + try: + out = subprocess.check_output( + ["ip", "-4", "addr", "show", iface], timeout=5, stderr=subprocess.DEVNULL + ).decode() + for line in out.splitlines(): + line = line.strip() + if line.startswith("inet "): + info["ip"] = line.split()[1] + break + except Exception: + pass + + try: + out = subprocess.check_output( + ["iw", "dev", iface, "info"], timeout=5, stderr=subprocess.DEVNULL + ).decode() + for line in out.splitlines(): + line = line.strip() + if line.startswith("ssid"): + info["ssid"] = line.split(None, 1)[1] + if line.startswith("type"): + tp = line.split(None, 1)[1].lower() + if "ap" in tp: + info["mode"] = "ap" + elif "managed" in tp or "station" in tp: + info["mode"] = "wifi" + except Exception: + pass + + if info["mode"] is None: + try: + subprocess.check_output( + ["pgrep", "-x", "hostapd"], timeout=3, stderr=subprocess.DEVNULL + ) + info["mode"] = "ap" + except Exception: + try: + subprocess.check_output( + ["pgrep", "-x", "wpa_supplicant"], timeout=3, stderr=subprocess.DEVNULL + ) + info["mode"] = "wifi" + except Exception: + info["mode"] = cfg.get("mode", "ap") + + return info + + +def switch_network_mode(target_mode: str) -> dict: + """Runs the appropriate script to switch AP<->WiFi. Returns result dict.""" + if target_mode not in ("ap", "wifi"): + return {"ok": False, "error": "Invalid mode, must be 'ap' or 'wifi'"} + + script_name = "to_ap.sh" if target_mode == "ap" else "to_wifi.sh" + script_path = os.path.join(NETWORK_SCRIPTS_DIR, script_name) + + if not os.path.isfile(script_path): + return {"ok": False, "error": f"Script not found: {script_path}"} + + try: + proc = subprocess.run( + ["bash", script_path], + capture_output=True, text=True, timeout=30, + ) + if proc.returncode == 0: + cfg = load_network_config() + cfg["mode"] = target_mode + save_network_config(cfg) + return {"ok": True, "output": proc.stdout[-500:] if proc.stdout else ""} + else: + return { + "ok": False, + "error": f"Script exited with code {proc.returncode}", + "output": (proc.stdout or "") + (proc.stderr or ""), + } + except subprocess.TimeoutExpired: + return {"ok": False, "error": "Script timed out (30s)"} + except Exception as e: + return {"ok": False, "error": str(e)} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2b34ef1 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +Flask>=2.3.0 +flask-sock>=0.7.0 +websocket-client>=1.6.0 +requests>=2.31.0 +cryptography>=41.0.0 diff --git a/routes.py b/routes.py new file mode 100644 index 0000000..1c2b6a2 --- /dev/null +++ b/routes.py @@ -0,0 +1,937 @@ +import os +import time +import socket +import subprocess +import json +import threading +import hashlib +from urllib.request import urlopen, Request +from urllib.parse import urlencode +from urllib.error import URLError, HTTPError + +from flask import Flask, jsonify, render_template, send_from_directory, send_file, request, Response + +try: + from flask_sock import Sock +except ImportError: + Sock = None + +try: + from websocket import create_connection as _ws_create_connection + from websocket import WebSocketConnectionClosedException as _WsClosed +except ImportError: + _ws_create_connection = None + _WsClosed = Exception + +from state import get_cpu_usage_percent +from network_manager import ( + load_network_config, save_network_config, get_current_network_info, + switch_network_mode, network_config_lock, NETWORK_DEFAULTS, +) +from terminal import terminal_session +from transponder import ( + load_transponder_config, + normalize_transponder_config, + save_transponder_config, + merge_transponder_request, + build_preview, + send_transmission, + build_slot_udp_payload, + is_aistx_phy_available, + parse_nrzi_hex, + send_raw_nrzi_packet, + tx_gpio_pulse, +) + +app = Flask(__name__) +sock = Sock(app) if Sock else None + + +# ==================== ais_hub upstream ==================== + +AIS_HUB_URL = os.environ.get("AIS_HUB_URL", "http://127.0.0.1:8081").rstrip("/") + + +def _ais_hub_ws_url(): + base = AIS_HUB_URL + if base.startswith("https://"): + return "wss://" + base[len("https://"):] + "/ws" + if base.startswith("http://"): + return "ws://" + base[len("http://"):] + "/ws" + return "ws://" + base + "/ws" + + +# ==================== helpers ==================== + +def _append_client_log_line(line: str): + """Append a single line to client_errors.log (best-effort).""" + try: + path = os.path.join(os.path.dirname(__file__), "client_errors.log") + with open(path, "a", encoding="utf-8") as f: + f.write(line.rstrip("\n") + "\n") + except Exception: + pass + + +# ==================== WebSocket terminal ==================== +if sock is not None and os.name == "posix": + + @sock.route("/ws/terminal") + def ws_terminal(ws): + terminal_session(ws) + + +# ==================== WebSocket proxy to ais_hub /ws ==================== +if sock is not None: + + @sock.route("/ws") + def ws_ais_hub_proxy(ws): + """Прозрачный WS-прокси к ais_hub /ws (localhost:8081).""" + if _ws_create_connection is None: + # Не закрываем WS сразу: иначе браузер будет переподключаться в цикле и шуметь в консоли. + # Держим соединение открытым и периодически напоминаем про отсутствующую зависимость. + while True: + try: + ws.send(json.dumps({"type": "error", "ts": time.time(), + "data": {"error": "websocket-client not installed on server"}})) + except Exception: + return + try: + time.sleep(5) + except Exception: + return + + upstream_url = _ais_hub_ws_url() + # Если ais_hub временно недоступен, не рвём соединение с браузером: + # держим WS открытым и периодически ретраим подключение к upstream. + upstream = None + backoff = 1.0 + while upstream is None: + try: + upstream = _ws_create_connection(upstream_url, timeout=5) + break + except Exception as e: + try: + ws.send(json.dumps({"type": "error", "ts": time.time(), + "data": {"error": f"ais_hub unreachable: {e}"}})) + except Exception: + # Клиент ушёл — дальше ретраить нет смысла. + return + try: + time.sleep(backoff) + except Exception: + return + backoff = min(backoff * 2.0, 10.0) + + stop = threading.Event() + + def upstream_to_client(): + try: + while not stop.is_set(): + try: + msg = upstream.recv() + except _WsClosed: + break + except Exception: + break + if msg is None or msg == "": + break + if isinstance(msg, bytes): + try: + msg = msg.decode("utf-8", errors="ignore") + except Exception: + continue + try: + ws.send(msg) + except Exception: + break + finally: + stop.set() + + t = threading.Thread(target=upstream_to_client, daemon=True) + t.start() + + try: + while not stop.is_set(): + try: + # flask_sock/simple_websocket have slightly different receive() signatures + # across versions; some don't support timeout=, and some raise on timeout. + try: + data = ws.receive(timeout=30) + except TypeError: + data = ws.receive() + except Exception as e: + # Don't tear down the whole proxy on a benign receive timeout. + if "timeout" in str(e).lower(): + continue + break + if data is None: + break + try: + if isinstance(data, bytes): + upstream.send_binary(data) + else: + upstream.send(data) + except Exception: + break + finally: + stop.set() + try: + upstream.close() + except Exception: + pass + + +# ==================== Pages ==================== + +@app.route("/") +def index(): + return render_template("index.html") + + +@app.route("/cert") +def cert_install_page(): + return render_template("cert.html") + + +# ==================== REST proxy to ais_hub /api/v1/* ==================== + +_HOP_HEADERS = { + "connection", "keep-alive", "proxy-authenticate", "proxy-authorization", + "te", "trailers", "transfer-encoding", "upgrade", "content-encoding", + "content-length", "host", +} + + +@app.route("/api/v1/", methods=["GET", "POST", "PUT", "DELETE"]) +def proxy_ais_hub(rest): + """Прозрачный прокси REST /api/v1/* на ais_hub (127.0.0.1:8081).""" + url = f"{AIS_HUB_URL}/api/v1/{rest}" + qs = request.query_string.decode("utf-8") if request.query_string else "" + if qs: + url = f"{url}?{qs}" + + method = request.method.upper() + body = None + if method in ("POST", "PUT"): + body = request.get_data() or b"" + + headers = {} + ct = request.headers.get("Content-Type") + if ct: + headers["Content-Type"] = ct + + req = Request(url, data=body, method=method, headers=headers) + timeout = 10.0 if method in ("POST", "PUT") else 5.0 + + try: + resp = urlopen(req, timeout=timeout) + payload = resp.read() + status = getattr(resp, "status", 200) or 200 + out_headers = {} + for k, v in resp.headers.items(): + if k.lower() in _HOP_HEADERS: + continue + out_headers[k] = v + out_headers.setdefault("Cache-Control", "no-store") + return Response(payload, status=status, headers=out_headers) + except HTTPError as e: + try: + payload = e.read() + except Exception: + payload = b"" + out_headers = {} + try: + for k, v in e.headers.items(): + if k.lower() in _HOP_HEADERS: + continue + out_headers[k] = v + except Exception: + pass + out_headers.setdefault("Cache-Control", "no-store") + return Response(payload, status=e.code, headers=out_headers) + except URLError as e: + return jsonify({"error": f"ais_hub unreachable: {e.reason}"}), 503 + except Exception as e: + return jsonify({"error": f"proxy error: {e}"}), 502 + + +# ==================== API ==================== + +@app.route("/api/terminal") +def api_terminal(): + """Доступность веб-консоли (PTY + WebSocket).""" + return jsonify({"pty": os.name == "posix", "ws": sock is not None}) + + +@app.route("/api/version") +def api_version(): + """Версия/сборка для отладки кэша фронта и деплоя.""" + try: + here = os.path.dirname(__file__) + def _mtime(p): + try: + return int(os.path.getmtime(os.path.join(here, p))) + except Exception: + return None + return jsonify({ + "server_time": int(time.time()), + "routes_py_mtime": _mtime("routes.py"), + "app_js_mtime": _mtime(os.path.join("static", "js", "app.js")), + "index_html_mtime": _mtime(os.path.join("templates", "index.html")), + }) + except Exception as e: + return jsonify({"server_time": int(time.time()), "error": str(e)}) + + +@app.route("/api/sysinfo") +def api_sysinfo(): + """Локальная система: CPU %, температура, память, uptime. ais_hub этого не знает.""" + now = int(time.time()) + out = {"server_now": now} + + try: + with open("/proc/uptime", "r") as f: + out["sys_uptime"] = int(float(f.read().split()[0])) + except Exception: + out["sys_uptime"] = None + + try: + with open("/sys/class/thermal/thermal_zone0/temp", "r") as f: + out["cpu_temp"] = round(int(f.read().strip()) / 1000.0, 1) + except Exception: + out["cpu_temp"] = None + + out["cpu_percent"] = get_cpu_usage_percent() + + try: + mi = {} + with open("/proc/meminfo", "r") as f: + for line in f: + k, v = line.split(":", 1) + mi[k.strip()] = int(v.strip().split()[0]) + total = mi.get("MemTotal", 0) + avail = mi.get("MemAvailable", mi.get("MemFree", 0)) + out["mem_total_mb"] = round(total / 1024) + out["mem_used_mb"] = round((total - avail) / 1024) + out["mem_pct"] = round((total - avail) / total * 100, 1) if total else 0 + except Exception: + out["mem_total_mb"] = None + out["mem_used_mb"] = None + out["mem_pct"] = None + + return jsonify(out) + + +@app.route("/api/client_log", methods=["POST"]) +def api_client_log(): + """ + Приём логов/ошибок из браузера (front-end). + Пишет в client_errors.log рядом с routes.py. + """ + try: + data = request.get_json(force=True, silent=True) or {} + except Exception: + data = {} + + level = str(data.get("level") or "info").lower() + msg = str(data.get("msg") or "") + ctx = data.get("ctx") + ts = data.get("ts") + url = data.get("url") + ua = data.get("ua") + + try: + now = time.strftime("%Y-%m-%d %H:%M:%S") + line = f"[{now}] level={level} msg={msg} url={url} ua={ua} ctx={ctx} ts={ts}" + _append_client_log_line(line) + except Exception: + pass + + return jsonify({"ok": True}) + + +@app.route("/api/client_log_tail") +def api_client_log_tail(): + """Хвост client_errors.log для диагностики без SSH.""" + try: + n = request.args.get("n", "200") + try: + n = int(n) + except Exception: + n = 200 + n = max(1, min(2000, n)) + + path = os.path.join(os.path.dirname(__file__), "client_errors.log") + if not os.path.exists(path): + return jsonify({"ok": True, "exists": False, "lines": []}) + + with open(path, "r", encoding="utf-8", errors="replace") as f: + lines = f.readlines() + tail = [ln.rstrip("\n") for ln in lines[-n:]] + return jsonify({"ok": True, "exists": True, "lines": tail}) + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/transponder", methods=["GET"]) +def api_transponder_get(): + """Настройки Class B. ownship тянется фронтом отдельно через /api/v1/ownship.""" + try: + cfg = normalize_transponder_config(load_transponder_config()) + return jsonify( + { + "ok": True, + "config": cfg, + "aistx_phy_available": is_aistx_phy_available(), + } + ) + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +def _fetch_ownship_from_hub(): + """Best-effort: последний GPS-fix из ais_hub. Возвращает dict (возможно пустой).""" + try: + resp = urlopen(f"{AIS_HUB_URL}/api/v1/ownship", timeout=2.0) + raw = resp.read() + own = json.loads(raw.decode("utf-8", errors="ignore")) + if not isinstance(own, dict): + return {} + # Адаптируем имена полей к тем, что ожидает transponder (course/speed/...). + return { + "lat": own.get("lat"), + "lon": own.get("lon"), + "course": own.get("cog"), + "speed": own.get("sog"), + "heading": None, + "timestamp": own.get("ts"), + "satellites": own.get("sats"), + "fix_quality": own.get("fix_quality"), + } + except Exception: + return {} + + +@app.route("/api/transponder", methods=["POST"]) +def api_transponder_save(): + """Сохранить настройки транспондера в transponder_config.json.""" + data = request.get_json(force=True) or {} + base = load_transponder_config() + merged = merge_transponder_request(base, data) + saved = save_transponder_config(merged) + return jsonify({"ok": True, "config": saved}) + + +@app.route("/api/transponder/preview", methods=["POST"]) +def api_transponder_preview(): + """NRZI hex для типов 18/19/24 без отправки (отправка — 127.0.0.1:6010).""" + data = request.get_json(force=True) or {} + base = load_transponder_config() + cfg = merge_transponder_request(base, data) + own = _fetch_ownship_from_hub() + try: + prev = build_preview(cfg, own) + except RuntimeError as e: + return jsonify({"ok": False, "error": str(e)}), 503 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 400 + prev.pop("dictionaries", None) + return jsonify({"ok": True, "preview": prev}) + + +@app.route("/api/transponder/send", methods=["POST"]) +def api_transponder_send(): + """NRZI по UDP на 127.0.0.1:6010 с заголовком канал+слот (как тест слота).""" + data = request.get_json(force=True) or {} + which = data.get("which") + if which not in ("18", "19", "24A", "24B", "broadcast"): + return jsonify( + {"ok": False, "error": "which must be 18, 19, 24A, 24B, broadcast"} + ), 400 + + cfg_body = {k: v for k, v in data.items() if k != "which"} + base = load_transponder_config() + cfg = merge_transponder_request(base, cfg_body) + own = _fetch_ownship_from_hub() + try: + result = send_transmission(cfg, own, which) + except RuntimeError as e: + return jsonify({"ok": False, "error": str(e)}), 503 + except ValueError as e: + return jsonify({"ok": False, "error": str(e)}), 400 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + return jsonify({"ok": True, "result": result}) + + +@app.route("/api/transponder/gpio_pulse", methods=["POST"]) +def api_transponder_gpio_pulse(): + """Один импульс TX (GPIO), без UDP. Настройки скрипта — из тела запроса или transponder_config.""" + data = request.get_json(force=True) or {} + base = load_transponder_config() + cfg = merge_transponder_request(base, data) + pulse = tx_gpio_pulse(cfg, after_udp=False) + if not pulse.get("ok"): + err = pulse.get("error") or pulse.get("stderr") or "GPIO pulse failed" + return jsonify({"ok": False, "error": err, "pulse": pulse}), 400 + return jsonify({"ok": True, "pulse": pulse}) + + +@app.route("/api/transponder/send_raw", methods=["POST"]) +def api_transponder_send_raw(): + """Сырой NRZI (hex) + канал + слот → UDP 127.0.0.1:6010.""" + data = request.get_json(force=True) or {} + hx = data.get("nrzi_hex") or data.get("hex") + if not isinstance(hx, str) or not hx.strip(): + return jsonify({"ok": False, "error": "nrzi_hex (hex строка) обязателен"}), 400 + channel = data.get("channel", "A") + try: + slot = int(data.get("slot", 0)) + except (TypeError, ValueError): + return jsonify({"ok": False, "error": "slot must be integer 0..2249"}), 400 + if channel not in ("A", "B"): + return jsonify({"ok": False, "error": "channel must be A or B"}), 400 + if slot < 0 or slot > 2249: + return jsonify({"ok": False, "error": "slot must be 0..2249"}), 400 + try: + body = parse_nrzi_hex(hx) + except ValueError as e: + return jsonify({"ok": False, "error": str(e)}), 400 + if not body: + return jsonify({"ok": False, "error": "пустой payload после hex"}), 400 + cfg_body = { + k: v + for k, v in data.items() + if k not in ("nrzi_hex", "hex", "channel", "slot") + } + base = load_transponder_config() + cfg = merge_transponder_request(base, cfg_body) + try: + result = send_raw_nrzi_packet(channel, slot, body, cfg=cfg) + except ValueError as e: + return jsonify({"ok": False, "error": str(e)}), 400 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + return jsonify({"ok": True, "result": result}) + + +# Аппаратно проверенная NRZI-последовательность для «Тест слота». +TEST_AIS_NRZI = bytes([ + 102, 102, 102, 254, 149, 61, 224, 94, 245, 171, 174, 169, + 74, 84, 87, 105, 51, 82, 202, 166, 141, 99, 170, 170, + 170, 253, 236, 63, 170, 170, 170, 170, +]) + + +@app.route("/api/send_test_slot", methods=["POST"]) +def api_send_test_slot(): + """Отправляет тестовую датаграмму AIS NRZI в указанный слот/канал (UDP 127.0.0.1:6010).""" + data = request.get_json(force=True) + if not data: + return jsonify({"ok": False, "error": "Empty payload"}), 400 + + channel = data.get("channel") + slot = data.get("slot") + + if channel not in ("A", "B"): + return jsonify({"ok": False, "error": "channel must be 'A' or 'B'"}), 400 + if not isinstance(slot, int) or slot < 0 or slot > 2249: + return jsonify({"ok": False, "error": "slot must be 0..2249"}), 400 + + dest = ("127.0.0.1", 6010) + datagram = build_slot_udp_payload(channel, slot, TEST_AIS_NRZI) + + try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.sendto(datagram, dest) + s.close() + return jsonify({"ok": True, "dest": f"{dest[0]}:{dest[1]}", "size": len(datagram)}) + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +# ==================== Network API ==================== + +@app.route("/api/network", methods=["GET"]) +def api_network_get(): + """Returns current network configuration and live status.""" + with network_config_lock: + cfg = load_network_config() + live = get_current_network_info() + return jsonify({"config": cfg, "live": live}) + + +@app.route("/api/network", methods=["POST"]) +def api_network_save(): + """Saves network configuration (does NOT switch mode immediately).""" + data = request.get_json(force=True) + if not data: + return jsonify({"ok": False, "error": "Empty payload"}), 400 + + with network_config_lock: + cfg = load_network_config() + for key in NETWORK_DEFAULTS: + if key in data: + cfg[key] = data[key] + save_network_config(cfg) + return jsonify({"ok": True, "config": cfg}) + + +@app.route("/api/network/switch", methods=["POST"]) +def api_network_switch(): + """Switches network mode to AP or WiFi by running the shell script.""" + data = request.get_json(force=True) + target = data.get("mode") if data else None + if target not in ("ap", "wifi"): + return jsonify({"ok": False, "error": "Provide 'mode': 'ap' or 'wifi'"}), 400 + + with network_config_lock: + cfg = load_network_config() + for key in NETWORK_DEFAULTS: + if key in data and key != "mode": + cfg[key] = data[key] + save_network_config(cfg) + + result = switch_network_mode(target) + return jsonify(result) + + +AIS_MINI_CONF = "/ais-mini.conf" +AIS_MINI_SERVICE = "aisMini.service" + +AIS_HUB_CONF = "/opt/aishub/config/config.yaml" +AIS_HUB_SERVICE = "ais_hub.service" + + +@app.route("/api/config", methods=["GET"]) +def api_config_get(): + """Returns the content of the AIS-catcher Mini configuration file.""" + try: + with open(AIS_MINI_CONF, "r") as f: + text = f.read() + return jsonify({"ok": True, "text": text}) + except FileNotFoundError: + return jsonify({"ok": False, "error": f"File not found: {AIS_MINI_CONF}"}), 404 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/config", methods=["POST"]) +def api_config_save(): + """Saves the AIS-catcher Mini configuration file.""" + data = request.get_json(force=True) + text = data.get("text") if data else None + if text is None: + return jsonify({"ok": False, "error": "No 'text' field"}), 400 + try: + with open(AIS_MINI_CONF, "w") as f: + f.write(text) + return jsonify({"ok": True}) + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/service/restart", methods=["POST"]) +def api_service_restart(): + """Restarts the aisMini.service via systemctl.""" + try: + result = subprocess.run( + ["systemctl", "restart", AIS_MINI_SERVICE], + capture_output=True, text=True, timeout=30, + ) + if result.returncode == 0: + return jsonify({"ok": True, "message": f"{AIS_MINI_SERVICE} restarted"}) + else: + return jsonify({"ok": False, "error": result.stderr.strip() or f"Exit code {result.returncode}"}), 500 + except subprocess.TimeoutExpired: + return jsonify({"ok": False, "error": "Restart timed out"}), 500 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/service/status", methods=["GET"]) +def api_service_status(): + """Returns the status of aisMini.service.""" + try: + result = subprocess.run( + ["systemctl", "is-active", AIS_MINI_SERVICE], + capture_output=True, text=True, timeout=5, + ) + state = result.stdout.strip() + return jsonify({"ok": True, "state": state}) + except Exception as e: + return jsonify({"ok": True, "state": "unknown", "error": str(e)}) + + +@app.route("/api/config/aishub", methods=["GET"]) +def api_aishub_config_get(): + """Returns the content of the ais_hub configuration YAML.""" + try: + with open(AIS_HUB_CONF, "r", encoding="utf-8", errors="replace") as f: + text = f.read() + return jsonify({"ok": True, "text": text}) + except FileNotFoundError: + return jsonify({"ok": False, "error": f"File not found: {AIS_HUB_CONF}"}), 404 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/config/aishub", methods=["POST"]) +def api_aishub_config_save(): + """Saves the ais_hub configuration YAML.""" + data = request.get_json(force=True) + text = data.get("text") if data else None + if text is None: + return jsonify({"ok": False, "error": "No 'text' field"}), 400 + try: + with open(AIS_HUB_CONF, "w", encoding="utf-8") as f: + f.write(text) + return jsonify({"ok": True}) + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/service/aishub/status", methods=["GET"]) +def api_aishub_service_status(): + """Returns the status of ais_hub.service.""" + try: + result = subprocess.run( + ["systemctl", "is-active", AIS_HUB_SERVICE], + capture_output=True, text=True, timeout=5, + ) + state = result.stdout.strip() + return jsonify({"ok": True, "state": state}) + except Exception as e: + return jsonify({"ok": True, "state": "unknown", "error": str(e)}) + + +@app.route("/api/service/aishub/restart", methods=["POST"]) +def api_aishub_service_restart(): + """Restarts ais_hub.service via systemctl.""" + try: + result = subprocess.run( + ["systemctl", "restart", AIS_HUB_SERVICE], + capture_output=True, text=True, timeout=30, + ) + if result.returncode == 0: + return jsonify({"ok": True, "message": f"{AIS_HUB_SERVICE} restarted"}) + else: + return jsonify({"ok": False, "error": result.stderr.strip() or f"Exit code {result.returncode}"}), 500 + except subprocess.TimeoutExpired: + return jsonify({"ok": False, "error": "Restart timed out"}), 500 + except Exception as e: + return jsonify({"ok": False, "error": str(e)}), 500 + + +@app.route("/api/network/scan", methods=["GET"]) +def api_network_scan(): + """Scans for available WiFi networks (Linux/iw only).""" + cfg = load_network_config() + iface = cfg.get("iface", "wlan0") + try: + out = subprocess.check_output( + ["iw", "dev", iface, "scan", "ap-force"], + timeout=15, stderr=subprocess.DEVNULL, + ).decode() + networks = [] + current = {} + for line in out.splitlines(): + line = line.strip() + if line.startswith("BSS "): + if current.get("ssid"): + networks.append(current) + current = {"bssid": line.split()[1].rstrip("("), "ssid": "", "signal": None} + elif line.startswith("SSID:"): + current["ssid"] = line.split(":", 1)[1].strip() + elif line.startswith("signal:"): + try: + current["signal"] = float(line.split(":")[1].strip().split()[0]) + except (ValueError, IndexError): + pass + if current.get("ssid"): + networks.append(current) + seen = set() + unique = [] + for n in networks: + if n["ssid"] not in seen: + seen.add(n["ssid"]) + unique.append(n) + unique.sort(key=lambda x: x.get("signal") or -999, reverse=True) + return jsonify({"ok": True, "networks": unique}) + except subprocess.TimeoutExpired: + return jsonify({"ok": False, "error": "Scan timed out"}) + except Exception as e: + return jsonify({"ok": False, "error": str(e), "networks": []}) + + +# ==================== Certificate downloads ==================== + +@app.route("/ca.pem") +def download_ca(): + """Отдаёт корневой CA-сертификат для установки на клиентские устройства.""" + ca_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ca.pem") + if not os.path.exists(ca_path): + return "CA certificate not generated", 404 + return send_file(ca_path, mimetype="application/x-pem-file", + as_attachment=True, download_name="AISMap_CA.pem") + + +@app.route("/ca.crt") +def download_ca_crt(): + """Тот же CA, но с расширением .crt — Android открывает установщик автоматически.""" + ca_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ca.pem") + if not os.path.exists(ca_path): + return "CA certificate not generated", 404 + return send_file(ca_path, mimetype="application/x-x509-ca-cert", + as_attachment=True, download_name="AISMap_CA.crt") + + +# ==================== Static files with caching ==================== + +IMMUTABLE_YEAR = "public, max-age=31536000, immutable" +STATIC_MONTH = "public, max-age=2592000" +SHORT_REVALIDATE = "public, max-age=60, must-revalidate" + + +def _etag_for_path(path): + try: + st = os.stat(path) + h = hashlib.md5(f"{st.st_mtime_ns}:{st.st_size}".encode("ascii")).hexdigest() + return f'W/"{h}"' + except Exception: + return None + + +def _serve_with_cache(directory, filename, cache_control): + """send_from_directory + заголовок Cache-Control + ETag/304.""" + abs_path = os.path.join(directory, filename) + etag = _etag_for_path(abs_path) + inm = request.headers.get("If-None-Match") + if etag and inm and inm == etag: + resp = Response(status=304) + resp.headers["ETag"] = etag + resp.headers["Cache-Control"] = cache_control + return resp + resp = send_from_directory(directory, filename) + resp.headers["Cache-Control"] = cache_control + if etag: + resp.headers["ETag"] = etag + return resp + + +@app.route("/svg/") +def serve_svg(filename): + """SVG-иконки — редко меняются, долгий кеш.""" + return _serve_with_cache("SVG", filename, STATIC_MONTH) + + +@app.route("/static/leaflet/") +def serve_leaflet(filename): + """Leaflet (версионирован по содержимому) — immutable.""" + return _serve_with_cache("static/leaflet", filename, IMMUTABLE_YEAR) + + +@app.route("/static/xterm/") +def serve_xterm(filename): + """xterm.js — immutable.""" + return _serve_with_cache("static/xterm", filename, IMMUTABLE_YEAR) + + +@app.route("/static/js/") +def serve_static_js(filename): + """app.js, модули — SWR: всегда проверяем обновление, но отдаём из кеша если не изменилось.""" + return _serve_with_cache("static/js", filename, SHORT_REVALIDATE) + + +@app.route("/static/css/") +def serve_static_css(filename): + return _serve_with_cache("static/css", filename, SHORT_REVALIDATE) + + +@app.route("/sw.js") +def serve_sw(): + """Service Worker должен быть в корне для scope '/'.""" + path = os.path.join(os.path.dirname(__file__), "static", "sw.js") + if not os.path.exists(path): + return "sw.js not found", 404 + with open(path, "r", encoding="utf-8") as f: + body = f.read() + resp = Response(body, mimetype="application/javascript") + resp.headers["Cache-Control"] = "no-store" + resp.headers["Service-Worker-Allowed"] = "/" + return resp + + +VECTOR_TILE_URL = os.environ.get("AISMAP_VECTOR_TILE_URL", "http://127.0.0.1:8080").rstrip("/") +VECTOR_TILE_SERVICE = os.environ.get("AISMAP_VECTOR_TILE_SERVICE", "planet_small_z14").strip().strip("/") + + +@app.route("/vtiles///.pbf") +def proxy_vector_tile(z, x, y): + """Проксирует PBF-тайлы с локального векторного тайлсервера. immutable: тайл не меняется.""" + try: + candidates = [ + f"{VECTOR_TILE_URL}/services/{VECTOR_TILE_SERVICE}/tiles/{z}/{x}/{y}.pbf", + f"{VECTOR_TILE_URL}/services/{VECTOR_TILE_SERVICE}/{z}/{x}/{y}.pbf", + f"{VECTOR_TILE_URL}/data/{VECTOR_TILE_SERVICE}/{z}/{x}/{y}.pbf", + f"{VECTOR_TILE_URL}/{VECTOR_TILE_SERVICE}/{z}/{x}/{y}.pbf", + ] + + last_err = None + for url in candidates: + try: + resp = urlopen(url, timeout=5) + data = resp.read() + code = getattr(resp, "status", 200) or 200 + headers = { + "Content-Type": resp.headers.get("Content-Type", "application/x-protobuf"), + "Cache-Control": IMMUTABLE_YEAR, + "Access-Control-Allow-Origin": "*", + "X-AISMap-Upstream": url, + } + ce = resp.headers.get("Content-Encoding") + if ce: + headers["Content-Encoding"] = ce + return data, code, headers + except HTTPError as e: + last_err = e + if getattr(e, "code", None) != 404: + raise + except URLError as e: + last_err = e + break + + if isinstance(last_err, HTTPError) and getattr(last_err, "code", None) == 404: + return "Vector tile not found", 404 + return "Vector tile upstream unavailable", 503 + except (URLError, HTTPError): + return "Vector tile upstream error", 503 + + +@app.route("/tiles///.png") +def serve_tile(z, x, y): + """Отдаёт растровые тайлы из static/tiles с вечным кешем (immutable).""" + max_tile = 2 ** z + if x < 0 or x >= max_tile or y < 0 or y >= max_tile: + return "Invalid tile coordinates", 404 + + rel_dir = os.path.join("static", "tiles", str(z), str(x)) + tile_path = os.path.join(rel_dir, f"{y}.png") + + if not os.path.exists(tile_path): + return "Tile not found", 404 + + etag = _etag_for_path(tile_path) + inm = request.headers.get("If-None-Match") + if etag and inm and inm == etag: + resp = Response(status=304) + resp.headers["ETag"] = etag + resp.headers["Cache-Control"] = IMMUTABLE_YEAR + return resp + + resp = send_from_directory(rel_dir, f"{y}.png") + resp.headers["Cache-Control"] = IMMUTABLE_YEAR + if etag: + resp.headers["ETag"] = etag + return resp diff --git a/scripts/aismap-network.service b/scripts/aismap-network.service new file mode 100644 index 0000000..0ec4f4d --- /dev/null +++ b/scripts/aismap-network.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIS Map Network Init (AP/WiFi with rollback) +After=network-pre.target +Before=network.target hostapd.service +Wants=network-pre.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/opt/aismap/scripts/network_init.sh +TimeoutStartSec=60 + +[Install] +WantedBy=multi-user.target diff --git a/scripts/install.sh b/scripts/install.sh new file mode 100644 index 0000000..bf4a1a4 --- /dev/null +++ b/scripts/install.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Install AIS Map network scripts and systemd service. +# Run as root on the target device. +# +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +INSTALL_DIR="/opt/aismap/scripts" +CONFIG_DIR="/etc/aismap" +CONFIG_FILE="$CONFIG_DIR/network.json" +HOSTAPD_CONF="/etc/hostapd/hostapd.conf" + +echo "=== AIS Map network scripts installer ===" + +mkdir -p "$INSTALL_DIR" +mkdir -p "$CONFIG_DIR" + +echo "[1] Copying scripts to $INSTALL_DIR ..." +cp "$SCRIPT_DIR/to_wifi.sh" "$INSTALL_DIR/" +cp "$SCRIPT_DIR/to_ap.sh" "$INSTALL_DIR/" +cp "$SCRIPT_DIR/network_init.sh" "$INSTALL_DIR/" +chmod +x "$INSTALL_DIR"/*.sh + +echo "[2] Creating default config (if not exists) ..." +if [ ! -f "$CONFIG_FILE" ]; then + # Read current AP settings from hostapd.conf + AP_SSID="" + AP_PSK="" + AP_IFACE="wlan0" + if [ -f "$HOSTAPD_CONF" ]; then + AP_SSID=$(grep -E '^ssid=' "$HOSTAPD_CONF" | head -1 | cut -d= -f2 || echo "") + AP_PSK=$(grep -E '^wpa_passphrase=' "$HOSTAPD_CONF" | head -1 | cut -d= -f2 || echo "") + AP_IFACE=$(grep -E '^interface=' "$HOSTAPD_CONF" | head -1 | cut -d= -f2 || echo "wlan0") + echo " Read from hostapd.conf: SSID=$AP_SSID, iface=$AP_IFACE" + fi + + cat > "$CONFIG_FILE" </dev/null || true +echo " hostapd auto-start disabled (we start it from to_ap.sh)" + +echo "" +echo "=== Installation complete ===" +echo "" +echo "Usage:" +echo " - Web UI: open Settings tab -> 'Сеть / Режим работы'" +echo " - Manual switch to WiFi: bash $INSTALL_DIR/to_wifi.sh" +echo " - Manual switch to AP: bash $INSTALL_DIR/to_ap.sh" +echo " - Config file: $CONFIG_FILE" +echo " - Boot init logs: /var/log/aismap_network_init.log" +echo " - Hostapd backup: ${HOSTAPD_CONF}.orig (created on first AP switch)" +echo "" +echo "On next reboot, network_init.sh will run automatically." +echo "If WiFi fails, it will roll back to AP mode." diff --git a/scripts/network_init.sh b/scripts/network_init.sh new file mode 100644 index 0000000..50d64d6 --- /dev/null +++ b/scripts/network_init.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# AIS Map network init — runs at boot. +# Reads /etc/aismap/network.json, tries the configured mode. +# If mode=wifi and connection fails — rolls back to AP. +# + +set -uo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +CONFIG="/etc/aismap/network.json" +LOG="/var/log/aismap_network_init.log" +exec >"$LOG" 2>&1 + +echo "=== $(date) network_init start ===" + +if [ ! -f "$CONFIG" ]; then + echo "Config not found ($CONFIG), defaulting to AP mode" + bash "$SCRIPT_DIR/to_ap.sh" + echo "=== $(date) network_init done (default AP) ===" + exit 0 +fi + +MODE=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('mode','ap'))" 2>/dev/null || echo "ap") +echo "Configured mode: $MODE" + +if [ "$MODE" = "wifi" ]; then + echo "--- Attempting WiFi connection ---" + bash "$SCRIPT_DIR/to_wifi.sh" + WIFI_EXIT=$? + + if [ $WIFI_EXIT -ne 0 ]; then + echo "to_wifi.sh failed (exit $WIFI_EXIT) — rolling back to AP" + bash "$SCRIPT_DIR/to_ap.sh" + echo "=== $(date) network_init done (rollback to AP) ===" + exit 0 + fi + + GW=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('wifi_gw',''))" 2>/dev/null || echo "") + IFACE=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('iface','wlan0'))" 2>/dev/null || echo "wlan0") + + echo "Verifying WiFi connectivity (gateway: $GW) ..." + CONNECTED=0 + for ATTEMPT in 1 2 3; do + sleep 3 + if [ -n "$GW" ] && ping -c 2 -W 3 "$GW" >/dev/null 2>&1; then + echo "Attempt $ATTEMPT: gateway reachable" + CONNECTED=1 + break + fi + # Also check wpa_supplicant state + if wpa_cli -i "$IFACE" status 2>/dev/null | grep -q "wpa_state=COMPLETED"; then + echo "Attempt $ATTEMPT: wpa_supplicant COMPLETED" + CONNECTED=1 + break + fi + echo "Attempt $ATTEMPT: not connected yet..." + done + + if [ $CONNECTED -eq 1 ]; then + echo "WiFi connection confirmed" + echo "=== $(date) network_init done (wifi) ===" + exit 0 + else + echo "WiFi NOT reachable after 3 attempts — rolling back to AP" + bash "$SCRIPT_DIR/to_ap.sh" + echo "=== $(date) network_init done (rollback to AP) ===" + exit 0 + fi +else + echo "--- Starting AP mode ---" + bash "$SCRIPT_DIR/to_ap.sh" + echo "=== $(date) network_init done (ap) ===" + exit 0 +fi diff --git a/scripts/pulse_once.py b/scripts/pulse_once.py new file mode 100644 index 0000000..564106f --- /dev/null +++ b/scripts/pulse_once.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +"""Короткий импульс на GPIO (Linux + gpiod). Пример для Orange Pi: скопируйте на устройство и укажите путь в настройках транспондера.""" +import os +import time + +try: + import gpiod +except ImportError: + raise SystemExit("Нужен пакет gpiod (python3-libgpiod)") from None + +CHIP = os.environ.get("AIS_TX_GPIO_CHIP", "/dev/gpiochip1") +LINE = int(os.environ.get("AIS_TX_GPIO_LINE", "0")) +PULSE_US = int(os.environ.get("AIS_TX_PULSE_US", "1000")) + +with gpiod.request_lines( + CHIP, + consumer="ais-tx-pulse", + config={ + LINE: gpiod.LineSettings( + direction=gpiod.line.Direction.OUTPUT, + output_value=gpiod.line.Value.INACTIVE, + ) + }, +) as req: + req.set_value(LINE, gpiod.line.Value.ACTIVE) + time.sleep(PULSE_US / 1_000_000.0) + req.set_value(LINE, gpiod.line.Value.INACTIVE) diff --git a/scripts/to_ap.sh b/scripts/to_ap.sh new file mode 100644 index 0000000..958bb3c --- /dev/null +++ b/scripts/to_ap.sh @@ -0,0 +1,67 @@ +#!/bin/bash +set -euo pipefail + +CONFIG="/etc/aismap/network.json" +HOSTAPD_CONF="/etc/hostapd/hostapd.conf" +LOG="/var/log/aismap_to_ap.log" +exec >"$LOG" 2>&1 + +echo "=== $(date) start to_ap ===" + +IFACE="wlan0" +AP_IP="192.168.4.1/24" +AP_SSID="" +AP_PSK="" + +if [ -f "$CONFIG" ]; then + IFACE=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('iface','wlan0'))" 2>/dev/null || echo "wlan0") + AP_IP=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('ap_ip','192.168.4.1/24'))" 2>/dev/null || echo "192.168.4.1/24") + AP_SSID=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('ap_ssid',''))" 2>/dev/null || echo "") + AP_PSK=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('ap_psk',''))" 2>/dev/null || echo "") +fi + +echo "[1] stop wifi client" +killall wpa_supplicant 2>/dev/null || true +sleep 1 + +echo "[2] reset iface $IFACE" +ip addr flush dev "$IFACE" 2>/dev/null || true +ip route del default 2>/dev/null || true +ip link set "$IFACE" down 2>/dev/null || true +sleep 1 +ip link set "$IFACE" up +sleep 2 + +echo "[3] restore AP IP: $AP_IP" +ip addr add "$AP_IP" dev "$IFACE" + +echo "[4] update hostapd.conf (if new SSID/PSK provided)" +if [ -n "$AP_SSID" ] && [ -f "$HOSTAPD_CONF" ]; then + # Back up the original before first modification + if [ ! -f "${HOSTAPD_CONF}.orig" ]; then + cp "$HOSTAPD_CONF" "${HOSTAPD_CONF}.orig" + echo " backed up original to ${HOSTAPD_CONF}.orig" + fi + sed -i "s/^ssid=.*/ssid=${AP_SSID}/" "$HOSTAPD_CONF" + echo " ssid -> $AP_SSID" + if [ -n "$AP_PSK" ]; then + sed -i "s/^wpa_passphrase=.*/wpa_passphrase=${AP_PSK}/" "$HOSTAPD_CONF" + echo " wpa_passphrase -> (updated)" + fi + # Keep interface in sync + sed -i "s/^interface=.*/interface=${IFACE}/" "$HOSTAPD_CONF" +else + echo " no SSID in config or hostapd.conf missing — using existing hostapd.conf" +fi + +echo "[5] start hostapd" +hostapd -B "$HOSTAPD_CONF" + +echo "[6] restart dnsmasq (if used)" +systemctl restart dnsmasq 2>/dev/null || true + +echo "[7] status" +ip addr show dev "$IFACE" +iw dev 2>/dev/null || true + +echo "=== $(date) done to_ap ===" diff --git a/scripts/to_wifi.sh b/scripts/to_wifi.sh new file mode 100644 index 0000000..e69d567 --- /dev/null +++ b/scripts/to_wifi.sh @@ -0,0 +1,86 @@ +#!/bin/bash +set -euo pipefail + +CONFIG="/etc/aismap/network.json" +LOG="/var/log/aismap_to_wifi.log" +exec >"$LOG" 2>&1 + +echo "=== $(date) start to_wifi ===" + +if [ ! -f "$CONFIG" ]; then + echo "ERROR: config not found: $CONFIG" + exit 1 +fi + +SSID=$(python3 -c "import json; print(json.load(open('$CONFIG'))['wifi_ssid'])") +PSK=$(python3 -c "import json; print(json.load(open('$CONFIG'))['wifi_psk'])") +WIFI_IP=$(python3 -c "import json; print(json.load(open('$CONFIG'))['wifi_ip'])") +GW=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('wifi_gw',''))") +DNS=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('wifi_dns','8.8.8.8'))") +IFACE=$(python3 -c "import json; print(json.load(open('$CONFIG')).get('iface','wlan0'))") + +if [ -z "$SSID" ]; then + echo "ERROR: wifi_ssid is empty" + exit 1 +fi + +echo "[1] stop AP services" +killall hostapd 2>/dev/null || true +killall wpa_supplicant 2>/dev/null || true +sleep 1 + +echo "[2] reset iface $IFACE" +ip link set "$IFACE" down 2>/dev/null || true +sleep 1 +ip link set "$IFACE" up +sleep 2 + +echo "[3] scan for SSID: $SSID" +iw dev "$IFACE" scan 2>/dev/null | grep -F "SSID: $SSID" || echo "WARN: SSID not found in scan, trying anyway" + +echo "[4] build wpa config" +wpa_passphrase "$SSID" "$PSK" > /tmp/aismap_wifi.conf + +echo "[5] connect to wifi" +wpa_supplicant -B -i "$IFACE" -c /tmp/aismap_wifi.conf +sleep 5 + +echo "[6] flush old IPs" +ip addr flush dev "$IFACE" + +echo "[7] set static IP: $WIFI_IP" +ip addr add "$WIFI_IP" dev "$IFACE" + +echo "[8] set default route" +ip route del default 2>/dev/null || true +if [ -n "$GW" ]; then + ip route add default via "${GW}" dev "$IFACE" +fi + +echo "[9] set DNS" +if [ -n "$DNS" ]; then + echo "nameserver $DNS" > /etc/resolv.conf +fi + +echo "[10] verify connectivity" +sleep 2 +CURRENT_IP=$(ip -4 addr show "$IFACE" | grep -oP 'inet \K[0-9./]+' || echo "none") +echo "IP on $IFACE: $CURRENT_IP" + +if [ -n "$GW" ]; then + if ping -c 2 -W 3 "${GW}" >/dev/null 2>&1; then + echo "Gateway $GW reachable — WiFi OK" + else + echo "WARN: gateway $GW unreachable" + fi +else + echo "No gateway configured, skipping ping check" +fi + +echo "[11] wpa_supplicant status" +wpa_cli -i "$IFACE" status 2>/dev/null || true + +ip addr show dev "$IFACE" +iw dev "$IFACE" link 2>/dev/null || true + +echo "=== $(date) done to_wifi ===" diff --git a/ssl_utils.py b/ssl_utils.py new file mode 100644 index 0000000..a7e2755 --- /dev/null +++ b/ssl_utils.py @@ -0,0 +1,148 @@ +import os +import ssl +import socket +import datetime + + +def _get_local_ips(): + """Возвращает список локальных IP-адресов машины.""" + ips = [] + try: + for info in socket.getaddrinfo(socket.gethostname(), None, socket.AF_INET): + ip = info[4][0] + if ip not in ips: + ips.append(ip) + except Exception: + pass + return ips + + +def get_ssl_context(): + """ + Создаёт собственный мини-CA и подписывает серверный сертификат. + CA-сертификат можно установить на телефон один раз — и предупреждения исчезнут. + Файлы: ca.pem (корневой, для установки на клиенты), cert.pem + key.pem (сервер). + """ + cert_dir = os.path.dirname(os.path.abspath(__file__)) + ca_cert_file = os.path.join(cert_dir, "ca.pem") + ca_key_file = os.path.join(cert_dir, "ca_key.pem") + cert_file = os.path.join(cert_dir, "cert.pem") + key_file = os.path.join(cert_dir, "key.pem") + + need_regen = not all(os.path.exists(f) for f in [ca_cert_file, ca_key_file, cert_file, key_file]) + + if need_regen: + try: + from cryptography import x509 + from cryptography.x509.oid import NameOID, ExtendedKeyUsageOID + from cryptography.hazmat.primitives import hashes, serialization + from cryptography.hazmat.primitives.asymmetric import rsa + import ipaddress + except ImportError: + print("[SSL] Библиотека cryptography не установлена.") + print("[SSL] Установите: pip install cryptography") + print("[SSL] Без HTTPS GPS телефона работать не будет.") + return None + + print("[SSL] Генерация корневого CA и серверного сертификата...") + + # === 1. Корневой CA === + ca_key = rsa.generate_private_key(public_exponent=65537, key_size=2048) + ca_name = x509.Name([ + x509.NameAttribute(NameOID.ORGANIZATION_NAME, "AIS Map CA"), + x509.NameAttribute(NameOID.COMMON_NAME, "AIS Map Root CA"), + ]) + ca_cert = ( + x509.CertificateBuilder() + .subject_name(ca_name) + .issuer_name(ca_name) + .public_key(ca_key.public_key()) + .serial_number(x509.random_serial_number()) + .not_valid_before(datetime.datetime.utcnow()) + .not_valid_after(datetime.datetime.utcnow() + datetime.timedelta(days=3650)) + .add_extension(x509.BasicConstraints(ca=True, path_length=0), critical=True) + .add_extension( + x509.KeyUsage( + digital_signature=True, key_cert_sign=True, crl_sign=True, + content_commitment=False, key_encipherment=False, + data_encipherment=False, key_agreement=False, + encipher_only=False, decipher_only=False, + ), + critical=True, + ) + .sign(ca_key, hashes.SHA256()) + ) + + with open(ca_cert_file, "wb") as f: + f.write(ca_cert.public_bytes(serialization.Encoding.PEM)) + with open(ca_key_file, "wb") as f: + f.write(ca_key.private_bytes( + serialization.Encoding.PEM, + serialization.PrivateFormat.TraditionalOpenSSL, + serialization.NoEncryption(), + )) + print(f"[SSL] CA сертификат: {ca_cert_file}") + + # === 2. Серверный сертификат, подписанный CA === + srv_key = rsa.generate_private_key(public_exponent=65537, key_size=2048) + srv_name = x509.Name([ + x509.NameAttribute(NameOID.ORGANIZATION_NAME, "AIS Map"), + x509.NameAttribute(NameOID.COMMON_NAME, "aismap.local"), + ]) + + san_entries = [x509.DNSName("aismap.local"), x509.DNSName("localhost")] + for iface_ip in _get_local_ips(): + try: + san_entries.append(x509.IPAddress(ipaddress.IPv4Address(iface_ip))) + except Exception: + pass + san_entries.append(x509.IPAddress(ipaddress.IPv4Address("127.0.0.1"))) + + srv_cert = ( + x509.CertificateBuilder() + .subject_name(srv_name) + .issuer_name(ca_name) + .public_key(srv_key.public_key()) + .serial_number(x509.random_serial_number()) + .not_valid_before(datetime.datetime.utcnow()) + .not_valid_after(datetime.datetime.utcnow() + datetime.timedelta(days=3650)) + .add_extension(x509.BasicConstraints(ca=False, path_length=None), critical=True) + .add_extension(x509.SubjectAlternativeName(san_entries), critical=False) + .add_extension( + x509.ExtendedKeyUsage([ExtendedKeyUsageOID.SERVER_AUTH]), + critical=False, + ) + .sign(ca_key, hashes.SHA256()) + ) + + with open(cert_file, "wb") as f: + f.write(srv_cert.public_bytes(serialization.Encoding.PEM)) + with open(key_file, "wb") as f: + f.write(srv_key.private_bytes( + serialization.Encoding.PEM, + serialization.PrivateFormat.TraditionalOpenSSL, + serialization.NoEncryption(), + )) + print(f"[SSL] Серверный сертификат: {cert_file}") + + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) + ctx.load_cert_chain(cert_file, key_file) + return ctx + + +def run_http_redirect(https_port): + """Простой HTTP-сервер на порту 80, который редиректит на HTTPS.""" + from flask import Flask, redirect, request as flask_request + redir_app = Flask("redirect") + + @redir_app.route("/", defaults={"path": ""}) + @redir_app.route("/") + def redir(path): + host = flask_request.host.split(":")[0] + port_suffix = f":{https_port}" if https_port != 443 else "" + return redirect(f"https://{host}{port_suffix}/{path}", code=301) + + try: + redir_app.run(host="0.0.0.0", port=80, threaded=True) + except Exception as e: + print(f"[HTTP] Не удалось запустить редирект на порту 80: {e}") diff --git a/state.py b/state.py new file mode 100644 index 0000000..d87152b --- /dev/null +++ b/state.py @@ -0,0 +1,49 @@ +import threading + +# Все структуры AIS-данных (vessels/base_stations/buoys/stats/slots/...) вынесены в +# централизованный процесс ais_hub (localhost:8081). Здесь остаётся только функция +# измерения загрузки CPU для эндпоинта /api/sysinfo — ais_hub системные метрики не отдаёт. + +_cpu_prev_jiffies = None +_cpu_jiffy_lock = threading.Lock() + + +def _read_cpu_aggregated_jiffies(): + """Суммарные jiffies по всем ядрам: первая строка cpu в /proc/stat.""" + with open("/proc/stat", "r") as f: + line = f.readline() + parts = line.split() + if not parts or parts[0] != "cpu": + return None + nums = [int(x) for x in parts[1:]] + idle = nums[3] + nums[4] # idle + iowait + total = sum(nums) + return total, idle + + +def get_cpu_usage_percent(): + """ + Загрузка CPU в % (0–100), как в htop: разница двух замеров /proc/stat. + Первый запрос после старта может вернуть None — ещё нет предыдущего замера. + """ + global _cpu_prev_jiffies + try: + cur = _read_cpu_aggregated_jiffies() + if cur is None: + return None + total, idle = cur + with _cpu_jiffy_lock: + prev = _cpu_prev_jiffies + _cpu_prev_jiffies = (total, idle) + if prev is None: + return None + p_total, p_idle = prev + dt = total - p_total + di = idle - p_idle + if dt <= 0: + return None + busy = dt - di + pct = max(0.0, min(100.0, 100.0 * busy / dt)) + return round(pct, 1) + except Exception: + return None diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 0000000..8f6952d --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,1359 @@ +*{box-sizing:border-box;margin:0;padding:0} +html,body{height:100%;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#1a1a2e;color:#e0e0e0;overscroll-behavior-y:contain} + +/* ===== Navbar ===== */ +#navbar{display:flex;align-items:center;height:44px;background:#16213e;border-bottom:1px solid #0f3460;padding:0 12px;z-index:2000;position:relative} +.nav-brand{font-size:15px;font-weight:700;color:#d2ff1a;margin-right:20px;white-space:nowrap} +.nav-tabs{display:flex;gap:2px} +.nav-tab{padding:8px 16px;color:#8899aa;font-size:13px;cursor:pointer;border-radius:4px 4px 0 0;transition:background .15s,color .15s;text-decoration:none;user-select:none} +.nav-tab:hover{color:#ccc;background:rgba(255,255,255,.05)} +.nav-tab.active{color:#d2ff1a;background:#1a1a2e;font-weight:600} +.hamburger{display:none;background:none;border:none;color:#d2ff1a;font-size:22px;cursor:pointer;padding:4px 8px} + +/* Connection banner (top-right) */ +.conn-banner{ + /* Make it global, centered, high-contrast (works on light maps too) */ + position:fixed; + left:50%; + top:54px; /* below navbar */ + transform:translateX(-50%); + z-index:2500; + padding:7px 12px; + border-radius:999px; + font-size:12px; + font-weight:800; + white-space:nowrap; + max-width:80vw; + overflow:hidden; + text-overflow:ellipsis; + border:1px solid transparent; + box-shadow:0 6px 18px rgba(0,0,0,.45); + backdrop-filter: blur(6px); +} +.conn-banner--offline{background:rgba(248,81,73,.18);border-color:rgba(248,81,73,.55);color:#ffb4b0} +.conn-banner--online{background:rgba(63,185,80,.14);border-color:rgba(63,185,80,.5);color:#7ee787} +@media(max-width:600px){ + .nav-tabs{display:none;position:absolute;top:44px;left:0;right:0;background:#16213e;flex-direction:column;border-bottom:1px solid #0f3460;z-index:2001} + .nav-tabs.open{display:flex} + .nav-tab{padding:12px 20px;border-radius:0} + .hamburger{display:block} +} + +/* ===== Tab pages ===== */ +.tab-page{display:none;height:calc(100vh - 44px);overflow:hidden;position:relative} +@supports (height: 100dvh){ + .tab-page{height:calc(100dvh - 44px)} +} +.tab-page.active{display:block} + +/* ===== Map page ===== */ +#map{width:100%;height:100%;background:#0e1a2b} +#status{position:absolute;z-index:1000;top:8px;left:8px;background:rgba(22,33,62,.92);padding:6px 12px;border-radius:4px;font-size:13px;color:#d2ff1a;box-shadow:0 2px 6px rgba(0,0,0,.4)} +#sidebar{position:absolute;z-index:1000;top:8px;right:8px;width:280px;max-height:calc(100% - 16px);background:rgba(22,33,62,.95);padding:10px;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.4);font-size:12px;display:flex;flex-direction:column;overflow:hidden} +#sidebar h3{margin:0 0 8px;font-size:13px;border-bottom:1px solid #0f3460;padding-bottom:5px;color:#8899aa;flex-shrink:0} +.vessel-sidebar-heading{font-size:15px;margin:0 0 8px} +.vessel-count-paren{font-weight:600;color:#c9d1d9} +#vessel-count-suffix{color:#8b949e;font-weight:400} +.vessel-list-toolbar{margin-bottom:8px;flex-shrink:0} +.vessel-search-input{width:100%;box-sizing:border-box;padding:6px 8px;margin-bottom:6px;border:1px solid #30363d;border-radius:4px;background:#0d1117;color:#c9d1d9;font-size:12px} +.vessel-search-input::placeholder{color:#6e7681} +.vessel-search-input:focus{outline:none;border-color:#4fc3f7} +.vessel-toolbar-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:flex-end} +.vessel-toolbar-label{font-size:10px;color:#8b949e;display:flex;flex-direction:column;gap:2px;min-width:0} +.vessel-toolbar-select{max-width:140px;padding:4px 6px;border-radius:4px;border:1px solid #30363d;background:#161b22;color:#c9d1d9;font-size:11px} +#vessel-list{flex:1;overflow-y:auto;min-height:0} +#range-filter{flex-shrink:0} +.leaflet-control-zoom{display:none} +.leaflet-control-attribution{display:none} +.leaflet-control-layers{background:rgba(22,33,62,.95)!important;border:1px solid #0f3460!important;border-radius:6px!important;color:#e0e0e0!important;box-shadow:0 2px 8px rgba(0,0,0,.4)!important} +.leaflet-control-layers label{color:#ccd} +.leaflet-control-layers-toggle{width:30px!important;height:30px!important;background-color:rgba(22,33,62,.92)!important;border:1px solid #0f3460!important;border-radius:4px!important} +.leaflet-control-layers-expanded{padding:8px 12px 6px!important} +.leaflet-control-layers-base label{margin-bottom:2px;display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer} + +/* Compass UI (inside OwnShip panel) */ +.os-compass-row{display:flex;align-items:center;justify-content:space-between;gap:10px} +.os-compass{display:inline-flex;align-items:center;gap:8px} +.compass-toggle{ + width:28px;height:28px; + border-radius:8px; + border:1px solid #0f3460; + background:#16213e; + cursor:pointer; + display:flex; + align-items:center; + justify-content:center; +} +.compass-toggle:hover{border-color:#4fc3f7} +.compass-toggle-dot{ + width:10px;height:10px;border-radius:999px; + background:#6e7681; + box-shadow:0 0 0 2px rgba(0,0,0,.25) inset; +} +.compass--rotate-on .compass-toggle-dot{background:#d2ff1a} +.compass-dial{ + position:relative; + width:34px;height:34px; + border-radius:999px; + border:1px solid rgba(210,255,26,.25); + background:rgba(13,17,23,.55); + display:flex; + align-items:center; + justify-content:center; +} +.compass-arrow{ + width:28px;height:28px; + transform-origin:50% 50%; + will-change:transform; +} +.compass-n{ + position:absolute; + top:-7px; + left:50%; + transform:translateX(-50%); + font-size:10px; + font-weight:900; + color:#d2ff1a; + text-shadow:0 1px 0 rgba(0,0,0,.65); + user-select:none; + pointer-events:none; +} +.compass--no-heading{ + opacity:.55; + border-color:rgba(139,148,158,.35); +} +.vessel-item{padding:7px;margin:4px 0;border:1px solid #0f3460;border-radius:4px;cursor:pointer;transition:background .15s} +.vessel-item:hover{background:rgba(255,255,255,.05)} +.vessel-item.selected{background:rgba(210,255,26,.1);border-color:#d2ff1a} +.vessel-item.vessel-item--no-pos{opacity:.55;cursor:default} +.vessel-item.vessel-item--no-pos:hover{background:transparent} +.vessel-item.vessel-item--no-pos .mmsi{color:#8b949e} +.vessel-item .coords.coords--no-pos{color:#8b949e;font-style:italic} +.vessel-item .vessel-mmsi-row{display:flex;align-items:center;justify-content:space-between;gap:8px} +.vessel-item .mmsi{font-weight:700;color:#4fc3f7;flex:1;min-width:0;word-break:break-all} +.vessel-item .vessel-flag{font-size:18px;line-height:1;flex-shrink:0;opacity:.95} +.vessel-item .callsign-row{font-size:11px;color:#8b949e} +.vessel-item .name{color:#8899aa;font-size:11px} +.vessel-item .coords{color:#667;font-size:10px} +#range-filter{border-top:1px solid #0f3460;margin-top:8px;padding-top:6px} +#range-label{font-size:11px;color:#8899aa;margin-bottom:4px} +#range-slider{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:#0f3460;border-radius:2px;outline:none;cursor:pointer} +#range-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#d2ff1a;cursor:pointer;border:none} +#range-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#d2ff1a;cursor:pointer;border:none} + +/* Generic sliders (danger radii) */ +input[type="range"]#set-warn-radius-slider, +input[type="range"]#set-near-radius-slider{ + height:4px; + -webkit-appearance:none; + appearance:none; + background:#0f3460; + border-radius:2px; + outline:none; + cursor:pointer; +} +input[type="range"]#set-warn-radius-slider::-webkit-slider-thumb{ + -webkit-appearance:none; + width:14px;height:14px;border-radius:50%; + background:#f85149; + border:none; +} +input[type="range"]#set-warn-radius-slider::-moz-range-thumb{ + width:14px;height:14px;border-radius:50%; + background:#f85149;border:none; +} +input[type="range"]#set-near-radius-slider::-webkit-slider-thumb{ + -webkit-appearance:none; + width:14px;height:14px;border-radius:50%; + background:#f0883e; + border:none; +} +input[type="range"]#set-near-radius-slider::-moz-range-thumb{ + width:14px;height:14px;border-radius:50%; + background:#f0883e;border:none; +} +.vessel-item .dist{color:#d2ff1a;font-size:10px;font-weight:600;display:inline-flex;gap:6px;align-items:baseline} +.vessel-item .dist .dist-val{color:#d2ff1a;font-weight:700} +.vessel-item .dist .brg-val{color:#8b949e;font-weight:600} +.vessel-item .dist .brg-val::before{content:"\2192 ";opacity:.6} + +/* Unified SOG/COG/HDG stats row (desktop). Mobile variants override this via + .sidebar--compact and .targets-list selectors later in the file. */ +.vessel-item .compact-stats{ + display:flex;flex-wrap:wrap;gap:4px 8px; + margin-top:4px; + font-family:ui-monospace,Menlo,Consolas,monospace; + font-size:11px; +} +.vessel-item .compact-stats > span{ + display:inline-flex;gap:4px;align-items:baseline; + padding:1px 5px; + background:rgba(15,52,96,.4); + border:1px solid rgba(79,195,247,.16); + border-radius:3px; + cursor:help; + white-space:nowrap; +} +.vessel-item .compact-stats > span:hover{border-color:rgba(79,195,247,.45);background:rgba(15,52,96,.7)} +.vessel-item .compact-stats .k{color:#8b949e;font-weight:600;font-size:9px;letter-spacing:.4px;text-transform:uppercase} +.vessel-item .compact-stats b{color:#e0e0e0;font-weight:700} +#cursor-coords{position:absolute;z-index:1000;bottom:8px;left:8px;background:rgba(22,33,62,.9);padding:5px 10px;border-radius:4px;font-family:monospace;font-size:11px;color:#8899aa} + +/* Danger banner (ownship proximity) */ +.global-banners{ + position:fixed; + left:50%; + top:92px; /* stacked under conn-banner */ + transform:translateX(-50%); + z-index:2490; + display:flex; + flex-direction:column; + align-items:center; + gap:8px; + pointer-events:none; +} +.danger-banner{ + padding:9px 16px; + border-radius:999px; + background:rgba(248,81,73,.92); + border:2px solid rgba(0,0,0,.35); + color:#ffffff; + font-size:14px; + font-weight:900; + letter-spacing:.8px; + text-transform:uppercase; + box-shadow:0 10px 26px rgba(0,0,0,.55); + user-select:none; + pointer-events:none; +} + +/* Highlight nearby targets */ +.leaflet-marker-icon.vessel-nearby{ + filter: drop-shadow(0 0 5px rgba(210,255,26,.9)) drop-shadow(0 0 10px rgba(210,255,26,.35)); +} + +.vessel-icon{will-change:transform} +.vessel-icon--svg{line-height:0;display:flex;align-items:flex-end;justify-content:center} +.vessel-icon--svg svg{vertical-align:bottom} +.leaflet-marker-icon{transition:none!important} +.vessel-overlay-icon{z-index:1000!important;pointer-events:none} +.vessel-overlay-lost{ + background:transparent!important; + border:0!important; +} +.vessel-lost-dot{ + display:block; + width:16px; + height:16px; + border-radius:50%; + background:#8b949e; + border:1px solid #111; + box-shadow:0 1px 3px rgba(0,0,0,.75); +} + +/* AIS aids (base station / buoy) */ +.ais-base-station-icon{ + /* base_station.svg is black strokes only; make it visible on dark map */ + filter: invert(1) brightness(1.25) drop-shadow(0 0 2px rgba(0,0,0,.8)); +} +.ais-buoy-icon{ + filter: drop-shadow(0 0 2px rgba(0,0,0,.75)); +} +.ais-bs-divicon,.ais-aton-divicon{ + background:transparent!important; + border:0!important; +} +.ais-bs-symbol,.ais-aton-symbol{ + position:relative; + width:30px; + height:30px; + box-sizing:border-box; + display:flex; + align-items:center; + justify-content:center; + color:#f0f6fc; + text-shadow:0 1px 2px rgba(0,0,0,.9); + filter:drop-shadow(0 1px 3px rgba(0,0,0,.8)); +} +.ais-bs-symbol{ + border:2px solid #4fc3f7; + border-radius:50%; + background:#0d1117; +} +.ais-bs-mast{ + position:absolute; + left:14px; + top:7px; + width:2px; + height:17px; + background:#c9d1d9; + border-radius:2px; +} +.ais-bs-mast::before,.ais-bs-mast::after{ + content:""; + position:absolute; + left:-6px; + width:14px; + height:2px; + background:#c9d1d9; + border-radius:2px; +} +.ais-bs-mast::before{top:5px} +.ais-bs-mast::after{top:17px} +.ais-bs-waves::before,.ais-bs-waves::after{ + content:""; + position:absolute; + left:50%; + transform:translateX(-50%); + border:2px solid #4fc3f7; + border-bottom:0; + border-radius:18px 18px 0 0; +} +.ais-bs-waves::before{top:4px;width:16px;height:8px} +.ais-bs-waves::after{top:1px;width:24px;height:12px;opacity:.75} +.ais-aton-symbol{ + border:2px solid #0d1117; + border-radius:50%; + background:#667; +} +.ais-aton-symbol--fixed{border-radius:6px} +.ais-aton-symbol--floating{border-radius:50% 50% 48% 48%} +.ais-aton-label{ + z-index:1; + font-size:10px; + font-weight:900; + line-height:1; + letter-spacing:0; + color:#fff; +} +.ais-aton-symbol--cardinal-n{background:linear-gradient(180deg,#111 0 50%,#ffd84a 50% 100%)} +.ais-aton-symbol--cardinal-e{background:linear-gradient(180deg,#111 0 33%,#ffd84a 33% 66%,#111 66% 100%)} +.ais-aton-symbol--cardinal-s{background:linear-gradient(180deg,#ffd84a 0 50%,#111 50% 100%)} +.ais-aton-symbol--cardinal-w{background:linear-gradient(180deg,#ffd84a 0 33%,#111 33% 66%,#ffd84a 66% 100%)} +.ais-aton-symbol--lateral-port{background:#d72525} +.ais-aton-symbol--lateral-starboard{background:#168a45} +.ais-aton-symbol--preferred-port{background:linear-gradient(180deg,#d72525 0 35%,#168a45 35% 65%,#d72525 65% 100%)} +.ais-aton-symbol--preferred-starboard{background:linear-gradient(180deg,#168a45 0 35%,#d72525 35% 65%,#168a45 65% 100%)} +.ais-aton-symbol--isolated-danger{background:linear-gradient(180deg,#111 0 30%,#d72525 30% 70%,#111 70% 100%)} +.ais-aton-symbol--safe-water{background:linear-gradient(90deg,#d72525 0 32%,#fff 32% 68%,#d72525 68% 100%)} +.ais-aton-symbol--safe-water .ais-aton-label{color:#111;text-shadow:0 1px 2px rgba(255,255,255,.75)} +.ais-aton-symbol--special{background:#ffd84a} +.ais-aton-symbol--special .ais-aton-label{color:#111;text-shadow:none} +.ais-aton-symbol--wreck{background:linear-gradient(90deg,#1976d2 0 50%,#ffd84a 50% 100%)} +.ais-aton-symbol--light{background:#f7f7f7} +.ais-aton-symbol--light .ais-aton-label{color:#111;text-shadow:none} +.ais-aton-symbol--leading{background:#8b5cf6} +.ais-aton-symbol--racon{background:#c678dd} +.ais-aton-symbol--structure{background:#6e7681} +.ais-aton-symbol--light-vessel{background:#f0883e} +.ais-aton-symbol--reference,.ais-aton-symbol--generic{background:#30363d} +.ais-aid--virtual .ais-bs-symbol::after,.ais-aid--virtual .ais-aton-symbol::after, +.ais-aid--synthetic .ais-bs-symbol::after,.ais-aid--synthetic .ais-aton-symbol::after{ + content:""; + position:absolute; + inset:-6px; + border-radius:50%; + pointer-events:none; +} +.ais-aid--virtual .ais-bs-symbol::after,.ais-aid--virtual .ais-aton-symbol::after{ + border:2px dashed #4fc3f7; +} +.ais-aid--synthetic .ais-bs-symbol::after,.ais-aid--synthetic .ais-aton-symbol::after{ + border:2px dotted #d2ff1a; +} +.ais-aid--offposition .ais-aton-symbol{ + box-shadow:0 0 0 3px rgba(248,81,73,.45),0 0 12px rgba(248,81,73,.9); +} + +.transponder-hint{font-size:11px;color:#889;margin:0 0 12px;line-height:1.4} +.transponder-preview{margin:0;padding:10px;background:#0d1117;border:1px solid #30363d;border-radius:6px;font-size:10px;line-height:1.35;white-space:pre-wrap;word-break:break-all;max-height:55vh;overflow:auto;color:#c9d1d9} +.tp-dim{width:64px} +.transponder-raw-hex{width:100%;max-width:720px;box-sizing:border-box;font-family:ui-monospace,monospace;font-size:11px;padding:8px;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#c9d1d9;resize:vertical} + +.ship-type-select{max-width:100%;width:min(560px,100%)} +.ship-type-legend{font-size:10px;color:#889;margin:-4px 0 10px;line-height:1.4} +.ship-type-legend abbr{text-decoration:underline dotted;cursor:help} +.ship-editor-block{margin:14px 0;padding:12px;background:#0d1117;border:1px solid #30363d;border-radius:8px} +.ship-editor-wrap{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start} +.ship-editor-svg{flex-shrink:0;width:min(340px,100%);max-width:100%;height:auto;touch-action:none;cursor:default} +.ship-dim-main{stroke:#8b949e;stroke-width:1.25;fill:none} +.ship-dim-ext{stroke:#484f58;stroke-width:1;stroke-dasharray:3 4;stroke-linecap:square} +.ship-dim-txt{fill:#c9d1d9;font-size:10px;font-family:ui-sans-serif,system-ui,sans-serif} +.ship-dim-group{pointer-events:none} +.ship-axis-lbl--dyn{fill:#667;font-size:10px} +.ship-axis-lbl{fill:#667;font-size:11px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif} +.ship-hull{fill:rgba(79,195,247,.12);stroke:#4fc3f7;stroke-width:1.5} +.ship-grid{stroke:#30363d;stroke-width:0.6;stroke-dasharray:4 3} +.ship-gps-group{cursor:grab} +.ship-gps-group:active,body.ship-editor-dragging .ship-gps-group{cursor:grabbing} +.ship-gps-hit{fill:transparent;stroke:none;pointer-events:all} +.ship-gps-dot{fill:#58a6ff;stroke:#1f6feb;stroke-width:1.5;pointer-events:none} +.ship-gps-lbl{fill:#e0e0e0;font-size:7px;font-weight:700;pointer-events:none;user-select:none;font-family:system-ui,sans-serif} +.ship-gps-group--template .ship-gps-dot{fill:#8b949e;stroke:#484f58;stroke-dasharray:2 2} +.ship-editor-legend{margin:0;padding-left:18px;max-width:320px;font-size:11px;color:#889;line-height:1.45} +.ship-editor-legend li{margin:4px 0} +.ship-editor-legend strong{color:#c9d1d9} +.ship-edge-handles{pointer-events:all} +.ship-handle circle{fill:rgba(210,255,26,.4);stroke:#c5e636;stroke-width:1.5} +.ship-handle--stern circle{cursor:ns-resize} +.ship-handle--starboard circle{cursor:ew-resize} +.ship-handle:active circle{fill:rgba(210,255,26,.65)} + +#ownship-panel{position:absolute;z-index:1000;bottom:8px;right:8px;width:280px;background:rgba(22,33,62,.95);padding:10px 14px;border-radius:6px;font-size:12px;box-shadow:0 2px 8px rgba(0,0,0,.4)} +#ownship-panel h4{margin:0 0 5px;font-size:12px;border-bottom:1px solid #0f3460;padding-bottom:4px;color:#8899aa} +#ownship-panel .row{margin:2px 0} +#ownship-panel .label{color:#667} +.ownship-btn{display:inline-block;padding:4px 10px;margin:3px 3px 0 0;border:1px solid #0f3460;border-radius:4px;background:#16213e;cursor:pointer;font-size:11px;color:#8899aa;transition:all .15s} +.ownship-btn:hover{border-color:#4fc3f7;color:#ccc} +.ownship-btn.active{background:#d2ff1a;border-color:#a8cc14;color:#1a1a2e;font-weight:700} +.ownship-icon{will-change:transform} + +/* Mobile panel bar (hidden on desktop) */ +#mob-panel-bar{display:none} + +/* ===== Mobile map panels ===== + Also enable for phone landscape (small height). */ +@media(max-width:600px), (max-height:520px) and (pointer:coarse){ + :root{ + /* mob-panel-bar is disabled, but the vars are kept at 0 so positioning + calculations (sidebar/ownship-panel/HUD) still evaluate cleanly. */ + --mob-panel-bar-height:0px; + --mob-panel-bar-width:0px; + /* JS may set --vv-bottom for WebView/browser UI occlusions */ + --vv-bottom: 0px; + --vv-top: 0px; + --vv-right: 0px; + --vv-left: 0px; + --safe-bottom: env(safe-area-inset-bottom, 0px); + --safe-right: env(safe-area-inset-right, 0px); + } + @supports (padding: max(0px, 0px)){ + :root{ + --safe-bottom: max(env(safe-area-inset-bottom, 0px), var(--vv-bottom, 0px)); + --safe-right: max(env(safe-area-inset-right, 0px), var(--vv-right, 0px)); + } + } + #mob-panel-bar{ + display:flex; + position:fixed; + left:0;right:0; + bottom:0; + z-index:1100; + background:#16213e; + border-top:1px solid #0f3460; + padding-bottom:var(--safe-bottom); + touch-action:none; + overscroll-behavior:contain; + } + /* Visible drag-handle pill so users don't intuitively pull-to-refresh the page */ + #mob-panel-bar::before{ + content:""; + position:absolute; + left:50%;top:4px;transform:translateX(-50%); + width:44px;height:4px;border-radius:3px; + background:rgba(255,255,255,.28); + pointer-events:none; + } + #mob-panel-bar:active::before{background:rgba(210,255,26,.55)} + .mob-panel-tab{flex:1;padding:15px 0 9px;background:none;border:none;color:#8899aa;font-size:13px;font-weight:600;cursor:pointer;transition:color .15s,background .15s;border-top:2px solid transparent;touch-action:none} + .mob-panel-tab:active{background:rgba(255,255,255,.04)} + .mob-panel-tab.active{color:#d2ff1a;border-top-color:#d2ff1a} + #sidebar{position:absolute;top:auto;bottom:calc(var(--mob-panel-bar-height) + var(--safe-bottom));left:0;right:0;width:auto;max-height:60vh;border-radius:10px 10px 0 0;z-index:1100;display:none;overscroll-behavior:contain;padding-top:14px} + #sidebar.mob-open{display:flex} + #ownship-panel{position:absolute;top:auto;bottom:calc(var(--mob-panel-bar-height) + var(--safe-bottom));left:0;right:0;width:auto;max-height:60vh;overflow-y:auto;border-radius:10px 10px 0 0;z-index:1100;min-width:0;display:none;overscroll-behavior:contain;padding-top:14px} + #ownship-panel.mob-open{display:block} + + /* Drag-pill grip on top of the mobile bottom-sheet panels (sidebar & ownship-panel) + — gives the user an intuitive affordance to swipe them down to close, and avoids + accidentally triggering browser pull-to-refresh while interacting with the sheet. */ + #sidebar.mob-open::before, + #ownship-panel.mob-open::before{ + content:""; + position:absolute; + left:50%;top:5px;transform:translateX(-50%); + width:44px;height:4px;border-radius:3px; + background:rgba(255,255,255,.28); + pointer-events:none; + } + #sidebar.mob-swiping, + #ownship-panel.mob-swiping{ + transition:none; + will-change:transform; + } + #sidebar.mob-swiping::before, + #ownship-panel.mob-swiping::before{background:rgba(210,255,26,.55)} + #cursor-coords{bottom:calc(var(--mob-panel-bar-height) + var(--safe-bottom) + 8px);transition:bottom .2s} +} + +/* Landscape phone: move mobile buttons + panels to the right */ +@media (max-height:520px) and (pointer:coarse){ + #mob-panel-bar{ + left:auto; + right:0; + top:44px; /* below navbar */ + bottom:0; + width:calc(var(--mob-panel-bar-width) + var(--safe-right)); + flex-direction:column; + border-top:none; + border-left:1px solid #0f3460; + padding-bottom:0; + padding-right:var(--safe-right); + } + /* In landscape the bar is on the right — rotate the drag pill 90° */ + #mob-panel-bar::before{ + left:4px;top:50%;transform:translateY(-50%); + width:4px;height:44px;border-radius:3px; + } + .mob-panel-tab{ + padding:12px 10px 12px 14px; + border-top:none; + border-left:2px solid transparent; + } + .mob-panel-tab.active{ + border-top-color:transparent; + border-left-color:#d2ff1a; + } + + #sidebar, + #ownship-panel{ + top:0; + bottom:var(--safe-bottom); + left:auto; + right:calc(var(--mob-panel-bar-width) + var(--safe-right) + 8px); + width:min(420px, 40vw); + max-height:calc(100vh - 44px - var(--safe-bottom)); + border-radius:10px; + } + @supports (height: 100dvh){ + #sidebar, + #ownship-panel{ + max-height:calc(100dvh - 44px - var(--safe-bottom)); + } + } + + #cursor-coords{ + bottom:8px; + } +} + +/* ===== Stats page ===== */ +#page-stats{padding:20px;overflow-y:auto} +.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:20px} +.stat-card{background:#16213e;border:1px solid #0f3460;border-radius:8px;padding:16px} +.stat-card .val{font-size:28px;font-weight:700;color:#d2ff1a} +.stat-card .lbl{font-size:12px;color:#8899aa;margin-top:2px} +.stat-card-test{border-color:#d29922}.stat-card-test .val{color:#f0883e} +.test-ch-detail{font-size:11px;color:#8899aa;margin-top:4px;display:flex;gap:10px}.test-ch-detail b{color:#e0e0e0} +.stat-section{margin-top:20px} +.stat-section h3{font-size:14px;color:#8899aa;margin-bottom:10px;border-bottom:1px solid #0f3460;padding-bottom:6px} +.stat-table{width:100%;border-collapse:collapse;font-size:13px} +.stat-table th,.stat-table td{padding:6px 10px;text-align:left;border-bottom:1px solid #0f3460} +.stat-table th{color:#667;font-weight:400} +.stat-table td{color:#e0e0e0} +.stat-details{background:#16213e;border:1px solid #0f3460;border-radius:8px;padding:10px 12px} +.stat-details>summary{cursor:pointer;user-select:none;color:#4fc3f7;font-size:13px;font-weight:700;outline:none} +.stat-details>summary::-webkit-details-marker{display:none} +.stat-details>summary::before{content:"▸";display:inline-block;margin-right:8px;color:#667;transition:transform .15s} +.stat-details[open]>summary::before{transform:rotate(90deg)} +.stat-adv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:10px} +.stat-adv-card{background:#0d1117;border:1px solid #0f3460;border-radius:8px;padding:10px 12px} +.stat-adv-title{font-size:12px;color:#8899aa;margin-bottom:6px;font-weight:700} +.stat-table-compact th,.stat-table-compact td{padding:4px 8px;font-size:12px} +.stat-k{color:#667;font-family:monospace} +.stat-v{color:#e0e0e0;font-family:monospace;text-align:right} +.stat-v.err{color:#f85149;font-weight:700} + +/* ===== Settings page ===== */ +#page-settings{padding:20px;overflow-y:auto} +#page-transponder{padding:20px;overflow-y:auto;box-sizing:border-box} +.settings-card{background:#16213e;border:1px solid #0f3460;border-radius:8px;padding:16px;margin-bottom:14px} +.settings-card h3{font-size:14px;color:#8899aa;margin-bottom:10px} +.settings-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(15,52,96,.5)} +.settings-row:last-child{border-bottom:none} +.settings-label{color:#ccc;font-size:13px} +.settings-value{color:#4fc3f7;font-size:13px;font-family:monospace} + +/* Network settings */ +.net-mode-btns{display:flex;gap:8px;margin:10px 0} +.net-mode-btn{flex:1;padding:10px 0;text-align:center;border:2px solid #0f3460;border-radius:6px;background:#1a1a2e;cursor:pointer;font-size:13px;font-weight:600;color:#8899aa;transition:all .2s} +.net-mode-btn:hover{border-color:#4fc3f7;color:#ccc} +.net-mode-btn.active{border-color:#d2ff1a;background:rgba(210,255,26,.1);color:#d2ff1a} +.net-input{background:#1a1a2e;border:1px solid #0f3460;color:#e0e0e0;padding:6px 10px;border-radius:4px;font-size:13px;font-family:monospace;width:200px} +.net-input:focus{outline:none;border-color:#4fc3f7} +.net-btn{padding:8px 20px;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s} +.net-btn-primary{background:#d2ff1a;color:#1a1a2e} +.net-btn-primary:hover{background:#b8e016} +.net-btn-danger{background:#f85149;color:#fff} +.net-btn-danger:hover{background:#d63a32} +.net-btn:disabled{opacity:.4;cursor:not-allowed} +.net-status{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700} +.net-status.ap{background:rgba(79,195,247,.15);color:#4fc3f7} +.net-status.wifi{background:rgba(210,255,26,.15);color:#d2ff1a} +.net-status.unknown{background:rgba(136,153,170,.15);color:#8899aa} +.net-scan-list{max-height:180px;overflow-y:auto;margin:8px 0} +.net-scan-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px;color:#ccc;transition:background .15s} +.net-scan-item:hover{background:rgba(255,255,255,.05)} +.net-scan-item.selected{background:rgba(210,255,26,.1);color:#d2ff1a} +.net-signal{color:#667;font-size:11px} +.net-msg{padding:8px 12px;border-radius:4px;font-size:12px;margin-top:8px;display:none} +.net-msg.ok{display:block;background:rgba(35,134,54,.15);color:#3fb950} +.net-msg.err{display:block;background:rgba(248,81,73,.15);color:#f85149} +.net-msg.info{display:block;background:rgba(79,195,247,.15);color:#4fc3f7} +.net-toggle-adv{color:#4fc3f7;font-size:12px;cursor:pointer;margin-top:6px;display:inline-block} +.net-toggle-adv:hover{text-decoration:underline} +.net-advanced{display:none;margin-top:10px} +.net-advanced.open{display:block} + +/* ===== Logs page ===== */ +#page-logs.active{display:flex;flex-direction:column} +.logs-toolbar{display:flex;gap:8px;padding:8px 12px;background:#16213e;border-bottom:1px solid #0f3460;align-items:center;flex-shrink:0} +.logs-toolbar label{font-size:12px;color:#8899aa} +.logs-toolbar select,.logs-toolbar input{background:#1a1a2e;border:1px solid #0f3460;color:#e0e0e0;padding:4px 8px;border-radius:4px;font-size:12px} +.log-btn{padding:4px 12px;border:1px solid #0f3460;border-radius:4px;background:#16213e;color:#8899aa;cursor:pointer;font-size:12px;transition:all .15s} +.log-btn:hover{border-color:#4fc3f7;color:#ccc} +.log-btn.active{background:#d2ff1a;color:#1a1a2e;border-color:#a8cc14;font-weight:600} +#log-output{flex:1;overflow-y:auto;overflow-x:auto;padding:8px 12px;font-family:"Cascadia Mono","Fira Code",monospace;font-size:12px;line-height:1.6;white-space:pre;background:#0d1117} +.log-line{color:#8b949e} +.log-line .ts{color:#484f58} +.log-line.ais{color:#4fc3f7} +.log-line.gps{color:#d2ff1a} +.log-line.unknown{color:#f85149} + +/* ===== Config page ===== */ +#page-config.active{display:flex;flex-direction:column;background:#0d1117} +.config-toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#161b22;border-bottom:1px solid #0f3460;flex-shrink:0;font-size:13px;color:#8899aa} +.config-svc-label{font-size:12px;color:#667} +.config-svc-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:700} +.config-svc-badge.active{background:rgba(63,185,80,.15);color:#3fb950} +.config-svc-badge.inactive{background:rgba(248,81,73,.15);color:#f85149} +.config-svc-badge.unknown{background:rgba(136,153,170,.15);color:#8899aa} +.config-body{flex:1;display:flex;flex-direction:column;padding:12px;min-height:0} +.config-tabs{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap} +.config-tab{padding:6px 10px;border:1px solid #0f3460;border-radius:6px;background:#1a1a2e;color:#8899aa;font-size:12px;font-weight:700;cursor:pointer} +.config-tab.active{border-color:#d2ff1a;color:#d2ff1a;background:rgba(210,255,26,.08)} +.config-file-hint{font-size:11px;color:#667;font-family:monospace} +.config-editor{flex:1;min-height:200px;background:#0d1117;color:#e0e0e0;border:1px solid #30363d;border-radius:6px;padding:12px;font-family:"Cascadia Mono","Fira Code","JetBrains Mono",monospace;font-size:13px;line-height:1.6;resize:none;tab-size:4;white-space:pre;overflow:auto} +.config-editor:focus{outline:none;border-color:#58a6ff} +.config-actions{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap} +.config-msg{font-size:12px;white-space:nowrap} +.config-msg.ok{color:#3fb950} +.config-msg.err{color:#f85149} +.config-msg.info{color:#4fc3f7} +.config-hint{margin-top:8px;font-size:11px;color:#484f58;font-family:monospace} + +/* ===== Console (xterm.js) ===== */ +#page-console.active{display:flex;flex-direction:column;background:#0d1117} +.console-toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#161b22;border-bottom:1px solid #0f3460;flex-shrink:0;font-size:12px;color:#8899aa} +.console-toolbar code{color:#4fc3f7;font-size:11px} +#terminal-wrap{flex:1;min-height:0;padding:0 8px 8px;box-sizing:border-box;display:none} +#terminal-wrap .xterm{height:100%;padding:6px 0} +#terminal-unavailable{display:none;padding:24px;color:#8899aa;font-size:13px;line-height:1.5;max-width:520px} + +/* ===== Slots TDMA section ===== */ +.slots-section{margin-top:20px} +.slots-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#16213e;border:1px solid #0f3460;border-radius:8px;cursor:pointer;user-select:none;font-size:14px;color:#8899aa;transition:background .15s} +.slots-header:hover{background:#1a2744} +.slots-arrow{font-size:10px;color:#667;display:inline-block;transition:transform .2s} +.slots-arrow.open{transform:rotate(90deg)} +.slots-content{display:none;margin-top:8px} +.slots-content.open{display:block} +.slots-channels{display:grid;grid-template-columns:1fr 1fr;gap:14px} +@media(max-width:960px){.slots-channels{grid-template-columns:1fr}} +.slots-channel{background:#16213e;border:1px solid #0f3460;border-radius:8px;padding:14px} +.slots-ch-title{font-size:13px;font-weight:700;color:#4fc3f7;margin-bottom:6px} +.slots-info{font-size:12px;color:#8899aa;margin-bottom:8px;font-family:monospace} +.slots-no-data{font-size:12px;color:#484f58;font-style:italic} +.slots-channel canvas{display:block;border-radius:4px;background:#0d1117;max-width:100%} +.slots-canvas-wrap{display:block;overflow:auto;border-radius:4px;background:#0d1117} +.slots-canvas-wrap canvas{max-width:none} +.slots-legend{margin-top:12px;display:flex;gap:18px;font-size:12px;color:#8899aa} +.slots-legend-item{display:flex;align-items:center;gap:5px} +.slots-legend-box{display:inline-block;width:12px;height:12px;border-radius:2px} +.slots-legend-box.free{background:#238636} +.slots-legend-box.occ{background:#f85149} +.slots-test-send{margin-top:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap} +.slots-test-label{font-size:12px;color:#8899aa;white-space:nowrap} +.slots-test-input{background:#0d1117;border:1px solid #30363d;border-radius:4px;color:#e0e0e0;padding:5px 8px;font-size:12px;font-family:inherit} +.slots-test-input:focus{outline:none;border-color:#58a6ff} +.slots-test-btn{background:#238636;color:#fff;border:none;border-radius:4px;padding:5px 14px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .15s} +.slots-test-btn:hover{background:#2ea043} +.slots-test-btn:active{background:#196c2e} +.slots-test-btn:disabled{background:#21262d;color:#484f58;cursor:not-allowed} +.slots-test-status{font-size:11px;white-space:nowrap} +.slots-test-status.ok{color:#3fb950} +.slots-test-status.err{color:#f85149} +.slots-test-status.wait{color:#d29922} +.slots-selected-info{margin-top:8px;font-size:12px;color:#8899aa;font-family:monospace;min-height:16px} +.slots-bar{height:6px;border-radius:3px;background:#0d1117;margin-bottom:10px;overflow:hidden} +.slots-bar-fill{height:100%;border-radius:3px;transition:width .3s} +.slots-tooltip{position:fixed;z-index:9999;pointer-events:none;background:rgba(22,33,62,.95);border:1px solid #0f3460;border-radius:4px;padding:4px 8px;font-size:11px;color:#e0e0e0;font-family:monospace;white-space:nowrap;display:none;box-shadow:0 2px 8px rgba(0,0,0,.5)} +.slots-rssi-label{font-size:11px;color:#667;margin-bottom:4px} +.slots-channel canvas.rssi-chart{width:100%;height:90px;margin-bottom:8px} +.slots-rssi-legend{display:flex;gap:14px;font-size:11px;color:#8899aa;margin-top:4px;margin-bottom:6px} +.slots-rssi-legend span::before{content:'';display:inline-block;width:16px;height:2px;margin-right:4px;vertical-align:middle} + +/* =================================================================== + Vessel InfoWindow (MarineTraffic-style) + - Desktop: floating, draggable card anchored inside map area + - Mobile : full-width bottom-sheet above the mob-panel-bar + =================================================================== */ +.vinf{ + position:absolute; + z-index:1200; + top:64px; left:8px; + width:360px; + max-width:calc(100vw - 16px); + background:#16213e; + border:1px solid #0f3460; + border-radius:10px; + box-shadow:0 10px 28px rgba(0,0,0,.55); + color:#e0e0e0; + font-size:12px; + display:flex; + flex-direction:column; + overflow:hidden; + user-select:none; + touch-action:none; +} +.vinf[hidden]{display:none!important} +/* Drag/grip strip at the top (mobile pill + desktop subtle handle) */ +.vinf-grip{ + position:relative; + height:14px; + flex-shrink:0; + background:#0f3460; + cursor:grab; + display:none; +} +.vinf-grip::before{ + content:""; + position:absolute;left:50%;top:50%; + transform:translate(-50%,-50%); + width:40px;height:4px;border-radius:3px; + background:rgba(255,255,255,.22); +} +.vinf-grip:hover::before{background:rgba(255,255,255,.36)} +.vinf-grip:active{cursor:grabbing} +.vinf-header{ + display:flex; + align-items:center; + gap:8px; + padding:8px 10px; + background:#0f3460; + border-bottom:1px solid #0f3460; + cursor:grab; +} +.vinf-header:active{cursor:grabbing} +/* Collapsed-mode mini stats (hidden in the expanded view) */ +.vinf-mini{ + display:none; + gap:10px; + font-size:11px;color:#8b949e; + font-family:ui-monospace,monospace; +} +.vinf-mini b{color:#c9d1d9;font-weight:700} +/* Collapsed state: hide body/footer via clip; keep header + mini stats visible */ +.vinf-body,.vinf-footer{ + transition:max-height .22s ease, opacity .18s ease, padding .22s ease, border-color .18s ease; + will-change:max-height,opacity; + overflow:hidden; +} +.vinf--collapsed .vinf-sub{display:none} +.vinf--collapsed .vinf-mini{display:flex} +.vinf--collapsed .vinf-header{border-bottom-color:transparent} +.vinf--collapsed .vinf-body{max-height:0!important;opacity:0;padding-top:0;padding-bottom:0;pointer-events:none;border-color:transparent} +.vinf--collapsed .vinf-footer{max-height:0!important;opacity:0;padding-top:0;padding-bottom:0;border-top-color:transparent;pointer-events:none} +/* Collapse button icon swap (chevron down when expanded → becomes up when collapsed) */ +.vinf-ic-expand{display:block} +.vinf-ic-collapse{display:none} +.vinf--collapsed .vinf-ic-expand{display:none} +.vinf--collapsed .vinf-ic-collapse{display:block} +.vinf-icon{ + width:34px; height:34px; + flex-shrink:0; + display:flex; + align-items:center; + justify-content:center; + background:#0d1117; + border-radius:6px; + border:1px solid rgba(255,255,255,.08); +} +.vinf-icon svg{display:block;width:26px;height:26px} +.vinf-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.2} +.vinf-name{ + font-size:14px;font-weight:700;color:#e0e0e0; + white-space:nowrap;overflow:hidden;text-overflow:ellipsis; +} +.vinf-sub{ + font-size:10px;color:#8b949e; + white-space:nowrap;overflow:hidden;text-overflow:ellipsis; + display:flex;align-items:center;gap:6px; +} +.vinf-flag{ + display:inline-block; + font-size:14px;line-height:1; +} +.vinf-btn{ + background:transparent;border:none;color:#8b949e; + cursor:pointer;padding:4px 6px;border-radius:4px; + display:flex;align-items:center;justify-content:center; +} +.vinf-btn:hover{color:#e0e0e0;background:rgba(255,255,255,.06)} +.vinf-btn svg{display:block;width:18px;height:18px} +.vinf-drag-handle{ + color:#667;padding:4px 2px;cursor:grab; + display:inline-flex;align-items:center; +} + +/* Body */ +.vinf-body{ + padding:10px; + display:flex; + flex-direction:column; + gap:10px; + max-height:60vh; + overflow-y:auto; + user-select:text; + touch-action:auto; +} +.vinf-voyage{ + display:grid; + grid-template-columns:1fr auto 1fr; + gap:6px 10px; + align-items:center; + background:#0d1117; + border:1px solid rgba(255,255,255,.05); + border-radius:6px; + padding:8px 10px; +} +.vinf-port{ + font-size:13px;font-weight:700;color:#c9d1d9; + min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; +} +.vinf-port--right{text-align:right} +.vinf-port-country{color:#667;font-weight:500;margin-right:4px;font-size:11px} +.vinf-voyage-arrow{ + color:#4fc3f7;font-size:14px;display:flex;align-items:center;justify-content:center; + padding:0 2px; +} +.vinf-eta{ + grid-column:1/-1; + display:flex;justify-content:space-between;gap:10px; + font-size:11px;color:#8b949e; + border-top:1px dashed rgba(255,255,255,.08); + padding-top:6px;margin-top:2px; +} +.vinf-eta b{color:#c9d1d9} +.vinf-progress{ + height:4px;background:#0d1117;border-radius:2px;overflow:hidden; + margin:6px 0 2px; + grid-column:1/-1; +} +.vinf-progress-fill{height:100%;background:linear-gradient(90deg,#4fc3f7,#d2ff1a);border-radius:2px} + +/* 2x2 grid: nav / speed-course / draught / heading */ +.vinf-grid{ + display:grid; + grid-template-columns:1fr 1fr; + gap:1px; + background:rgba(255,255,255,.05); + border-radius:6px; + overflow:hidden; +} +.vinf-cell{ + background:#0d1117; + padding:7px 10px; + display:flex;flex-direction:column;gap:3px; + min-width:0; +} +.vinf-cell-lbl{font-size:10px;color:#667;text-transform:uppercase;letter-spacing:.4px} +.vinf-cell-val{font-size:13px;font-weight:700;color:#c9d1d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.vinf-cell-val--wrap{white-space:normal;line-height:1.25;overflow:visible;text-overflow:clip} +.vinf-cell-val.dim{color:#667;font-weight:500;font-style:italic} + +/* Identifiers (MMSI/IMO/Callsign) */ +.vinf-ids{ + display:flex;flex-wrap:wrap;gap:6px 14px; + font-size:11px;color:#8b949e; + padding:4px 2px; +} +.vinf-ids b{color:#c9d1d9;font-family:ui-monospace,monospace} +.vinf-ids a{color:#4fc3f7;text-decoration:none} +.vinf-ids a:hover{text-decoration:underline} + +/* Signal block */ +.vinf-signal{ + display:flex;align-items:center;gap:10px; + padding:6px 10px; + background:#0d1117; + border-radius:6px; + font-size:11px;color:#8b949e; +} +.vinf-signal-bars{ + display:inline-flex;align-items:flex-end;gap:2px; + height:14px; +} +.vinf-signal-bar{ + width:3px;background:#30363d;border-radius:1px; +} +.vinf-signal-bar.on{background:#3fb950} +.vinf-signal-bar.warn{background:#d29922} +.vinf-signal-bar.bad{background:#f85149} +.vinf-signal b{color:#c9d1d9} +.vinf-signal .sig-db{font-family:ui-monospace,monospace;color:#c9d1d9} + +/* Actions */ +.vinf-actions{ + display:flex;flex-wrap:wrap;gap:6px; + padding:2px 0; +} +.vinf-act{ + display:inline-flex;align-items:center;gap:5px; + padding:6px 10px; + background:#16213e; + border:1px solid #0f3460; + border-radius:6px; + color:#c9d1d9; + font-size:11px;font-weight:600; + cursor:pointer; + transition:border-color .15s,color .15s,background .15s; +} +.vinf-act:hover{border-color:#4fc3f7;color:#e0e0e0} +.vinf-act.primary{background:rgba(79,195,247,.12);border-color:#4fc3f7;color:#4fc3f7} +.vinf-act.primary:hover{background:rgba(79,195,247,.22)} +.vinf-act svg{width:14px;height:14px} + +/* Footer */ +.vinf-footer{ + padding:6px 10px; + background:#0d1117; + font-size:10px;color:#667; + display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap; + border-top:1px solid rgba(255,255,255,.04); +} +.vinf-footer b{color:#c9d1d9} + +/* Mobile: bottom-sheet — fixed above the mob-panel-bar */ +@media(max-width:600px), (max-height:520px) and (pointer:coarse){ + .vinf{ + position:absolute; + top:auto; + left:0;right:0; + bottom:calc(var(--mob-panel-bar-height, 42px) + var(--safe-bottom, 0px)); + width:auto; + max-width:none; + border-radius:10px 10px 0 0; + max-height:70vh; + transition:max-height .22s ease; + } + .vinf-grip{display:block} + .vinf-header{cursor:default} + .vinf-body{max-height:50vh} + /* Collapsed on mobile: shrink the whole sheet to just the grip + header */ + .vinf.vinf--collapsed{max-height:72px} +} +@media (max-height:520px) and (pointer:coarse){ + /* landscape: panel on the right side like sidebar */ + .vinf{ + top:52px; + bottom:var(--safe-bottom,0px); + left:auto;right:calc(var(--mob-panel-bar-width,72px) + var(--safe-right,0px) + 8px); + width:min(420px,44vw); + max-width:none; + border-radius:10px; + } + /* Landscape collapsed: shrink width instead of height for a cleaner look */ + .vinf.vinf--collapsed{ + width:min(260px,38vw); + max-height:none; + } +} + +/* =================================================================== + Map controls (centre / north-up / ruler / one-hand / zoom) + =================================================================== */ +.map-controls{ + position:absolute; + z-index:1000; + top:8px; left:50%; + transform:translateX(-50%); + display:flex;gap:4px; + background:rgba(22,33,62,.92); + border:1px solid #0f3460; + border-radius:8px; + padding:3px; + box-shadow:0 2px 8px rgba(0,0,0,.4); +} +.map-ctrl{ + width:32px;height:32px; + border:none;border-radius:6px; + background:transparent;color:#c9d1d9; + cursor:pointer; + display:flex;align-items:center;justify-content:center; + font-size:16px;font-weight:700;line-height:1; + transition:background .15s,color .15s; +} +.map-ctrl:hover{background:rgba(255,255,255,.08);color:#d2ff1a} +.map-ctrl:active{background:rgba(255,255,255,.14)} +.map-ctrl.active{background:rgba(210,255,26,.14);color:#d2ff1a} +.map-ctrl svg{display:block} + +/* On mobile, put the control strip to the top-right corner to leave more + horizontal space for the conn-banner, and make it vertical. */ +@media(max-width:600px){ + .map-controls{ + top:52px; + left:auto;right:8px; + transform:none; + flex-direction:column; + } +} + +/* Leaflet scale bar (enabled via L.control.scale) */ +.leaflet-control-scale{ + margin:0 !important; +} +.leaflet-control-scale-line{ + background:rgba(22,33,62,.85)!important; + color:#d2ff1a!important; + border:1px solid rgba(210,255,26,.35)!important; + border-top:none!important; + padding:1px 6px!important; + font-size:10px!important; + line-height:1.3!important; + font-weight:600; +} + +/* =================================================================== + One-hand zoom pad (big thumb-reach buttons, toggled on) + =================================================================== */ +.onehand-pad{ + position:absolute; + right:8px; bottom:60px; + z-index:1150; + display:flex;flex-direction:column;gap:8px; +} +.onehand-pad[hidden]{display:none!important} +.onehand-btn{ + width:54px;height:54px; + border-radius:50%; + border:1px solid #0f3460; + background:rgba(22,33,62,.92); + color:#d2ff1a; + font-size:26px;font-weight:800; + cursor:pointer; + display:flex;align-items:center;justify-content:center; + box-shadow:0 4px 12px rgba(0,0,0,.45); + touch-action:manipulation; +} +.onehand-btn:active{background:rgba(22,33,62,1);transform:scale(.96)} +.onehand-btn#oh-center{color:#4fc3f7} +/* On landscape-compact, push it next to the mob-panel-bar on the right side */ +@media (max-height:520px) and (pointer:coarse){ + .onehand-pad{right:calc(var(--mob-panel-bar-width,72px) + var(--safe-right,0px) + 8px); bottom:16px} +} + +/* =================================================================== + Ruler tool + =================================================================== */ +.ruler-hud{ + position:absolute;z-index:1250; + top:58px; left:50%;transform:translateX(-50%); + background:rgba(22,33,62,.94); + border:1px solid #4fc3f7; + border-radius:999px; + padding:6px 14px; + color:#c9d1d9; + font-size:12px;font-weight:600; + box-shadow:0 4px 14px rgba(0,0,0,.5); + pointer-events:auto; + display:flex;align-items:center;gap:10px; +} +.ruler-hud[hidden]{display:none!important} +.ruler-hud .dist{color:#d2ff1a;font-weight:700;font-family:ui-monospace,monospace} +.ruler-hud .hint{color:#8b949e;font-weight:500} +.ruler-hud button{ + background:transparent;border:1px solid transparent;color:#8b949e; + font-size:12px;cursor:pointer;border-radius:4px;padding:2px 6px; +} +.ruler-hud button:hover{color:#f85149;border-color:#f85149} +body.ruler-active .leaflet-container{cursor:crosshair !important} + +/* =================================================================== + Targets tab page (full list; desktop has same data in #sidebar) + =================================================================== */ +#page-targets.active{display:flex;flex-direction:column;background:#1a1a2e} +.targets-page-inner{ + flex:1;min-height:0; + display:flex;flex-direction:column; + padding:14px 16px 0; + max-width:860px; + margin:0 auto; + width:100%; + box-sizing:border-box; +} +.targets-page-inner h3{ + font-size:17px;margin:0 0 10px;color:#c9d1d9; + border-bottom:1px solid #0f3460;padding-bottom:8px; +} +.targets-list{ + flex:1;min-height:0;overflow-y:auto;padding-bottom:16px; + display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); + gap:8px;align-content:start; +} +.targets-list .vessel-item{margin:0;background:#16213e} +.targets-list .vessel-item:hover{background:rgba(255,255,255,.05)} + +/* Only show the page-targets tab on mobile; on desktop we keep the sidebar */ +.nav-tab--targets{display:none} +@media(max-width:600px){ + .nav-tab--targets{display:inline-block} +} + +/* =================================================================== + Mobile compact "nearby" sidebar: MMSI / COG / SOG / HDG / BRG / DIST + =================================================================== */ +.sidebar--compact .vessel-item{ + display:grid; + grid-template-columns:auto 1fr auto; + grid-template-areas: + "mmsi name dist" + "stats stats stats"; + gap:2px 8px; + padding:6px 8px; + align-items:center; +} +.sidebar--compact .vessel-item .vessel-mmsi-row{grid-area:mmsi;display:flex;gap:6px;align-items:center} +.sidebar--compact .vessel-item .mmsi{font-size:12px} +.sidebar--compact .vessel-item .name{grid-area:name;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.sidebar--compact .vessel-item .dist{grid-area:dist;display:flex;flex-direction:column;align-items:flex-end;font-size:11px;line-height:1.15;gap:1px} +.sidebar--compact .vessel-item .dist .dist-val{color:#d2ff1a;font-weight:700} +.sidebar--compact .vessel-item .dist .brg-val{color:#8b949e;font-size:10px} +.sidebar--compact .vessel-item .dist .brg-val::before{content:"\2192 ";opacity:.6} +.sidebar--compact .vessel-item .compact-stats{ + grid-area:stats; + display:grid; + grid-template-columns:repeat(auto-fit, minmax(58px, 1fr)); + gap:3px 6px; + font-size:10px;color:#8b949e;font-family:ui-monospace,monospace; +} +.sidebar--compact .vessel-item .compact-stats > span{ + display:flex;align-items:baseline;gap:4px; + white-space:nowrap;overflow:hidden;text-overflow:ellipsis; + cursor:help; +} +.sidebar--compact .vessel-item .compact-stats .k{color:#667;font-weight:500} +.sidebar--compact .vessel-item .compact-stats b{color:#c9d1d9;font-weight:600} +.sidebar--compact .vessel-item .callsign-row, +.sidebar--compact .vessel-item .coords, +.sidebar--compact .vessel-item > div:not(.vessel-mmsi-row):not(.name):not(.dist):not(.compact-stats){ + display:none; +} + +/* =================================================================== + Targets tab full list: readable stats grid with labels + =================================================================== */ +.targets-list .vessel-item{ + display:grid; + grid-template-columns:auto 1fr auto; + grid-template-areas: + "mmsi name dist" + "stats stats stats"; + gap:4px 10px; + padding:10px 12px; +} +.targets-list .vessel-item .vessel-mmsi-row{grid-area:mmsi;display:flex;gap:6px;align-items:center} +.targets-list .vessel-item .name{grid-area:name;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.targets-list .vessel-item .dist{grid-area:dist;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;line-height:1.15} +.targets-list .vessel-item .dist .dist-val{color:#d2ff1a;font-weight:700} +.targets-list .vessel-item .dist .brg-val{color:#8b949e;font-size:11px;font-weight:600} +.targets-list .vessel-item .dist .brg-val::before{content:"\2192 ";opacity:.6} +.targets-list .vessel-item > div:not(.vessel-mmsi-row):not(.name):not(.dist):not(.compact-stats){ + display:none; +} +.targets-list .compact-stats{ + grid-area:stats; + display:grid; + grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); + gap:4px 6px; + margin-top:2px; + font-family:ui-monospace,monospace; +} +.targets-list .compact-stats > span{ + display:flex;flex-direction:column; + align-items:flex-start; + padding:4px 6px; + background:rgba(15,52,96,.55); + border:1px solid rgba(79,195,247,.18); + border-radius:5px; + cursor:help; + line-height:1.1; + min-width:0; +} +.targets-list .compact-stats > span:hover{ + border-color:rgba(79,195,247,.5); + background:rgba(15,52,96,.85); +} +.targets-list .compact-stats .k{ + font-size:9px;font-weight:700; + letter-spacing:.6px; + color:#8b949e; + text-transform:uppercase; +} +.targets-list .compact-stats b{ + font-size:12px;color:#e0e0e0;font-weight:700; + max-width:100%; + white-space:nowrap;overflow:hidden;text-overflow:ellipsis; +} + +/* =================================================================== + Nearby HUD — semi-transparent corner overlay that shows own ship + (speed / coords / compass) plus up to 5 nearest targets (or a single + currently selected target with a clear-X). Replaces the mobile + bottom tab-bar as the primary in-field readout. + =================================================================== */ +.nearby-hud{ + position:absolute; + z-index:1000; + left:8px; + bottom:8px; + width:min(290px, 42vw); + max-height:min(50vh, 540px); + background:rgba(13,17,23,.72); + backdrop-filter:blur(6px); + -webkit-backdrop-filter:blur(6px); + border:1px solid rgba(210,255,26,.22); + border-radius:10px; + color:#c9d1d9; + font-family:ui-monospace,Menlo,Consolas,monospace; + font-size:11px; + box-shadow:0 4px 14px rgba(0,0,0,.45); + display:flex;flex-direction:column; + overflow:hidden; + transition:max-height .2s ease, opacity .2s ease; +} +.nearby-hud.is-empty{opacity:.6} +.nearby-hud.is-collapsed{ + max-height:54px; +} +.nearby-hud.is-collapsed .nearby-hud__list, +.nearby-hud.is-collapsed .nhud-own__coords, +.nearby-hud.is-collapsed .nhud-own__src{display:none} +.nearby-hud.is-collapsed .nhud-compass{transform:scale(.82);margin-right:4px} + +.nearby-hud__own{ + padding:6px 8px 5px 8px; + border-bottom:1px solid rgba(79,195,247,.14); +} +.nhud-own__row{display:flex;gap:8px;align-items:center} +.nhud-own__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px} +.nhud-own__line{display:flex;gap:6px;align-items:baseline} +.nhud-k{color:#8b949e;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.4px} +.nhud-own__line b{color:#d2ff1a;font-weight:700;font-size:13px} +.nhud-own__coords{color:#c9d1d9;font-size:10px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.nhud-own__src{color:#667;font-size:9px;text-transform:uppercase;letter-spacing:.5px} +.nhud-own__src.nhud-own__src--err{color:#f85149;text-transform:none;letter-spacing:0} + +.nhud-compass{ + position:relative; + display:inline-flex;align-items:center;justify-content:center; + flex:0 0 auto; +} +.nhud-compass svg{display:block} +.nhud-compass-needle{ + transition:transform .25s ease; +} +.nhud-compass.no-data .nhud-compass-needle{opacity:.3} +.nhud-compass-val{ + position:absolute;left:50%;top:55%;transform:translate(-50%, -50%); + pointer-events:none; + font-size:9px;font-weight:700;color:#d2ff1a; + background:rgba(13,17,23,.6);padding:0 3px;border-radius:3px; + letter-spacing:.3px; + display:none; +} +.nhud-compass.has-val .nhud-compass-val{display:inline-block} +.nhud-compass.from-phone{box-shadow:0 0 0 2px rgba(79,195,247,.28) inset;border-radius:50%} +.nhud-compass.is-rotating-map{box-shadow:0 0 0 2px rgba(210,255,26,.55) inset;border-radius:50%} +.nhud-compass:hover{filter:brightness(1.1)} + +.nearby-hud__list{ + flex:1;min-height:0; + overflow-y:auto; + overscroll-behavior:contain; +} +.nearby-hud__list::-webkit-scrollbar{width:4px} +.nearby-hud__list::-webkit-scrollbar-thumb{background:rgba(210,255,26,.25);border-radius:2px} + +.nhud-item{ + position:relative; + padding:5px 8px 5px 8px; + border-bottom:1px solid rgba(79,195,247,.08); + cursor:pointer; + transition:background .12s; +} +.nhud-item:last-child{border-bottom:none} +.nhud-item:hover{background:rgba(210,255,26,.07)} +.nhud-item.is-selected{background:rgba(210,255,26,.12);border-left:3px solid #d2ff1a;padding-left:5px} +.nhud-item__top{display:flex;gap:6px;align-items:baseline;justify-content:space-between} +.nhud-item__id{ + display:flex;gap:4px;align-items:baseline;min-width:0;flex:1; + white-space:nowrap;overflow:hidden;text-overflow:ellipsis; +} +.nhud-item__name{color:#c9d1d9;font-weight:600;font-size:11px;overflow:hidden;text-overflow:ellipsis} +.nhud-item__callsign{color:#8b949e;font-size:9px} +.nhud-item__mmsi{color:#667;font-size:9px;font-weight:500} +.nhud-item__dist{color:#d2ff1a;font-weight:700;font-size:11px;white-space:nowrap;flex:0 0 auto} +.nhud-item__bot{display:flex;gap:8px;align-items:baseline;margin-top:1px;color:#8b949e;font-size:10px} +.nhud-item__bot .k{color:#667;margin-right:2px;font-size:9px} +.nhud-item__bot b{color:#c9d1d9;font-weight:600} +.nhud-item__brg::before{content:"\2192 ";opacity:.6} +.nhud-item__coords{color:#667;font-size:9px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} + +.nhud-item__clear{ + position:absolute;right:4px;top:4px; + width:20px;height:20px;border-radius:50%; + background:rgba(248,81,73,.15);color:#f85149; + border:1px solid rgba(248,81,73,.35); + display:flex;align-items:center;justify-content:center; + cursor:pointer;font-size:12px;font-weight:700;line-height:1; + padding:0; +} +.nhud-item__clear:hover{background:rgba(248,81,73,.3)} + +.nearby-hud__toggle{ + position:absolute;top:2px;right:2px; + width:22px;height:22px; + background:transparent;border:none;border-radius:4px; + color:#8b949e;cursor:pointer; + display:flex;align-items:center;justify-content:center; + z-index:2; + transition:transform .2s ease, color .15s; +} +.nearby-hud__toggle:hover{color:#d2ff1a} +.nearby-hud.is-collapsed .nearby-hud__toggle{transform:rotate(180deg)} + +.nhud-empty{ + padding:10px 8px;color:#667;text-align:center;font-size:10px; +} + +/* Mobile layout: wider, anchored above the mob-panel-bar. */ +@media(max-width:600px), (max-height:520px) and (pointer:coarse){ + .nearby-hud{ + left:8px;right:8px; + width:auto; + bottom:calc(var(--mob-panel-bar-height, 42px) + var(--safe-bottom, 0px) + 8px); + max-height:38vh; + } + /* When the bottom sheets (sidebar / ownship-panel) are open, hide the HUD to avoid stacking. */ + #sidebar.mob-open ~ .nearby-hud, + #ownship-panel.mob-open ~ .nearby-hud{display:none} +} +@media (max-height:520px) and (pointer:coarse){ + .nearby-hud{ + left:8px; + bottom:calc(8px + var(--safe-bottom, 0px)); + right:calc(var(--mob-panel-bar-width, 72px) + var(--safe-right, 0px) + 8px); + max-height:calc(100vh - 52px - var(--safe-bottom, 0px)); + } +} diff --git a/static/js/app.js b/static/js/app.js new file mode 100644 index 0000000..ee1fdc2 --- /dev/null +++ b/static/js/app.js @@ -0,0 +1,6077 @@ +// ===================== Tab switching ===================== +const APP_BUILD = '2026-04-30h'; +try { console.log('[AISMap] app.js build', APP_BUILD, 'loaded at', new Date().toISOString()); } catch (e) {} +let currentTab = 'map'; + +// ===================== ais_hub state (fed by WebSocket /ws) ===================== +// Всё AIS/GPS состояние хранится здесь и наполняется live-событиями ais_hub. +// Рендер-функции (updateVessels/…/updateSlots) читают отсюда вместо /api/*. +const AisHub = { + vessels: new Map(), // mmsi -> vessel (наш внутренний shape) + baseStations: new Map(), // mmsi -> base station + atons: new Map(), // mmsi -> buoy/AtoN + ownship: null, // последний GPS-fix из ais_hub (наш shape) + stats: null, // сырой /api/v1/stats + sysinfo: null, // локальный /api/sysinfo + slots: {A: null, B: null}, // per-channel slot bitmap/occupancy + detail + slotDetail: {A: null, B: null}, + rssiHistory: {A: [], B: []}, // история noise_floor/threshold per minute + livePower: {A: [], B: []}, // мгновенная мощность ~10 Гц + signalEvents: {A: [], B: []}, // события декодов (sparkline сигнала) + snapshotLoaded: false, + wsOpen: false, + lastEventTs: 0, +}; +window.AisHub = AisHub; + +const AIS_LIVE_POWER_MAX = 600; +const AIS_SIGNAL_EVENTS_MAX = 300; +const AIS_RSSI_HISTORY_MAX = 120; + +// ITU-R M.1371-5 / Message 21 Table 74: тип средства навигационного оборудования (СНО / AtoN). +const AIS_ATON_TYPE_LABELS = { + 0: 'Тип СНО не указан', + 1: 'Опорная точка', + 2: 'RACON (радиолокационный ответчик)', + 3: 'Стационарное морское сооружение', + 4: 'Аварийный буй обозначения затонувшего объекта', + 5: 'Огонь без секторов', + 6: 'Огонь с секторами', + 7: 'Передний створный огонь', + 8: 'Задний створный огонь', + 9: 'Знак: кардинальный северный', + 10: 'Знак: кардинальный восточный', + 11: 'Знак: кардинальный южный', + 12: 'Знак: кардинальный западный', + 13: 'Знак левой стороны фарватера', + 14: 'Знак правой стороны фарватера', + 15: 'Знак предпочтительного канала, левая сторона', + 16: 'Знак предпочтительного канала, правая сторона', + 17: 'Знак изолированной опасности', + 18: 'Знак чистой воды', + 19: 'Специальный знак', + 20: 'Плавучий кардинальный знак северный', + 21: 'Плавучий кардинальный знак восточный', + 22: 'Плавучий кардинальный знак южный', + 23: 'Плавучий кардинальный знак западный', + 24: 'Плавучий знак левой стороны', + 25: 'Плавучий знак правой стороны', + 26: 'Плавучий знак предпочтительного канала, левая сторона', + 27: 'Плавучий знак предпочтительного канала, правая сторона', + 28: 'Плавучий знак изолированной опасности', + 29: 'Плавучий знак чистой воды', + 30: 'Специальный плавучий знак', + 31: 'Плавучий маяк / LANBY / буровая установка', +}; + +function atonTypeLabel(code) { + if (code == null || code === '') return null; + const n = parseInt(code, 10); + if (!isNaN(n) && Object.prototype.hasOwnProperty.call(AIS_ATON_TYPE_LABELS, n)) { + return AIS_ATON_TYPE_LABELS[n]; + } + const s = String(code).trim(); + return s || null; +} + +// Infer vessel class from observed AIS message types. +function _vesselClassFromMsgTypes(msgTypes) { + if (!Array.isArray(msgTypes)) return null; + let sawA = false, sawB = false, sawBS = false, sawATON = false; + for (const t of msgTypes) { + const n = parseInt(t, 10); + if (n === 1 || n === 2 || n === 3 || n === 5) sawA = true; + else if (n === 18 || n === 19 || n === 24) sawB = true; + else if (n === 4 || n === 11) sawBS = true; + else if (n === 21) sawATON = true; + } + if (sawA) return 'A'; + if (sawB) return 'B'; + if (sawBS) return 'BS'; + if (sawATON) return 'N'; + return null; +} + +// MergedTarget (ais_hub) → наш вессел shape (shipname/course/speed/timestamp/…). +function mergedTargetToVessel(t) { + if (!t || typeof t !== 'object') return null; + const dyn = t.dynamic || {}; + const dims = t.dims || {}; + const voy = t.voyage || {}; + const sig = t.signal || {}; + const name = (t.name != null) ? String(t.name).trim() : null; + const callsign = (t.callsign != null) ? String(t.callsign).trim() : null; + const ts = t.last_seen != null ? t.last_seen + : (t.last_dynamic_ts || t.last_static_ts || 0); + return { + mmsi: t.mmsi, + shipname: name || null, + callsign: callsign || null, + imo: t.imo != null ? t.imo : null, + shiptype: t.ship_type != null ? t.ship_type : null, + vessel_class: _vesselClassFromMsgTypes(t.msg_types), + lat: dyn.lat != null ? dyn.lat : null, + lon: dyn.lon != null ? dyn.lon : null, + course: dyn.cog != null ? dyn.cog : null, + speed: dyn.sog != null ? dyn.sog : null, + heading: dyn.heading != null ? dyn.heading : null, + nav_status: dyn.nav_status != null ? dyn.nav_status : null, + rot: dyn.rot != null ? dyn.rot : null, + to_bow: dims.a != null ? dims.a : null, + to_stern: dims.b != null ? dims.b : null, + to_port: dims.c != null ? dims.c : null, + to_starboard: dims.d != null ? dims.d : null, + eta: voy.eta != null ? voy.eta : null, + draught: voy.draught != null ? voy.draught : null, + destination: voy.destination != null ? voy.destination : null, + signal_db: sig.last_db != null ? sig.last_db : null, + signal_ts: sig.last_ts != null ? sig.last_ts : null, + timestamp: ts ? Math.floor(ts) : 0, + last_seen: ts, + }; +} + +// ais_hub ownship (GET /api/v1/ownship / ownship.update) → наш shape. +function ownshipToLocal(o) { + if (!o || typeof o !== 'object') return null; + return { + lat: o.lat != null ? o.lat : null, + lon: o.lon != null ? o.lon : null, + course: o.cog != null ? o.cog : null, + speed: o.sog != null ? o.sog : null, + heading: null, + satellites: o.sats != null ? o.sats : null, + fix_quality: o.fix_quality != null ? o.fix_quality : null, + timestamp: o.ts != null ? Math.floor(o.ts) : null, + source: 'nmea', + }; +} + +// base_station.update → наш shape для маркера. +function baseStationToLocal(b) { + if (!b || typeof b !== 'object') return null; + return { + mmsi: b.mmsi, + lat: b.lat != null ? b.lat : null, + lon: b.lon != null ? b.lon : null, + virtual: !!(b.virtual || b.virtual_station), + synthetic: !!b.synthetic, + timestamp: b.ts != null ? Math.floor(b.ts) : (b.timestamp != null ? Math.floor(b.timestamp) : 0), + }; +} + +// aton.update → наш buoy shape. +function atonToLocal(a) { + if (!a || typeof a !== 'object') return null; + const dims = a.dims || {}; + const atonType = a.type != null ? a.type : (a.aton_type != null ? a.aton_type : (a.aid_type != null ? a.aid_type : null)); + return { + mmsi: a.mmsi, + lat: a.lat != null ? a.lat : null, + lon: a.lon != null ? a.lon : null, + name: a.name || null, + aton_type: atonType, + aton_type_label: atonTypeLabel(atonType), + virtual: !!(a.virtual || a.virtual_aid || a.virtual_aton), + synthetic: !!a.synthetic, + off_position: !!(a.off_position || a.off_pos), + to_bow: a.to_bow != null ? a.to_bow : (dims.a != null ? dims.a : (a.a != null ? a.a : null)), + to_stern: a.to_stern != null ? a.to_stern : (dims.b != null ? dims.b : (a.b != null ? a.b : null)), + to_port: a.to_port != null ? a.to_port : (dims.c != null ? dims.c : (a.c != null ? a.c : null)), + to_starboard: a.to_starboard != null ? a.to_starboard : (dims.d != null ? dims.d : (a.d != null ? a.d : null)), + timestamp: a.ts != null ? Math.floor(a.ts) : (a.timestamp != null ? Math.floor(a.timestamp) : 0), + }; +} + +// occupancy object (GET /api/v1/slots → data.occupancy[A|B]) or slots.update event. +function slotsOccupancyToLocal(s) { + if (!s || typeof s !== 'object') return null; + return { + utc_minute: s.utc_minute != null ? s.utc_minute : null, + total: s.slots_total != null ? s.slots_total : 2250, + occupied: s.occupied_count != null ? s.occupied_count : 0, + noise_floor_dbm: null, + threshold_dbm: null, + slot0_unix_ms: s.slot0_unix_ms != null ? s.slot0_unix_ms : null, + first_occupied_unix_ms: s.first_occupied_unix_ms != null ? s.first_occupied_unix_ms : null, + bitmap: s.bitmap_hex || null, + timestamp: s.ts != null ? Math.floor(s.ts) : Math.floor(Date.now() / 1000), + }; +} + +// slots.detail event or REST detail[A|B] — список занятых слотов с уровнем сигнала. +function slotsDetailToLocal(d) { + if (!d || typeof d !== 'object') return null; + const signals = {}; + const entries = Array.isArray(d.entries) ? d.entries : []; + for (const e of entries) { + if (!e || e.slot == null) continue; + signals[e.slot] = (e.level_db != null) ? Math.round(e.level_db * 10) / 10 : null; + } + return { + utc_minute: d.utc_minute != null ? d.utc_minute : null, + signals, + timestamp: d.ts != null ? Math.floor(d.ts) : Math.floor(Date.now() / 1000), + }; +} + +// Throttled redraw coordinator: несколько target.update'ов подряд → один redraw. +const AisHubRedraw = (function () { + let pending = { vessels: false, baseStations: false, atons: false, ownship: false, stats: false, slots: false }; + let timer = null; + function flush() { + timer = null; + const p = pending; + pending = { vessels: false, baseStations: false, atons: false, ownship: false, stats: false, slots: false }; + try { + if (p.ownship && typeof updateOwnShipDisplay === 'function') updateOwnShipDisplay(); + if (p.vessels && typeof updateVessels === 'function') updateVessels(); + if (p.baseStations && typeof updateBaseStations === 'function') updateBaseStations(); + if (p.atons && typeof updateBuoys === 'function') updateBuoys(); + if (p.stats && currentTab === 'stats' && typeof updateStats === 'function') updateStats(); + if (p.slots && typeof slotsOpen !== 'undefined' && slotsOpen && typeof updateSlots === 'function') updateSlots(); + if (typeof adjustSidebarHeight === 'function') adjustSidebarHeight(); + } catch (e) { try { console.error('[AISMap] redraw failed', e); } catch (_) {} } + } + return { + request(kind) { + if (kind && pending.hasOwnProperty(kind)) pending[kind] = true; + if (timer == null) timer = setTimeout(flush, 200); + }, + flushNow: flush, + }; +})(); + +// Обработка одного события от ais_hub (target.update / ownship.update / …). +function handleAisHubEvent(ev) { + if (!ev || typeof ev !== 'object') return; + const t = ev.type; + const d = ev.data; + AisHub.lastEventTs = Date.now(); + if (t === 'state.snapshot' && d) { + // Полная замена витрин. + AisHub.vessels.clear(); + if (Array.isArray(d.vessels)) { + for (const mt of d.vessels) { + const v = mergedTargetToVessel(mt); + if (v && v.mmsi != null) AisHub.vessels.set(v.mmsi, v); + } + } + AisHub.baseStations.clear(); + if (Array.isArray(d.base_stations)) { + for (const b of d.base_stations) { + const bs = baseStationToLocal(b); + if (bs && bs.mmsi != null) AisHub.baseStations.set(bs.mmsi, bs); + } + } + AisHub.atons.clear(); + if (Array.isArray(d.atons)) { + for (const a of d.atons) { + const an = atonToLocal(a); + if (an && an.mmsi != null) AisHub.atons.set(an.mmsi, an); + } + } + AisHub.ownship = d.ownship ? ownshipToLocal(d.ownship) : null; + AisHub.stats = d.stats || null; + if (d.slots) { + const occ = d.slots.occupancy || {}; + const det = d.slots.detail || {}; + AisHub.slots.A = occ.A ? slotsOccupancyToLocal(occ.A) : null; + AisHub.slots.B = occ.B ? slotsOccupancyToLocal(occ.B) : null; + AisHub.slotDetail.A = det.A ? slotsDetailToLocal(det.A) : null; + AisHub.slotDetail.B = det.B ? slotsDetailToLocal(det.B) : null; + } + AisHub.snapshotLoaded = true; + AisHubRedraw.request('vessels'); + AisHubRedraw.request('baseStations'); + AisHubRedraw.request('atons'); + AisHubRedraw.request('ownship'); + AisHubRedraw.request('stats'); + AisHubRedraw.request('slots'); + return; + } + if (t === 'target.update' && d) { + const v = mergedTargetToVessel(d); + if (v && v.mmsi != null) { + AisHub.vessels.set(v.mmsi, v); + AisHubRedraw.request('vessels'); + } + return; + } + if (t === 'ownship.update' && d) { + AisHub.ownship = ownshipToLocal(d); + AisHubRedraw.request('ownship'); + return; + } + if (t === 'base_station.update' && d) { + const bs = baseStationToLocal(d); + if (bs && bs.mmsi != null) { + AisHub.baseStations.set(bs.mmsi, bs); + AisHubRedraw.request('baseStations'); + } + return; + } + if (t === 'aton.update' && d) { + const an = atonToLocal(d); + if (an && an.mmsi != null) { + AisHub.atons.set(an.mmsi, an); + AisHubRedraw.request('atons'); + } + return; + } + if (t === 'stats.update' && d) { + AisHub.stats = d; + AisHubRedraw.request('stats'); + return; + } + if (t === 'slots.update' && d && (d.channel === 'A' || d.channel === 'B')) { + const ch = d.channel; + AisHub.slots[ch] = slotsOccupancyToLocal(d); + // Поддерживаем «per-minute» историю RSSI (для графиков), noise/threshold + // ais_hub нам не присылает → используем пустые плейсхолдеры, оставляем «ts». + const hist = AisHub.rssiHistory[ch]; + hist.push({ ts: (d.ts || Math.floor(Date.now() / 1000)), nf: null, th: null }); + if (hist.length > AIS_RSSI_HISTORY_MAX) hist.splice(0, hist.length - AIS_RSSI_HISTORY_MAX); + AisHubRedraw.request('slots'); + return; + } + if (t === 'slots.detail' && d && (d.channel === 'A' || d.channel === 'B')) { + const ch = d.channel; + AisHub.slotDetail[ch] = slotsDetailToLocal(d); + AisHubRedraw.request('slots'); + return; + } + if (t === 'signal.update' && d && (d.channel === 'A' || d.channel === 'B')) { + const ch = d.channel; + const events = Array.isArray(d.events) ? d.events : []; + const store = AisHub.signalEvents[ch]; + for (const e of events) { + if (!e) continue; + store.push({ + ts: e.unix_ms != null ? e.unix_ms / 1000 : Math.floor(Date.now() / 1000), + slot: e.slot != null ? e.slot : null, + mmsi: e.mmsi != null ? e.mmsi : null, + signal: e.level_db != null ? Math.round(e.level_db * 10) / 10 : null, + }); + } + if (store.length > AIS_SIGNAL_EVENTS_MAX) store.splice(0, store.length - AIS_SIGNAL_EVENTS_MAX); + AisHubRedraw.request('slots'); + return; + } + if (t === 'radio.update' && d) { + if (d.source === 'aiscatcher_rssi' || d.power_a_db != null || d.power_b_db != null) { + const ts = ev.ts || (Date.now() / 1000); + if (d.power_a_db != null) { + AisHub.livePower.A.push({ ts, power: Math.round(d.power_a_db * 10) / 10 }); + if (AisHub.livePower.A.length > AIS_LIVE_POWER_MAX) AisHub.livePower.A.shift(); + } + if (d.power_b_db != null) { + AisHub.livePower.B.push({ ts, power: Math.round(d.power_b_db * 10) / 10 }); + if (AisHub.livePower.B.length > AIS_LIVE_POWER_MAX) AisHub.livePower.B.shift(); + } + AisHubRedraw.request('slots'); + } + return; + } +} + +// WebSocket-клиент с переподключением (1→2→5→10 с). +const AisHubWS = (function () { + let ws = null; + let backoff = 1000; + let reconnectTimer = null; + function open() { + if (reconnectTimer != null) { clearTimeout(reconnectTimer); reconnectTimer = null; } + if (ws) { + try { + ws.onopen = ws.onclose = ws.onerror = ws.onmessage = null; + if (ws.readyState === WebSocket.CONNECTING || ws.readyState === WebSocket.OPEN) { + ws.close(1000, 'reconnect'); + } + } catch (_) {} + ws = null; + } + try { + const proto = (location.protocol === 'https:') ? 'wss:' : 'ws:'; + const url = proto + '//' + location.host + '/ws'; + ws = new WebSocket(url); + } catch (e) { + scheduleReconnect(); + return; + } + ws.onopen = () => { + AisHub.wsOpen = true; + backoff = 1000; + try { console.log('[AISMap] ws open'); } catch (_) {} + }; + ws.onmessage = (m) => { + let ev; + try { ev = JSON.parse(m.data); } catch (e) { return; } + handleAisHubEvent(ev); + }; + ws.onerror = () => {}; + ws.onclose = () => { + AisHub.wsOpen = false; + try { console.warn('[AISMap] ws close, reconnect in', backoff, 'ms'); } catch (_) {} + scheduleReconnect(); + }; + } + function scheduleReconnect() { + if (reconnectTimer != null) return; + reconnectTimer = setTimeout(() => { reconnectTimer = null; open(); }, backoff); + backoff = Math.min(backoff * 2, 10000); + } + return { open }; +})(); +const tabs = document.querySelectorAll('.nav-tab'); +const pages = document.querySelectorAll('.tab-page'); +const hamburger = document.getElementById('hamburger'); +const navTabs = document.getElementById('nav-tabs'); + +// ===================== VisualViewport safe insets (WebView/browser UI) ===================== +function updateVisualViewportInsets(){ + const vv = window.visualViewport; + if (!vv) return; + // Approximate occluded areas in CSS px + const top = Math.max(0, vv.offsetTop || 0); + const bottom = Math.max(0, (window.innerHeight - (vv.height + (vv.offsetTop || 0))) || 0); + const left = Math.max(0, vv.offsetLeft || 0); + const right = Math.max(0, (window.innerWidth - (vv.width + (vv.offsetLeft || 0))) || 0); + const root = document.documentElement; + root.style.setProperty('--vv-top', top.toFixed(0) + 'px'); + root.style.setProperty('--vv-bottom', bottom.toFixed(0) + 'px'); + root.style.setProperty('--vv-left', left.toFixed(0) + 'px'); + root.style.setProperty('--vv-right', right.toFixed(0) + 'px'); +} +try{ + if (window.visualViewport) { + window.visualViewport.addEventListener('resize', updateVisualViewportInsets); + window.visualViewport.addEventListener('scroll', updateVisualViewportInsets); + window.addEventListener('resize', updateVisualViewportInsets); + updateVisualViewportInsets(); + } +}catch(e){} + +// ===================== Session settings (cookie) ===================== +function _cookieOpts() { + const secure = (location && location.protocol === 'https:') ? '; Secure' : ''; + return '; Path=/; SameSite=Lax' + secure; +} +function cookieGet(name) { + try { + const key = encodeURIComponent(name) + '='; + const parts = String(document.cookie || '').split(/;\s*/); + for (const p of parts) { + if (p.startsWith(key)) return decodeURIComponent(p.slice(key.length)); + } + } catch (e) {} + return null; +} +function cookieSet(name, value) { + try { + document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(String(value)) + _cookieOpts(); + return true; + } catch (e) {} + return false; +} +const SSK = 'aismap_'; +function sGet(key, def) { + const v = cookieGet(SSK + key); + return (v == null || v === '') ? def : v; +} +function sSet(key, value) { + return cookieSet(SSK + key, value); +} + +function switchTab(tab) { + currentTab = tab; + tabs.forEach(t => t.classList.toggle('active', t.dataset.tab === tab)); + pages.forEach(p => p.classList.toggle('active', p.id === 'page-' + tab)); + navTabs.classList.remove('open'); + if (tab === 'map') { + setTimeout(() => map.invalidateSize(), 50); + } + if (tab === 'config') { + if (!cfgLoaded) loadConfig(); + loadServiceStatus(); + } + if (tab === 'console') { + initConsole().then(() => { + if (window._fitTerminal) setTimeout(() => window._fitTerminal(), 80); + }); + } + if (tab === 'transponder') { + loadTransponderPage(); + } + if (tab === 'targets') { + try { renderTargetsTab(); } catch (_) {} + } +} +tabs.forEach(t => t.addEventListener('click', () => switchTab(t.dataset.tab))); +hamburger.addEventListener('click', () => navTabs.classList.toggle('open')); + +// ===================== Transponder (Class B) ===================== +async function tpParseJsonResponse(r) { + const text = await r.text(); + if (!text || !text.trim()) { + return { _empty: true, _status: r.status }; + } + try { + return JSON.parse(text); + } catch (e) { + const snippet = text.replace(/\s+/g, ' ').slice(0, 180); + throw new Error('Ответ не JSON (HTTP ' + r.status + '): ' + snippet); + } +} + +function tpCollectConfig() { + return { + mmsi: parseInt(document.getElementById('tp-mmsi').value, 10) || 0, + shipname: document.getElementById('tp-shipname').value, + callsign: document.getElementById('tp-callsign').value, + ship_type: parseInt(document.getElementById('tp-ship-type').value, 10) || 0, + to_bow: parseInt(document.getElementById('tp-to-bow').value, 10) || 0, + to_stern: parseInt(document.getElementById('tp-to-stern').value, 10) || 0, + to_port: parseInt(document.getElementById('tp-to-port').value, 10) || 0, + to_starboard: parseInt(document.getElementById('tp-to-starboard').value, 10) || 0, + vendorid: document.getElementById('tp-vendorid').value, + model: parseInt(document.getElementById('tp-model').value, 10) || 0, + serial: parseInt(document.getElementById('tp-serial').value, 10) || 0, + use_gps_motion: document.getElementById('tp-use-gps').checked, + nrzi_slot_channel: document.getElementById('tp-slot-channel').value, + nrzi_slot: parseInt(document.getElementById('tp-slot-number').value, 10) || 0, + nrzi_encoder: document.getElementById('tp-nrzi-encoder').value, + nrzi_mode: document.getElementById('tp-nrzi-mode').value, + include_nrzi_preamble: document.getElementById('tp-preamble').checked, + nrzi_preamble_bits: Math.max(0, Math.min(128, parseInt(document.getElementById('tp-preamble-bits').value, 10) || 0)), + nrzi_pad_payload_to_octet: document.getElementById('tp-pad-payload').checked, + nrzi_pad_nrz_bits: Math.max(0, Math.min(4096, parseInt(document.getElementById('tp-pad-nrz-bits').value, 10) || 0)), + tx_gpio_pulse_auto: document.getElementById('tp-gpio-auto').checked, + tx_gpio_pulse_delay_ms: Math.max(50, Math.min(100, parseInt(document.getElementById('tp-gpio-delay-ms').value, 10) || 75)), + tx_gpio_pulse_script: document.getElementById('tp-gpio-script').value, + }; +} + +function tpApplyConfig(c) { + if (!c) return; + document.getElementById('tp-mmsi').value = c.mmsi != null ? c.mmsi : ''; + document.getElementById('tp-shipname').value = c.shipname || ''; + document.getElementById('tp-callsign').value = c.callsign || ''; + const stSel = document.getElementById('tp-ship-type'); + if (stSel) { + const stv = c.ship_type != null ? parseInt(c.ship_type, 10) : 0; + if (typeof window.ensureShipTypeOption === 'function') { + window.ensureShipTypeOption(Number.isFinite(stv) ? stv : 0); + } + stSel.value = String(Number.isFinite(stv) ? Math.max(0, Math.min(255, stv)) : 0); + } + document.getElementById('tp-to-bow').value = c.to_bow != null ? c.to_bow : ''; + document.getElementById('tp-to-stern').value = c.to_stern != null ? c.to_stern : ''; + document.getElementById('tp-to-port').value = c.to_port != null ? c.to_port : ''; + document.getElementById('tp-to-starboard').value = c.to_starboard != null ? c.to_starboard : ''; + document.getElementById('tp-vendorid').value = c.vendorid || ''; + document.getElementById('tp-model').value = c.model != null ? c.model : ''; + document.getElementById('tp-serial').value = c.serial != null ? c.serial : ''; + document.getElementById('tp-use-gps').checked = !!c.use_gps_motion; + const tch = document.getElementById('tp-slot-channel'); + if (tch) tch.value = (c.nrzi_slot_channel === 'B') ? 'B' : 'A'; + const tsn = document.getElementById('tp-slot-number'); + if (tsn) { + const sn = c.nrzi_slot != null ? Math.max(0, Math.min(2249, parseInt(c.nrzi_slot, 10) || 0)) : 0; + tsn.value = sn; + } + const enc = document.getElementById('tp-nrzi-encoder'); + if (enc) enc.value = (c.nrzi_encoder === 'ais_phy') ? 'ais_phy' : 'aistx'; + document.getElementById('tp-nrzi-mode').value = (c.nrzi_mode === 'expanded') ? 'expanded' : 'packed'; + document.getElementById('tp-preamble').checked = c.include_nrzi_preamble !== false; + document.getElementById('tp-pad-payload').checked = c.nrzi_pad_payload_to_octet !== false; + const tpn = document.getElementById('tp-pad-nrz-bits'); + if (tpn) { + const pn = c.nrzi_pad_nrz_bits != null ? parseInt(c.nrzi_pad_nrz_bits, 10) : 256; + tpn.value = isNaN(pn) ? 256 : Math.max(0, Math.min(4096, pn)); + } + const tpb = document.getElementById('tp-preamble-bits'); + if (tpb) { + const pb = c.nrzi_preamble_bits != null ? parseInt(c.nrzi_preamble_bits, 10) : 24; + tpb.value = isNaN(pb) ? 24 : Math.max(0, Math.min(128, pb)); + } + const gAuto = document.getElementById('tp-gpio-auto'); + if (gAuto) gAuto.checked = !!c.tx_gpio_pulse_auto; + const gDel = document.getElementById('tp-gpio-delay-ms'); + if (gDel) { + const gd = c.tx_gpio_pulse_delay_ms != null ? parseInt(c.tx_gpio_pulse_delay_ms, 10) : 75; + gDel.value = isNaN(gd) ? 75 : Math.max(50, Math.min(100, gd)); + } + const gScr = document.getElementById('tp-gpio-script'); + if (gScr) gScr.value = c.tx_gpio_pulse_script != null ? c.tx_gpio_pulse_script : ''; + if (typeof window.shipDimsEditorRefresh === 'function') window.shipDimsEditorRefresh(); +} + +function tpFormatSendResult(res) { + if (!res) return ''; + const parts = []; + if (res.dest) parts.push(res.dest); + if (res.slot_channel != null && res.slot != null) parts.push('ch ' + res.slot_channel + ' slot ' + res.slot); + if (res.nrzi_bytes) parts.push('UDP: ' + res.nrzi_bytes + ' B'); + if (res.payload_bytes != null) parts.push('NRZI payload: ' + res.payload_bytes + ' B'); + if (res.udp_bytes != null) parts.push('UDP кадр: ' + res.udp_bytes + ' B'); + if (res.gpio_pulse && res.gpio_pulse.length) { + const gp = res.gpio_pulse.map(function (p) { + if (p.ok) return 'ok'; + return 'fail: ' + (p.error || p.stderr || p.returncode); + }).join('; '); + parts.push('GPIO: ' + gp); + } + if (res.errors && res.errors.length) parts.push(res.errors.join('; ')); + return parts.join(' · '); +} + +function tpFormatPreview(prev) { + if (!prev || !prev.nrzi_hex) return ''; + const lines = []; + if (prev.dest) lines.push('Назначение UDP: ' + prev.dest); + if (prev.slot_channel != null && prev.slot != null) { + lines.push('Заголовок кадра: канал ' + prev.slot_channel + ', слот ' + prev.slot + ' (как тест слота)'); + } + const phy = prev.phy; + if (phy) { + lines.push('=== PHY (отладка) ==='); + lines.push('Преамбула: ' + (phy.include_preamble ? phy.preamble_bits + ' бит 1010… (как gr-aistx)' : 'выкл (только HDLC+NRZI)')); + lines.push('NRZI режим: ' + (phy.nrzi_mode || '')); + if (phy.fcs) lines.push('FCS: ' + phy.fcs); + if (phy.hdlc) lines.push('HDLC: ' + phy.hdlc); + if (phy.nrzi) lines.push('NRZI: ' + phy.nrzi); + if (phy.packed) lines.push('Packed: ' + phy.packed); + if (phy.nrzi_encoder) lines.push('Кодер: ' + phy.nrzi_encoder); + if (phy.aistx_phy_note) lines.push(phy.aistx_phy_note); + if (phy.pad_payload_to_octet != null) { + lines.push('Добор payload до октета: ' + (phy.pad_payload_to_octet ? 'да' : 'нет')); + } + if (phy.pad_nrz_total_bits != null && phy.pad_nrz_total_bits > 0) { + lines.push('Добор NRZ перед NRZI до: ' + phy.pad_nrz_total_bits + ' бит'); + } else if (phy.pad_nrz_total_bits === null || phy.pad_nrz_total_bits === 0) { + lines.push('Добор NRZ перед NRZI: выкл'); + } + const pm = phy.per_message || {}; + ['18', '19', '24A', '24B'].forEach(k => { + const s = pm[k]; + if (!s) return; + const p0 = s.payload_bits_input != null ? s.payload_bits_input : s.payload_bits; + const p1 = s.payload_bits_after_pad != null ? s.payload_bits_after_pad : p0; + const ptxt = p0 === p1 ? (p0 + ' бит') : (p0 + '→' + p1 + ' бит'); + const stuff = s.bits_between_flags_stuffed != null ? s.bits_between_flags_stuffed : '—'; + const hdlc = s.hdlc_frame_bits != null ? s.hdlc_frame_bits + ' бит' : (s.hdlc_note || '—'); + lines.push(k + ': payload ' + ptxt + ', stuff ' + stuff + ', HDLC ' + hdlc + + ', NRZI ' + s.nrzi_packed_bytes + ' B, UDP ' + s.udp_total_bytes + ' B'); + }); + if (phy.test_slot_note) lines.push(phy.test_slot_note); + } + lines.push('=== Только NRZI (hex) ==='); + const hx = prev.nrzi_hex || {}; + ['18', '19', '24A', '24B'].forEach(k => { + const h = hx[k]; + lines.push(k + ': ' + (h ? h.length + ' hex — ' + h.slice(0, 120) + (h.length > 120 ? '…' : '') : '-')); + }); + const fr = prev.udp_frame_hex || {}; + lines.push('=== Полный UDP payload: канал+слот+NRZI (hex) ==='); + ['18', '19', '24A', '24B'].forEach(k => { + const h = fr[k]; + lines.push(k + ': ' + (h ? h.length + ' hex — ' + h.slice(0, 140) + (h.length > 140 ? '…' : '') : '-')); + }); + return lines.join('\n'); +} + +function tpSetMsg(el, text, ok) { + if (!el) return; + el.textContent = text || ''; + el.classList.remove('ok', 'err'); + if (text) el.classList.add(ok ? 'ok' : 'err'); +} + +async function loadTransponderPage() { + const msg = document.getElementById('tp-msg'); + try { + const r = await fetch('/api/transponder'); + const d = await tpParseJsonResponse(r); + if (d._empty || d.ok === false) { + tpSetMsg(msg, d.error || 'Пустой ответ API', false); + return; + } + tpApplyConfig(d.config); + const encSel = document.getElementById('tp-nrzi-encoder'); + if (encSel) { + const ok = !!d.aistx_phy_available; + Array.from(encSel.options).forEach(function(o) { + if (o.value === 'aistx') o.disabled = !ok; + }); + if (!ok && encSel.value === 'aistx') encSel.value = 'ais_phy'; + } + const own = d.ownship || {}; + const hint = document.getElementById('tp-ownship-hint'); + if (hint) { + if (own.lat != null && own.lon != null) { + hint.textContent = own.lat.toFixed(5) + ', ' + own.lon.toFixed(5) + + ' | COG ' + (own.course != null ? own.course : '—') + + ' | SOG ' + (own.speed != null ? own.speed : '—'); + } else { + hint.textContent = 'Нет фикса'; + } + } + tpSetMsg(msg, '', true); + } catch (e) { + tpSetMsg(msg, 'Загрузка: ' + e.message, false); + } +} + +async function tpDoPreview() { + const out = document.getElementById('tp-preview-out'); + const msg = document.getElementById('tp-msg'); + const sn = parseInt(document.getElementById('tp-slot-number').value, 10); + if (isNaN(sn) || sn < 0 || sn > 2249) { + tpSetMsg(msg, 'Слот 0–2249', false); + return; + } + tpSetMsg(msg, 'Превью…', true); + try { + const r = await fetch('/api/transponder/preview', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(tpCollectConfig()), + }); + const d = await tpParseJsonResponse(r); + if (!d.ok) { + tpSetMsg(msg, d.error || 'Ошибка', false); + return; + } + out.textContent = tpFormatPreview(d.preview); + tpSetMsg(msg, 'Превью обновлено', true); + } catch (e) { + tpSetMsg(msg, e.message, false); + } +} + +async function tpDoSave() { + const msg = document.getElementById('tp-msg'); + try { + const r = await fetch('/api/transponder', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(tpCollectConfig()), + }); + const d = await tpParseJsonResponse(r); + if (!d.ok && d.error) { + tpSetMsg(msg, d.error, false); + return; + } + if (d.config) tpApplyConfig(d.config); + tpSetMsg(msg, 'Сохранено', true); + } catch (e) { + tpSetMsg(msg, e.message, false); + } +} + +async function tpDoGpioPulseOnce() { + const msg = document.getElementById('tp-msg'); + tpSetMsg(msg, 'Импульс GPIO…', true); + try { + const r = await fetch('/api/transponder/gpio_pulse', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(tpCollectConfig()), + }); + const d = await tpParseJsonResponse(r); + if (!d.ok) { + tpSetMsg(msg, d.error || 'Ошибка GPIO', false); + return; + } + const p = d.pulse || {}; + tpSetMsg(msg, 'GPIO: ok (code ' + (p.returncode != null ? p.returncode : 0) + ')', true); + } catch (e) { + tpSetMsg(msg, e.message, false); + } +} + +async function tpDoSend(which) { + const msg = document.getElementById('tp-msg'); + const sn = parseInt(document.getElementById('tp-slot-number').value, 10); + if (isNaN(sn) || sn < 0 || sn > 2249) { + tpSetMsg(msg, 'Слот 0–2249', false); + return; + } + const body = Object.assign({}, tpCollectConfig(), { which }); + tpSetMsg(msg, 'Отправка…', true); + try { + const r = await fetch('/api/transponder/send', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body), + }); + const d = await tpParseJsonResponse(r); + if (!d.ok) { + tpSetMsg(msg, d.error || 'Ошибка', false); + return; + } + const res = d.result || {}; + const line = tpFormatSendResult(res); + tpSetMsg(msg, line || 'Готово', !(res.errors && res.errors.length)); + } catch (e) { + tpSetMsg(msg, e.message, false); + } +} + +(function initTransponderUi() { + const save = document.getElementById('tp-save'); + const preview = document.getElementById('tp-preview'); + if (!save || !preview) return; + save.addEventListener('click', () => tpDoSave()); + preview.addEventListener('click', () => tpDoPreview()); + document.getElementById('tp-send-18').addEventListener('click', () => tpDoSend('18')); + document.getElementById('tp-send-19').addEventListener('click', () => tpDoSend('19')); + document.getElementById('tp-send-24a').addEventListener('click', () => tpDoSend('24A')); + document.getElementById('tp-send-24b').addEventListener('click', () => tpDoSend('24B')); + document.getElementById('tp-send-broadcast').addEventListener('click', () => tpDoSend('broadcast')); + const gpioOnce = document.getElementById('tp-gpio-pulse-once'); + if (gpioOnce) gpioOnce.addEventListener('click', () => tpDoGpioPulseOnce()); + const rawBtn = document.getElementById('tp-send-raw'); + if (rawBtn) rawBtn.addEventListener('click', () => tpDoSendRaw()); +})(); + +async function tpDoSendRaw() { + const msg = document.getElementById('tp-msg'); + const hex = document.getElementById('tp-raw-hex').value; + const channel = document.getElementById('tp-slot-channel').value; + const slot = parseInt(document.getElementById('tp-slot-number').value, 10); + if (isNaN(slot) || slot < 0 || slot > 2249) { + tpSetMsg(msg, 'Слот 0–2249', false); + return; + } + if (!hex.trim()) { + tpSetMsg(msg, 'Введите hex', false); + return; + } + tpSetMsg(msg, 'Отправка…', true); + try { + const r = await fetch('/api/transponder/send_raw', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(Object.assign({}, tpCollectConfig(), { nrzi_hex: hex, channel, slot })), + }); + const d = await tpParseJsonResponse(r); + if (!d.ok) { + tpSetMsg(msg, d.error || 'Ошибка', false); + return; + } + const res = d.result || {}; + const line = tpFormatSendResult(res); + tpSetMsg(msg, line || 'Готово', !(res.errors && res.errors.length)); + } catch (e) { + tpSetMsg(msg, e.message, false); + } +} + +function loadStylesheet(href) { + return new Promise((resolve, reject) => { + const l = document.createElement('link'); + l.rel = 'stylesheet'; + l.href = href; + l.onload = () => resolve(); + l.onerror = () => reject(new Error('css')); + document.head.appendChild(l); + }); +} +function loadScript(src) { + return new Promise((resolve, reject) => { + const s = document.createElement('script'); + s.src = src; + s.onload = resolve; + s.onerror = () => reject(new Error('script')); + document.head.appendChild(s); + }); +} + +let _consoleInitPromise = null; +function initConsole() { + if (window._consoleInited) { + if (window._fitTerminal) setTimeout(() => window._fitTerminal(), 80); + return Promise.resolve(); + } + if (_consoleInitPromise) return _consoleInitPromise; + _consoleInitPromise = doInitConsole(); + return _consoleInitPromise; +} + +async function doInitConsole() { + try { + const elUnavailable = document.getElementById('terminal-unavailable'); + const elWrap = document.getElementById('terminal-wrap'); + const elStatus = document.getElementById('console-status'); + let cfg; + try { + const r = await fetch('/api/terminal'); + cfg = await r.json(); + } catch (e) { + elUnavailable.style.display = 'block'; + elUnavailable.textContent = 'Не удалось получить настройки терминала.'; + elStatus.textContent = 'ошибка'; + return; + } + if (!cfg.pty) { + elUnavailable.style.display = 'block'; + elUnavailable.innerHTML = 'Интерактивная консоль доступна только на устройстве под Linux (PTY). На Windows shell в браузере не подключается.'; + elStatus.textContent = 'недоступно'; + window._consoleInited = true; + return; + } + if (!cfg.ws) { + elUnavailable.style.display = 'block'; + elUnavailable.textContent = 'Установите зависимость: pip install flask-sock'; + elStatus.textContent = 'нет WS'; + window._consoleInited = true; + return; + } + + try { + await loadStylesheet('/static/xterm/xterm.css'); + await loadScript('/static/xterm/xterm.min.js'); + await loadScript('/static/xterm/xterm-addon-fit.min.js'); + } catch (e) { + elUnavailable.style.display = 'block'; + elUnavailable.textContent = 'Не удалось загрузить xterm.js (проверьте сеть / CDN).'; + elStatus.textContent = 'ошибка'; + return; + } + + const Term = window.Terminal; + /* UMD xterm-addon-fit: window.FitAddon — это модуль { FitAddon: class }, не конструктор */ + const FitAddonMod = window.FitAddon; + const FitAddonCtor = (FitAddonMod && typeof FitAddonMod.FitAddon === 'function') + ? FitAddonMod.FitAddon + : (typeof FitAddonMod === 'function' ? FitAddonMod : null); + if (!Term || !FitAddonCtor) { + elUnavailable.style.display = 'block'; + elUnavailable.textContent = 'xterm: неверные глобалы после загрузки скриптов.'; + elStatus.textContent = 'ошибка'; + return; + } + + elUnavailable.style.display = 'none'; + elWrap.style.display = 'block'; + + const term = new Term({ + cursorBlink: true, + fontSize: 14, + fontFamily: "'JetBrains Mono', 'Cascadia Mono', 'Consolas', monospace", + theme: { + background: '#0d1117', + foreground: '#e0e0e0', + cursor: '#d2ff1a', + cursorAccent: '#1a1a2e', + selectionBackground: '#264f78' + } + }); + const fitAddon = new FitAddonCtor(); + term.loadAddon(fitAddon); + term.open(elWrap); + fitAddon.fit(); + + const proto = location.protocol === 'https:' ? 'wss:' : 'ws:'; + const ws = new WebSocket(proto + '//' + location.host + '/ws/terminal'); + ws.binaryType = 'arraybuffer'; + + ws.onopen = () => { + elStatus.textContent = 'подключено'; + ws.send(JSON.stringify({ type: 'resize', cols: term.cols, rows: term.rows })); + }; + ws.onclose = () => { elStatus.textContent = 'отключено'; }; + ws.onerror = () => { elStatus.textContent = 'ошибка соединения'; }; + + ws.onmessage = (ev) => { + const data = ev.data; + if (data instanceof ArrayBuffer) { + term.write(new Uint8Array(data)); + } else if (typeof Blob !== 'undefined' && data instanceof Blob) { + data.arrayBuffer().then(buf => term.write(new Uint8Array(buf))); + } else { + term.write(data); + } + }; + + term.onData(data => { + if (ws.readyState === WebSocket.OPEN) ws.send(data); + }); + term.onResize(({ cols, rows }) => { + if (ws.readyState === WebSocket.OPEN) { + ws.send(JSON.stringify({ type: 'resize', cols, rows })); + } + }); + + window._fitTerminal = () => { try { fitAddon.fit(); } catch(e) {} }; + window.addEventListener('resize', () => { + if (currentTab === 'console' && window._fitTerminal) window._fitTerminal(); + }); + + window._consoleInited = true; + } finally { + _consoleInitPromise = null; + } +} + +// ===================== Map init ===================== +L.Icon.Default.imagePath = '/static/leaflet/images/'; +const EMPTY_TILE = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=='; + +/** Текст внутри SVG (не HTML). */ +function _vtSvgEscapeText(s) { + return String(s) + .replace(/&/g, '&') + .replace(//g, '>'); +} + +// Векторная подложка в тон веб-UI: суша светлее, вода темнее — заметнее граница с фоном #0e1a2b +var _vtLand = '#323f58'; +var _vtWater = '#0c1424'; +var _vtWaterStroke = '#1a3d5c'; +var _vtCoastStroke = '#5c7fa3'; +var _vtWaterway = '#3d5d78'; +var _vtRoad = '#5a6578'; +var _vtBuilding = '#2c3548'; +var _vtGreen = '#2a3d34'; +var _vtPark = '#263d30'; +var _vtLabelFill = '#c9d1d9'; +var _vtLabelHalo = '#0e1a2b'; + +/** + * Leaflet.VectorGrid рисует подписи точек только через L.icon + iconUrl. + * Дубли по границам тайлов — ограничение MVT; уменьшаем шум: высокий minZoom, только нужные классы. + */ +function _vtTextLabelIcon(name, zoom, minZoom) { + if (zoom < minZoom || !name || typeof name !== 'string') return null; + const fs = zoom <= 7 ? 10 : zoom <= 10 ? 11 : 12; + const padX = 6; + // 0.52 занижало ширину для кириллицы / жирного шрифта → текст обрезался по viewBox SVG. + let nonAscii = 0; + for (let i = 0; i < name.length; i++) { + if (name.charCodeAt(i) > 127) nonAscii++; + } + const perChar = fs * (nonAscii > 0 ? 0.72 : 0.62); + const strokePad = 8; + const w = Math.min(640, Math.max(20, Math.ceil(name.length * perChar + padX * 2 + strokePad))); + const h = fs + 10; + const esc = _vtSvgEscapeText(name); + const svg = '' + + '' + esc + ''; + const url = 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg); + return L.icon({ + iconUrl: url, + iconSize: [w, h], + iconAnchor: [0, h], + }); +} + +function _vtPlaceName(properties) { + if (!properties || typeof properties !== 'object') return ''; + return ( + properties.name || + properties.name_en || + properties['name:latin'] || + properties['name:en'] || + properties['name:ru'] || + properties['name:de'] || + '' + ); +} + +/** Только крупные населённые пункты (без деревень, кварталов, POI). */ +function _vtCityPlaceLabelIcon(properties, zoom) { + const cls = String(properties.class || '').toLowerCase(); + if (cls) { + if (cls !== 'city' && cls !== 'town') return null; + if (properties.rank != null && Number(properties.rank) > 10) return null; + return _vtTextLabelIcon(_vtPlaceName(properties), zoom, 7); + } + // Простые тайлы без class: только с z≥8, отсекаем типичные мелкие типы + if (zoom < 8) return null; + const sub = String(properties.subclass || properties.type || '').toLowerCase(); + if (['village', 'hamlet', 'suburb', 'quarter', 'neighbourhood', 'locality', 'isolated_dwelling'].indexOf(sub) >= 0) { + return null; + } + return _vtTextLabelIcon(_vtPlaceName(properties), zoom, 8); +} + +/** Подписи только рек / ручьёв / каналов (не озёра/моря). */ +function _vtRiverNameLabelIcon(properties, zoom) { + const cls = String(properties.class || '').toLowerCase(); + if (['river', 'stream', 'canal'].indexOf(cls) < 0) return null; + if (properties.rank != null && Number(properties.rank) > 4) return null; + return _vtTextLabelIcon(_vtPlaceName(properties), zoom, 10); +} + +function _vtWaterNameLayerStyle(p, z) { + const icon = _vtRiverNameLabelIcon(p, z); + if (!icon) return []; + return {icon: icon}; +} + +function _vtWaterwayLineStyle(p, z) { + var w = z < 6 ? 0.4 : z < 9 ? 0.65 : 0.95; + return {weight: w, color: _vtWaterway, opacity: 0.82, fill: false, fillOpacity: 0}; +} + +function _vtRoadLineStyle(p, z) { + var w = z < 6 ? 0.5 : z < 8 ? 0.85 : 1.15; + return {weight: w, color: _vtRoad, opacity: 0.7, fill: false, fillOpacity: 0}; +} + +/** Береговая линия (LineString). Несколько имён слоёв — у разных сборок planet/OSM по-разному. */ +function _vtCoastlineLineStyle(p, z) { + var w = z < 8 ? 0.85 : 1.15; + return { + fill: false, + fillOpacity: 0, + weight: w, + color: _vtCoastStroke, + opacity: 0.88, + lineCap: 'round', + lineJoin: 'round', + }; +} + +/** + * Слой water в planet-часто смешанный: Polygon + LineString + Point. + * Точки — в основном seamark (мосты, ограничения по высоте), паромы, slipway: дают «кружки цвета воды». + * В VectorGrid PointSymbolizer: _radius = style.radius || defaultRadius — при radius: 0 срабатывает дефолт ~10px. + */ +function _vtWaterLayerPointLikeProps(p) { + if (!p || typeof p !== 'object') return false; + if (p.amenity === 'ferry_terminal' || p.leisure === 'slipway' || p.railway === 'ferry_terminal' || p.ferry === 'yes') { + return true; + } + for (var k in p) { + if (Object.prototype.hasOwnProperty.call(p, k) && k.indexOf('seamark:') === 0) { + return true; + } + } + return false; +} + +function _vtWaterLayerStyle(properties) { + if (_vtWaterLayerPointLikeProps(properties)) { + return []; + } + return { + fill: true, + weight: 0.45, + color: _vtWaterStroke, + opacity: 0.85, + fillColor: _vtWater, + fillOpacity: 1, + radius: 0.01, + }; +} + +const map = L.map('map', { + background: '#0e1a2b', + maxZoom: 19, + // Critical for performance with many polylines/polygons at high zoom. + preferCanvas: true, + // leaflet-rotate plugin + rotate: true, + // leaflet-rotate.js enables this by default; we use our own compass UI. + rotateControl: false, + bearing: 0, +}).setView([55.751244, 37.618423], 10); + +// Put AIS/aux markers into a pane that does NOT rotate with the map. +// leaflet-rotate creates `norotatePane`; if not present we fall back to default markerPane. +let AIS_MARKER_PANE = null; +try { + const nr = map.getPane && map.getPane('norotatePane'); + if (nr) { + AIS_MARKER_PANE = 'aisMarkerPane'; + if (!map.getPane(AIS_MARKER_PANE)) { + map.createPane(AIS_MARKER_PANE, nr); + map.getPane(AIS_MARKER_PANE).style.zIndex = 610; // above tiles/overlays, under popups + } + } +} catch (e) { AIS_MARKER_PANE = null; } + +function _ensureAisMarkerPane(mk) { + try { + if (!AIS_MARKER_PANE || !mk || !mk.options || mk.options.pane === AIS_MARKER_PANE) return; + // Pane is effectively applied on add; re-add to move existing markers. + const wasOnMap = !!(map && map.hasLayer && map.hasLayer(mk)); + if (wasOnMap) mk.remove(); + mk.options.pane = AIS_MARKER_PANE; + if (wasOnMap) mk.addTo(map); + } catch (e) {} +} + +// ===================== Compass + map rotation ===================== +// Default is ON: the map rotates so the heading points up, which is the most +// useful mode on a vessel. Users can toggle it off via the compass button in +// #map-controls, the dial in #ownship-panel, or the HUD compass click. +let rotateMapByCompass = true; +try { + const _rmc = sGet('rotateMapByCompass', null); + if (_rmc != null) rotateMapByCompass = !!_rmc; +} catch (e) {} +let _lastOwnshipHeadingForRotate = null; +let _ownshipCompassUi = { wrap: null, btn: null, dial: null, arrow: null }; + +function _mapBearingDegSafe() { + try { return (map && typeof map.getBearing === 'function') ? (map.getBearing() || 0) : 0; } catch (e) { return 0; } +} + +function _applyMapRotation() { + try { + if (!map || typeof map.setBearing !== 'function') return; + const hd = (rotateMapByCompass && _lastOwnshipHeadingForRotate != null && !isNaN(_lastOwnshipHeadingForRotate)) + ? _lastOwnshipHeadingForRotate + : null; + // heading-up: rotate map counter to heading + map.setBearing(hd == null ? 0 : -hd); + } catch (e) {} +} + +function _setOwnshipCompassUi() { + const wrap = _ownshipCompassUi.wrap; + if (!wrap) return; + wrap.classList.toggle('compass--rotate-on', !!rotateMapByCompass); + const hd = (_lastOwnshipHeadingForRotate != null && !isNaN(_lastOwnshipHeadingForRotate)) ? _lastOwnshipHeadingForRotate : null; + // Compass indicates north: when map rotated by -hd, north appears at +hd on screen. + const a = (rotateMapByCompass && hd != null) ? hd : 0; + if (_ownshipCompassUi.arrow) _ownshipCompassUi.arrow.style.transform = 'rotate(' + (Math.round(a * 10) / 10) + 'deg)'; + if (_ownshipCompassUi.dial) _ownshipCompassUi.dial.classList.toggle('compass--no-heading', hd == null); +} + +// Shared toggle for "heading-up" (map rotates by compass). Used by: +// - #ownship-panel compass button + dial (desktop) +// - #map-controls #mc-compass (everywhere) +// - Clicking the HUD compass (#nhud-compass) as a quick shortcut +function _toggleRotateMapByCompass() { + rotateMapByCompass = !rotateMapByCompass; + try { sSet('rotateMapByCompass', rotateMapByCompass); } catch (e) {} + try { _setOwnshipCompassUi(); } catch (e) {} + try { _reflectCompassToggleUi(); } catch (e) {} + try { _applyMapRotation(); } catch (e) {} +} + +// Reflect the current state on the #map-controls compass button (active ring) +// and the HUD compass element (clickable cursor). +function _reflectCompassToggleUi() { + const mc = document.getElementById('mc-compass'); + if (mc) { + mc.classList.toggle('active', !!rotateMapByCompass); + mc.title = rotateMapByCompass + ? 'Heading-up: ВКЛ (нажмите, чтобы North-up)' + : 'North-up (нажмите, чтобы вращать карту по компасу)'; + } + const hc = document.getElementById('nhud-compass'); + if (hc) { + hc.classList.toggle('is-rotating-map', !!rotateMapByCompass); + } +} + +function _initOwnshipCompassUiOnce() { + try { + if (_ownshipCompassUi.wrap) return; + const btn = document.getElementById('btn-rotate-map'); + const dial = document.getElementById('os-compass-dial'); + const arrow = document.getElementById('os-compass-arrow'); + if (!btn || !dial || !arrow) return; + _ownshipCompassUi = { wrap: dial.closest('.os-compass') || dial, btn, dial, arrow }; + + btn.addEventListener('click', (e) => { e.preventDefault(); _toggleRotateMapByCompass(); }); + dial.addEventListener('dblclick', (e) => { e.preventDefault(); _toggleRotateMapByCompass(); }); + _setOwnshipCompassUi(); + } catch (e) {} +} +try { _initOwnshipCompassUiOnce(); } catch (e) {} + +// Initial UI reflection for controls that exist at page load. +document.addEventListener('DOMContentLoaded', () => { + try { _reflectCompassToggleUi(); } catch (e) {} +}); +// Also attach a click handler on the HUD compass once it's in the DOM. +document.addEventListener('DOMContentLoaded', () => { + const hc = document.getElementById('nhud-compass'); + if (hc && !hc.dataset.hcBound) { + hc.dataset.hcBound = '1'; + hc.style.cursor = 'pointer'; + hc.addEventListener('click', (e) => { e.preventDefault(); _toggleRotateMapByCompass(); }); + } +}); +// Apply initial rotation state right after map init (in case GPS already has a fix +// from a saved state or Android compass starts quickly). +try { setTimeout(() => { try { _applyMapRotation(); } catch (_) {} }, 100); } catch (e) {} + +// When the map bearing changes (programmatically or via gestures), keep ownship marker +// in sync even if no new GPS data arrived (e.g. during follow/compass updates). +try { + map.on('rotate', () => { + try { if (ownShipMarker) setOwnShipRotation(ownShipMarker, _lastOwnshipHeadingForRotate); } catch (e) {} + }); +} catch (e) {} + +const _vtBaseLayerStyles = { + // Локальные / planet_small слои (land, water, coastline, place) + land: {fill: true, weight: 0, fillColor: _vtLand, fillOpacity: 1}, + water: _vtWaterLayerStyle, + coastline: _vtCoastlineLineStyle, + coastlines: _vtCoastlineLineStyle, + coast_line: _vtCoastlineLineStyle, + ocean_coastline:_vtCoastlineLineStyle, + osm_coastline: _vtCoastlineLineStyle, + water_point: [], + ocean_point: [], + marine_point: [], + // place: function (properties, zoom) { + // const icon = _vtCityPlaceLabelIcon(properties, zoom); + // if (!icon) return []; + // return {icon: icon}; + // }, + place: [], + // Линии воды / дорог (явный stroke, без синего Leaflet по умолчанию) + waterway: _vtWaterwayLineStyle, + stream: _vtWaterwayLineStyle, + hydrology: _vtWaterwayLineStyle, + transportation: _vtRoadLineStyle, + road: _vtRoadLineStyle, + roads: _vtRoadLineStyle, + street: _vtRoadLineStyle, + streets: _vtRoadLineStyle, + highway: _vtRoadLineStyle, + bridge: _vtRoadLineStyle, + tunnel: _vtRoadLineStyle, + railway: _vtRoadLineStyle, + rail: _vtRoadLineStyle, + landcover: {fill: true, weight: 0, fillColor: _vtGreen, fillOpacity: 0.45}, + landuse: {fill: true, weight: 0, fillColor: _vtLand, fillOpacity: 0.5}, + park: {fill: true, weight: 0, fillColor: _vtPark, fillOpacity: 0.5}, + transportation_name: [], + // water_name: _vtWaterNameLayerStyle, + // waterway_name: _vtWaterNameLayerStyle, + water_name: [], + waterway_name: [], + building: {fill: true, weight: 0, fillColor: _vtBuilding, fillOpacity: 0.65}, + // boundary: function(p, z) { + // var admin = p.admin_level || 2; + // if (admin > 4) return []; + // return {weight: admin <= 2 ? 1.2 : 0.65, color: '#5c6b80', opacity: 0.45, dashArray: '6,3', fill: false, fillOpacity: 0}; + // }, + boundary: {weight: 1, color: '#5c6b80', opacity: 0.35, fill: false}, + housenumber: [], + poi: [], + mountain_peak: [], + aerodrome_label:[], + aeroway: {weight: 0.75, color: _vtRoad, opacity: 0.5, fill: false, fillOpacity: 0}, + globallandcover:{fill: true, weight: 0, fillColor: _vtGreen, fillOpacity: 0.35}, +}; + +const _vtLayerStyles = new Proxy(_vtBaseLayerStyles, { + get(target, prop) { + if (Object.prototype.hasOwnProperty.call(target, prop)) { + return target[prop]; + } + if (typeof prop !== 'string') { + return target[prop]; + } + // Слой есть в тайле, но нет в _vtBaseLayerStyles: не рисуем. + // Иначе точки превращаются в светлые CircleMarker («белые кружки» по всей карте). + return function () { + return []; + }; + }, +}); + +// Общие tweaks для всех TileLayer-ов: keepBuffer=4 — меньше просадок при pan'е, +// updateWhenZooming=false + updateWhenIdle=true — не шлём сотню запросов во время pinch-zoom. +const _tileTweaks = { + keepBuffer: 4, + updateWhenZooming: false, + updateWhenIdle: true, +}; + +const vectorLayer = L.vectorGrid.protobuf('/vtiles/{z}/{x}/{y}.pbf', Object.assign({}, _tileTweaks, { + maxZoom: 19, + // Локальные MVT сгенерированы до z13: при z>13 тот же растр тайла масштабируется (overzoom). + maxNativeZoom: 13, + rendererFactory: L.canvas.tile, + vectorTileLayerStyles: _vtLayerStyles, + interactive: false +})); + +const rasterLayer = L.tileLayer('/tiles/{z}/{x}/{y}.png', Object.assign({}, _tileTweaks, { + maxZoom: 19, + errorTileUrl: EMPTY_TILE +})); +vectorLayer.addTo(map); + +// Panes for z-index control (Leaflet default panes: overlayPane ~400, markerPane ~600) +try { + if (!map.getPane('vesselDetailPane')) { + map.createPane('vesselDetailPane'); + map.getPane('vesselDetailPane').style.zIndex = 650; // above overlays, below popups + } +} catch (e) {} + +// Shared Canvas renderer for vector overlays (trails/vectors/hulls/antenna). +// This avoids SVG DOM bloat and reduces input jank at high zoom. +const _overlayCanvasRenderer = L.canvas({ padding: 0.5 }); + +const osmLayer = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', Object.assign({}, _tileTweaks, { + maxZoom: 19, + attribution: '© OpenStreetMap contributors', + crossOrigin: true +})); +const cartoPositron = L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', Object.assign({}, _tileTweaks, { + maxZoom: 20, + subdomains: 'abcd', + attribution: '© OpenStreetMap contributors © CARTO', + crossOrigin: true +})); +const cartoDark = L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', Object.assign({}, _tileTweaks, { + maxZoom: 20, + subdomains: 'abcd', + attribution: '© OpenStreetMap contributors © CARTO', + crossOrigin: true +})); +const esriWorldImagery = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', Object.assign({}, _tileTweaks, { + maxZoom: 19, + attribution: 'Tiles © Esri', + crossOrigin: true +})); + +const baseLayers = { + 'Вектор': vectorLayer, + 'Локальные': rasterLayer, + 'OSM': osmLayer, + 'CARTO Light': cartoPositron, + 'CARTO Dark': cartoDark, + 'Esri Спутник': esriWorldImagery +}; +L.control.layers(baseLayers, null, {position: 'topright'}).addTo(map); + +function baseLayerNameByObj(layer) { + for (const [name, ly] of Object.entries(baseLayers)) { + if (ly === layer) return name; + } + return null; +} +function applyBaseLayerByName(name) { + const target = baseLayers[name]; + if (!target) return false; + for (const ly of Object.values(baseLayers)) { + if (map.hasLayer(ly)) map.removeLayer(ly); + } + target.addTo(map); + return true; +} +try { + const savedBase = sGet('baseLayer', ''); + if (savedBase && savedBase !== 'Вектор') applyBaseLayerByName(savedBase); +} catch (e) {} +map.on('baselayerchange', (e) => { + const nm = baseLayerNameByObj(e && e.layer); + if (nm) sSet('baseLayer', nm); +}); + +const vesselMarkers = new Map(); +const iconWidth = 17, iconHeight = 30; +const iconAnchorX = iconWidth / 2, iconAnchorY = iconHeight; + +// ===================== Base stations & buoys (separate layers) ===================== +const baseStationMarkers = new Map(); // mmsi -> marker +const buoyMarkers = new Map(); // mmsi -> marker +let lastBaseStations = []; +let lastBuoys = []; +let lastVisibleVessels = []; +let lastAnyVessels = []; + +function _mapGetByMmsi(src, mmsi) { + if (!src || mmsi == null) return null; + if (src.has(mmsi)) return src.get(mmsi); + const key = String(mmsi); + for (const [k, v] of src.entries()) { + if (String(k) === key) return v; + } + return null; +} + +function _markerForTargetMmsi(mmsi) { + return _mapGetByMmsi(vesselMarkers, mmsi) || + _mapGetByMmsi(baseStationMarkers, mmsi) || + _mapGetByMmsi(buoyMarkers, mmsi); +} + +function _decorateAisTarget(v) { + if (!v) return null; + const out = Object.assign({}, v); + if (out.vessel_class === 'BS' || out.kind === 'base_station') { + out.vessel_class = 'BS'; + out.kind = 'base_station'; + out.shipname = out.shipname || 'Базовая станция'; + out.virtual = !!out.virtual; + out.synthetic = !!out.synthetic; + } else if (out.vessel_class === 'N' || out.kind === 'buoy') { + out.vessel_class = 'N'; + out.kind = 'buoy'; + out.shipname = out.shipname || out.name || 'Буёк / СНО'; + out.aton_type_label = out.aton_type_label || atonTypeLabel(out.aton_type); + out.virtual = !!out.virtual; + out.synthetic = !!out.synthetic; + out.off_position = !!out.off_position; + } else { + out.kind = out.kind || 'vessel'; + } + const os = getOwnShipPos(); + if (os && out.lat != null && out.lon != null) { + out._distNM = haversineNM(os.lat, os.lon, out.lat, out.lon); + } + return out; +} + +function getAisTargetByMmsi(mmsi) { + const v = _mapGetByMmsi(vesselLastData, mmsi) || _mapGetByMmsi(AisHub.vessels, mmsi); + if (v) return _decorateAisTarget(Object.assign({ kind: 'vessel' }, v)); + const bs = _mapGetByMmsi(AisHub.baseStations, mmsi) || + (lastBaseStations || []).find(x => String(x && x.mmsi) === String(mmsi)); + if (bs) return _decorateAisTarget(Object.assign({ vessel_class: 'BS', kind: 'base_station' }, bs)); + const aton = _mapGetByMmsi(AisHub.atons, mmsi) || + (lastBuoys || []).find(x => String(x && x.mmsi) === String(mmsi)); + if (aton) return _decorateAisTarget(Object.assign({ vessel_class: 'N', kind: 'buoy' }, aton)); + return null; +} + +function _aidModeClass(item) { + if (item && item.virtual) return 'ais-aid--virtual'; + if (item && item.synthetic) return 'ais-aid--synthetic'; + return 'ais-aid--real'; +} + +function _aidModeLabel(item) { + if (item && item.virtual) return 'виртуальное'; + if (item && item.synthetic) return 'синтетическое'; + return 'реальное'; +} + +function _atonIconMeta(type) { + const c = parseInt(type, 10); + const fixed = c >= 5 && c <= 19; + const floating = c === 4 || (c >= 20 && c <= 31); + const nature = fixed ? 'fixed' : (floating ? 'floating' : 'generic'); + switch (c) { + case 2: return { style: 'racon', label: 'R', nature }; + case 3: return { style: 'structure', label: 'ПЛ', nature }; + case 4: return { style: 'wreck', label: 'АВ', nature }; + case 5: + case 6: return { style: 'light', label: 'ОГ', nature }; + case 7: return { style: 'leading', label: 'ПС', nature }; + case 8: return { style: 'leading', label: 'ЗС', nature }; + case 9: + case 20: return { style: 'cardinal-n', label: 'С', nature }; + case 10: + case 21: return { style: 'cardinal-e', label: 'В', nature }; + case 11: + case 22: return { style: 'cardinal-s', label: 'Ю', nature }; + case 12: + case 23: return { style: 'cardinal-w', label: 'З', nature }; + case 13: + case 24: return { style: 'lateral-port', label: 'Л', nature }; + case 14: + case 25: return { style: 'lateral-starboard', label: 'П', nature }; + case 15: + case 26: return { style: 'preferred-port', label: 'ЛК', nature }; + case 16: + case 27: return { style: 'preferred-starboard', label: 'ПК', nature }; + case 17: + case 28: return { style: 'isolated-danger', label: '!', nature }; + case 18: + case 29: return { style: 'safe-water', label: 'ЧВ', nature }; + case 19: + case 30: return { style: 'special', label: '*', nature }; + case 31: return { style: 'light-vessel', label: 'ПМ', nature }; + case 1: return { style: 'reference', label: 'ОТ', nature }; + default: return { style: 'generic', label: 'СНО', nature }; + } +} + +function getBaseStationDivIcon(b) { + const mode = _aidModeClass(b); + const label = _aidModeLabel(b); + const key = 'bs|' + mode; + const icon = L.divIcon({ + className: 'ais-bs-divicon ' + mode, + iconSize: [34, 34], + iconAnchor: [17, 17], + html: '
' + + '
', + }); + icon._aisIconKey = key; + return icon; +} + +function getBuoyDivIcon(b) { + const meta = _atonIconMeta(b && b.aton_type); + const mode = _aidModeClass(b); + const off = b && b.off_position ? ' ais-aid--offposition' : ''; + const key = 'aton|' + meta.style + '|' + meta.nature + '|' + mode + off; + const title = (b && (b.aton_type_label || atonTypeLabel(b.aton_type))) || 'Тип СНО не указан'; + const icon = L.divIcon({ + className: 'ais-aton-divicon ' + mode + off, + iconSize: [32, 32], + iconAnchor: [16, 16], + html: '
' + + '' + escHtml(meta.label) + '
', + }); + icon._aisIconKey = key; + return icon; +} + +function updateBaseStations() { + try { + const now = Math.floor(Date.now() / 1000); + const list = Array.from(AisHub.baseStations.values()) + .filter(b => !_isTargetExpiredByTimestamp(b, now)); + lastBaseStations = list.map(b => Object.assign({}, b, { + vessel_class: 'BS', + kind: 'base_station', + shipname: 'Базовая станция', + callsign: null, + shiptype: null, + virtual: !!b.virtual, + synthetic: !!b.synthetic, + })); + const visible = new Set(); + for (const b of list) { + if (!b || b.lat == null || b.lon == null) continue; + const mmsi = b.mmsi; + visible.add(mmsi); + if (baseStationMarkers.has(mmsi)) { + const mk = baseStationMarkers.get(mmsi); + _ensureAisMarkerPane(mk); + mk.setLatLng([b.lat, b.lon]); + const icon = getBaseStationDivIcon(b); + if (mk._aisIconKey !== icon._aisIconKey) { + mk.setIcon(icon); + mk._aisIconKey = icon._aisIconKey; + } + } else { + const icon = getBaseStationDivIcon(b); + const mk = L.marker([b.lat, b.lon], { icon, zIndexOffset: 500, pane: AIS_MARKER_PANE || undefined }).addTo(map); + mk._aisIconKey = icon._aisIconKey; + mk.on('click', () => { try { VesselInfoWindow.open(mmsi); } catch (_) {} }); + baseStationMarkers.set(mmsi, mk); + } + } + for (const [mmsi, mk] of baseStationMarkers.entries()) { + if (!visible.has(mmsi)) { + if (String(mmsi) === String(selectedMmsi)) selectedMmsi = null; + try { if (String(VesselInfoWindow.currentMmsi()) === String(mmsi)) VesselInfoWindow.close(); } catch (_) {} + map.removeLayer(mk); + baseStationMarkers.delete(mmsi); + } + } + for (const [mmsi, b] of AisHub.baseStations.entries()) { + if (_isTargetExpiredByTimestamp(b, now)) AisHub.baseStations.delete(mmsi); + } + } catch (e) { /* ignore */ } +} + +function updateBuoys() { + try { + const now = Math.floor(Date.now() / 1000); + const list = Array.from(AisHub.atons.values()) + .filter(b => !_isTargetExpiredByTimestamp(b, now)); + lastBuoys = list.map(b => Object.assign({}, b, { + vessel_class: 'N', + kind: 'buoy', + shipname: b && b.name ? b.name : 'Буёк / СНО', + aton_type_label: atonTypeLabel(b && b.aton_type), + callsign: null, + shiptype: null, + virtual: !!(b && b.virtual), + synthetic: !!(b && b.synthetic), + off_position: !!(b && b.off_position), + })); + const visible = new Set(); + for (const b of list) { + if (!b || b.lat == null || b.lon == null) continue; + const mmsi = b.mmsi; + visible.add(mmsi); + const typeLabel = atonTypeLabel(b.aton_type); + b.aton_type_label = typeLabel; + if (buoyMarkers.has(mmsi)) { + const mk = buoyMarkers.get(mmsi); + _ensureAisMarkerPane(mk); + mk.setLatLng([b.lat, b.lon]); + const icon = getBuoyDivIcon(b); + if (mk._aisIconKey !== icon._aisIconKey) { + mk.setIcon(icon); + mk._aisIconKey = icon._aisIconKey; + } + } else { + const icon = getBuoyDivIcon(b); + const mk = L.marker([b.lat, b.lon], { icon, zIndexOffset: 450, pane: AIS_MARKER_PANE || undefined }).addTo(map); + mk._aisIconKey = icon._aisIconKey; + mk.on('click', () => { try { VesselInfoWindow.open(mmsi); } catch (_) {} }); + buoyMarkers.set(mmsi, mk); + } + } + for (const [mmsi, mk] of buoyMarkers.entries()) { + if (!visible.has(mmsi)) { + if (String(mmsi) === String(selectedMmsi)) selectedMmsi = null; + try { if (String(VesselInfoWindow.currentMmsi()) === String(mmsi)) VesselInfoWindow.close(); } catch (_) {} + map.removeLayer(mk); + buoyMarkers.delete(mmsi); + } + } + for (const [mmsi, b] of AisHub.atons.entries()) { + if (_isTargetExpiredByTimestamp(b, now)) AisHub.atons.delete(mmsi); + } + } catch (e) { /* ignore */ } +} + +// ===================== Vessel motion overlays (vector + trail) ===================== +const VESSEL_PREDICT_SECONDS = 60; +const VESSEL_PREDICT_STEP_S = 5; +const VESSEL_TRAIL_KEEP_POINTS = 40; +const VESSEL_TRAIL_MIN_MOVE_M = 8; // reduce noise/jitter +const vesselVectors = new Map(); // mmsi -> L.Polyline +const vesselTrails = new Map(); // mmsi -> L.Polyline +const vesselHistory = new Map(); // mmsi -> Array<{lat:number, lon:number, ts:number}> +const vesselTrailRefMode = new Map(); // mmsi -> 'antenna' | 'center' + +function isFiniteNumber(x) { + return typeof x === 'number' && Number.isFinite(x); +} + +function destPointMeters(lat, lon, bearingDeg, distM) { + const R = 6371000; + const brng = bearingDeg * Math.PI / 180; + const φ1 = lat * Math.PI / 180, λ1 = lon * Math.PI / 180; + const δ = distM / R; + const sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1); + const sinδ = Math.sin(δ), cosδ = Math.cos(δ); + const sinφ2 = sinφ1 * cosδ + cosφ1 * sinδ * Math.cos(brng); + const φ2 = Math.asin(sinφ2); + const λ2 = λ1 + Math.atan2(Math.sin(brng) * sinδ * cosφ1, cosδ - sinφ1 * sinφ2); + return { lat: φ2 * 180 / Math.PI, lon: λ2 * 180 / Math.PI }; +} + +function haversineMetersLatLon(lat1, lon1, lat2, lon2) { + const R = 6371000; + const dLat = (lat2 - lat1) * Math.PI / 180; + const dLon = (lon2 - lon1) * Math.PI / 180; + const a = Math.sin(dLat/2)**2 + Math.cos(lat1*Math.PI/180)*Math.cos(lat2*Math.PI/180)*Math.sin(dLon/2)**2; + return 2 * R * Math.asin(Math.sqrt(a)); +} + +function rotToDegPerMin(rot) { + // We expect backend to provide ROT already in deg/min (AIS uses signed rate of turn). + // If it’s absent / not finite, treat as no turn. + if (!isFiniteNumber(rot)) return null; + return rot; +} + +function computePredictPath(lat, lon, courseDeg, speedKn, rotDegPerMin) { + if (!isFiniteNumber(lat) || !isFiniteNumber(lon)) return null; + if (!isFiniteNumber(courseDeg) || !isFiniteNumber(speedKn) || speedKn <= 0.05) return null; + + const stepS = Math.max(1, VESSEL_PREDICT_STEP_S); + const steps = Math.max(1, Math.floor(VESSEL_PREDICT_SECONDS / stepS)); + const metersPerSec = speedKn * 1852 / 3600; + const dStep = metersPerSec * stepS; + + let curLat = lat, curLon = lon; + const pts = [[curLat, curLon]]; + + const rot = rotToDegPerMin(rotDegPerMin); + const hasTurn = rot != null && Math.abs(rot) >= 0.2; // ignore tiny/noisy ROT + + for (let i = 1; i <= steps; i++) { + const tS = i * stepS; + const brg = hasTurn ? normalizeDeg(courseDeg + rot * (tS / 60)) : normalizeDeg(courseDeg); + const next = destPointMeters(curLat, curLon, brg, dStep); + curLat = next.lat; + curLon = next.lon; + pts.push([curLat, curLon]); + } + return pts; +} + +function getOrCreatePolyline(store, mmsi, opts) { + let pl = store.get(mmsi); + if (pl) return pl; + pl = L.polyline([], Object.assign({ renderer: _overlayCanvasRenderer }, opts)).addTo(map); + store.set(mmsi, pl); + return pl; +} + +function removeMotionOverlays(mmsi) { + const v = vesselVectors.get(mmsi); + if (v) { map.removeLayer(v); vesselVectors.delete(mmsi); } + const t = vesselTrails.get(mmsi); + if (t) { map.removeLayer(t); vesselTrails.delete(mmsi); } + vesselHistory.delete(mmsi); + vesselTrailRefMode.delete(mmsi); +} + +function updateVesselTrail(mmsi, lat, lon, ts) { + if (!isFiniteNumber(lat) || !isFiniteNumber(lon)) return; + const nowTs = isFiniteNumber(ts) ? ts : Math.floor(Date.now() / 1000); + let hist = vesselHistory.get(mmsi); + if (!hist) { hist = []; vesselHistory.set(mmsi, hist); } + + const last = hist.length ? hist[hist.length - 1] : null; + if (!last) { + hist.push({ lat, lon, ts: nowTs }); + } else { + const movedM = haversineMetersLatLon(last.lat, last.lon, lat, lon); + if (movedM >= VESSEL_TRAIL_MIN_MOVE_M) { + hist.push({ lat, lon, ts: nowTs }); + } else { + // If we didn’t move enough, still refresh timestamp to prevent “stale” tail decisions later. + last.ts = nowTs; + } + } + if (hist.length > VESSEL_TRAIL_KEEP_POINTS) hist.splice(0, hist.length - VESSEL_TRAIL_KEEP_POINTS); + + const pl = getOrCreatePolyline(vesselTrails, mmsi, { + color: '#4fc3f7', + weight: 2, + opacity: 0.65, + dashArray: '4 8', + lineCap: 'round', + interactive: false, + }); + pl.setLatLngs(hist.map(p => [p.lat, p.lon])); +} + +function updateVesselVector(mmsi, lat, lon, courseDeg, speedKn, rotDegPerMin) { + const path = computePredictPath(lat, lon, courseDeg, speedKn, rotDegPerMin); + if (!path) { + const pl = vesselVectors.get(mmsi); + if (pl) pl.setLatLngs([]); + return; + } + const pl = getOrCreatePolyline(vesselVectors, mmsi, { + color: '#d2ff1a', + weight: 2, + opacity: 0.9, + dashArray: null, + lineCap: 'round', + interactive: false, + }); + pl.setLatLngs(path); +} + +// ===================== Vessel detail overlays (true size hull + antenna point) ===================== +const VESSEL_DETAIL_ZOOM_MIN = 15; +const vesselLastData = new Map(); // mmsi -> last vessel object +const vesselHulls = new Map(); // mmsi -> L.Polygon +const vesselAntennas = new Map(); // mmsi -> L.CircleMarker + +function _numOrNull(v) { + if (v == null) return null; + const n = (typeof v === 'number') ? v : parseFloat(v); + return Number.isFinite(n) ? n : null; +} + +function _dimsFromVessel(v) { + const toBow = _numOrNull(v.to_bow); + const toStern = _numOrNull(v.to_stern); + const toPort = _numOrNull(v.to_port); + const toStar = _numOrNull(v.to_starboard); + if (![toBow, toStern, toPort, toStar].every(x => x != null && x > 0)) return null; + const lengthM = toBow + toStern; + const beamM = toPort + toStar; + if (!(lengthM > 0 && beamM > 0)) return null; + return { toBow, toStern, toPort, toStar, lengthM, beamM }; +} + +function _bearingForHull(v) { + const h = _numOrNull(v.heading); + const c = _numOrNull(v.course); + const s = _numOrNull(v.speed); + // Smart: when moving, COG is what user expects for rotation; when slow/stationary, heading is better. + const moving = s != null && !isNaN(s) && s >= 1.5; + const brg = moving ? (c != null ? c : h) : (h != null ? h : c); + return normalizeDeg(brg != null ? brg : null); +} + +function _centerlineFromAntenna(lat, lon, bearingDeg, dims) { + // Antenna can be offset from centerline. Positive is starboard. + const offStarM = (dims.toStar - dims.toPort) / 2; + return destPointMeters(lat, lon, normalizeDeg(bearingDeg + 90), offStarM); +} + +function _centerFromAntenna(lat, lon, bearingDeg, dims) { + // Center of hull relative to antenna: account for both longitudinal and lateral offset. + const cl = _centerlineFromAntenna(lat, lon, bearingDeg, dims); + const offFwdM = (dims.toBow - dims.toStern) / 2; + return destPointMeters(cl.lat, cl.lon, bearingDeg, offFwdM); +} + +function _hullPolygonFromAntenna(lat, lon, bearingDeg, dims, vesselClass) { + // AIS position is the GNSS antenna reference point. + // Build a simple "ship" polygon (with bow) in meters around that point. + const cl = _centerlineFromAntenna(lat, lon, bearingDeg, dims); + const halfBeam = (dims.toPort + dims.toStar) / 2; + const bowTip = destPointMeters(cl.lat, cl.lon, bearingDeg, dims.toBow); + const sternC = destPointMeters(cl.lat, cl.lon, normalizeDeg(bearingDeg + 180), dims.toStern); + const portBear = normalizeDeg(bearingDeg - 90); + const starBear = normalizeDeg(bearingDeg + 90); + + // For Class B at high zoom: simple triangle (tip + stern corners). + if (String(vesselClass || '').toUpperCase() === 'B') { + const sternStar = destPointMeters(sternC.lat, sternC.lon, starBear, halfBeam); + const sternPort = destPointMeters(sternC.lat, sternC.lon, portBear, halfBeam); + return [ + [bowTip.lat, bowTip.lon], + [sternStar.lat, sternStar.lon], + [sternPort.lat, sternPort.lon], + ]; + } + + // Bow shoulders: slightly behind the tip to form a pentagon (nose). + const minNose = 3.0; + const maxNose = Math.min(dims.toBow * 0.9, Math.max(6.0, dims.lengthM * 0.22)); + const noseLen = Math.max(minNose, Math.min(maxNose, dims.toBow * 0.65)); + const shoulderDist = Math.max(0, dims.toBow - noseLen); + const shoulderC = destPointMeters(cl.lat, cl.lon, bearingDeg, shoulderDist); + const bowPort = destPointMeters(shoulderC.lat, shoulderC.lon, portBear, halfBeam); + const bowStar = destPointMeters(shoulderC.lat, shoulderC.lon, starBear, halfBeam); + const sternStar = destPointMeters(sternC.lat, sternC.lon, starBear, halfBeam); + const sternPort = destPointMeters(sternC.lat, sternC.lon, portBear, halfBeam); + return [ + [bowTip.lat, bowTip.lon], + [bowStar.lat, bowStar.lon], + [sternStar.lat, sternStar.lon], + [sternPort.lat, sternPort.lon], + [bowPort.lat, bowPort.lon], + ]; +} + +function _ensureHull(mmsi, shiptype) { + let p = vesselHulls.get(mmsi); + if (p) return p; + p = L.polygon([], { + pane: 'vesselDetailPane', + renderer: _overlayCanvasRenderer, + color: '#000', + weight: 2, + opacity: 0.9, + fill: true, + fillColor: shiptypeToFillRgba(shiptype, null), + fillOpacity: 0.38, + interactive: false, + }).addTo(map); + vesselHulls.set(mmsi, p); + return p; +} + +function _ensureAntenna(mmsi) { + let c = vesselAntennas.get(mmsi); + if (c) return c; + c = L.circleMarker([0, 0], { + pane: 'vesselDetailPane', + renderer: _overlayCanvasRenderer, + radius: 3.5, + color: '#d2ff1a', + weight: 2, + opacity: 1, + fillColor: '#d2ff1a', + fillOpacity: 0.9, + interactive: false, + }).addTo(map); + vesselAntennas.set(mmsi, c); + return c; +} + +function removeVesselDetailOverlays(mmsi) { + const h = vesselHulls.get(mmsi); + if (h) { map.removeLayer(h); vesselHulls.delete(mmsi); } + const a = vesselAntennas.get(mmsi); + if (a) { map.removeLayer(a); vesselAntennas.delete(mmsi); } +} + +function updateVesselDetailOverlays(v) { + if (!v) return; + const mmsi = v.mmsi; + const lat = _numOrNull(v.lat); + const lon = _numOrNull(v.lon); + const z = map.getZoom(); + const mk = vesselMarkers.get(mmsi); + if (lat == null || lon == null || !mk) { removeVesselDetailOverlays(mmsi); return; } + + if (z < VESSEL_DETAIL_ZOOM_MIN) { + removeVesselDetailOverlays(mmsi); + mk.setOpacity(1); + return; + } + + const dims = _dimsFromVessel(v); + const brg = _bearingForHull(v); + if (!dims || brg == null) { + removeVesselDetailOverlays(mmsi); + mk.setOpacity(1); + return; + } + + const poly = _hullPolygonFromAntenna(lat, lon, brg, dims, v.vessel_class); + const hull = _ensureHull(mmsi, v.shiptype); + hull.setLatLngs(poly); + try { hull.setStyle({ fillColor: shiptypeToFillRgba(v.shiptype, v.nav_status) }); } catch (_) {} + const ant = _ensureAntenna(mmsi); + ant.setLatLng([lat, lon]); + + // Hide the simple marker when detailed overlay is visible. + mk.setOpacity(0); +} + +function _rgbaFromHex(hex, alpha) { + const s = String(hex || '').replace('#', ''); + const r = parseInt(s.slice(0, 2), 16); + const g = parseInt(s.slice(2, 4), 16); + const b = parseInt(s.slice(4, 6), 16); + return 'rgba(' + r + ',' + g + ',' + b + ',' + alpha + ')'; +} + +function vesselDisplayStyle(shiptype, navStatus) { + const c = parseInt(shiptype, 10); + const ns = parseInt(navStatus, 10); + const anchored = ns === 1 || ns === 5; + const restricted = ns === 3; + let color = '#9aa0a6'; + let stroke = '#111111'; + let label = 'Не указан'; + if (restricted) { + color = '#ff3045'; + stroke = '#111111'; + label = 'Ограниченная маневренность'; + } else if (!isNaN(c)) { + if (c === 30) { color = '#ff3045'; label = 'Рыболовное'; } + else if (c === 37) { color = '#d000ff'; label = 'Прогулочное'; } + else if (c >= 40 && c <= 49) { color = '#ffd31a'; stroke = '#7a5a00'; label = 'Высокоскоростное'; } + else if (c >= 50 && c <= 59) { color = '#00d7df'; stroke = '#005a60'; label = 'Буксир / спецсудно'; } + else if (c >= 60 && c <= 69) { color = '#3026df'; label = 'Пассажирское'; } + else if (c >= 70 && c <= 79) { color = '#19a64a'; label = 'Грузовое'; } + else if (c >= 80 && c <= 89) { color = '#e60018'; label = 'Танкер'; } + else if (c >= 90 && c <= 99) { color = '#f7f7f7'; stroke = '#111111'; label = 'Прочее'; } + else if (c >= 20 && c <= 29) { color = '#f7f7f7'; stroke = '#111111'; label = 'WIG / экраноплан'; } + else if (c >= 1 && c <= 19) { color = '#f7f7f7'; stroke = '#111111'; label = 'Зарезервировано'; } + else if (c >= 31 && c <= 36) { color = '#f7f7f7'; stroke = '#111111'; label = 'Тип 31-36'; } + else if (c >= 38 && c <= 39) { color = '#f7f7f7'; stroke = '#111111'; label = 'Зарезервировано'; } + else if (c >= 100) { color = '#f7f7f7'; stroke = '#111111'; label = 'Тип 100+'; } + } + return { color, stroke, anchored, restricted, label }; +} + +/** Полупрозрачная заливка по OpenCPN-подобным цветам ship type. */ +function shiptypeToFillRgba(shiptype, navStatus) { + return _rgbaFromHex(vesselDisplayStyle(shiptype, navStatus).color, 0.38); +} + +const _vesselSvgVB = { A: '0 0 88.5 152.73', B: '0 0 91.38 162.6' }; +const _vesselSvgPoly = { + A: '44.25 6.77 4.5 51.46 4.5 148.23 84 148.23 84 51.46 44.25 6.77', + B: '45.69 16.63 5.94 158.1 85.44 158.1 45.69 16.63', +}; +const vesselDivIconCache = new Map(); + +function vesselIconTintKey(vesselClass, shiptype, navStatus) { + const st = shiptype != null && shiptype !== '' ? String(shiptype) : '0'; + const ns = navStatus != null && navStatus !== '' ? String(navStatus) : ''; + return (vesselClass === 'A' ? 'A' : 'B') + ':' + st + ':' + ns; +} + +function getVesselDivIcon(vesselClass, shiptype, navStatus) { + const key = vesselIconTintKey(vesselClass, shiptype, navStatus); + let icon = vesselDivIconCache.get(key); + if (icon) return icon; + const isA = vesselClass === 'A'; + const vb = isA ? _vesselSvgVB.A : _vesselSvgVB.B; + const poly = isA ? _vesselSvgPoly.A : _vesselSvgPoly.B; + const style = vesselDisplayStyle(shiptype, navStatus); + if (style.restricted) { + const html = ''; + icon = L.divIcon({ html, iconSize: [18, 18], iconAnchor: [9, 9], popupAnchor: [0, -9], className: 'vessel-icon vessel-icon--svg vessel-icon--status' }); + } else if (style.anchored) { + const html = ''; + icon = L.divIcon({ html, iconSize: [18, 18], iconAnchor: [9, 9], popupAnchor: [0, -9], className: 'vessel-icon vessel-icon--svg vessel-icon--anchored' }); + } else { + const html = ''; + icon = L.divIcon({ + html, + iconSize: [iconWidth, iconHeight], + iconAnchor: [iconAnchorX, iconAnchorY], + popupAnchor: [0, -iconHeight], + className: 'vessel-icon vessel-icon--svg', + }); + } + vesselDivIconCache.set(key, icon); + return icon; +} + +function setIconRotation(marker, heading) { + if (!marker) return; + try { _ensureAisMarkerPane(marker); } catch (e) {} + // Store "true" heading for redraws. + marker._headingDeg = (heading != null && !isNaN(heading)) ? normalizeDeg(heading) : null; + + // Prefer leaflet-rotate's native per-marker rotation (radians). + // This avoids CSS-transform stacking issues during zoom/rotate. + try { + if (map && typeof map.getBearing === 'function' && marker.options) { + marker.options.rotateWithView = false; + const deg = (marker._headingDeg == null ? 0 : marker._headingDeg); + const headingRad = deg * Math.PI / 180; + // Markers are in `norotatePane` (do not rotate with the map), so keeping absolute heading + // relative to true north is simply "rotation = heading". + if (typeof marker.setRotation === 'function') marker.setRotation(headingRad); + else { + marker.options.rotation = headingRad; + if (typeof marker.update === 'function') marker.update(); + } + + // If this marker was previously patched by our CSS-rotate fallback, undo it. + const el = marker._icon; + if (marker._origSetPos) { + try { marker._setPos = marker._origSetPos; } catch (e) {} + try { delete marker._origSetPos; } catch (e) {} + } + if (el && el.dataset && el.dataset.trSet) { + try { delete el.dataset.trSet; } catch (e) {} + } + marker._rotationHeading = null; + return; + } + } catch (e) {} + + // Fallback (no rotate plugin): manual CSS rotation for the icon. + const el = marker._icon; + if (!el) return; + marker._rotationHeading = marker._headingDeg; + if (!el.dataset.trSet) { + el.style.transformOrigin = `${iconAnchorX}px ${iconAnchorY}px`; + el.dataset.trSet = '1'; + if (!marker._origSetPos) { + marker._origSetPos = marker._setPos; + marker._setPos = function(pos) { + this._origSetPos.call(this, pos); + const ic = this._icon; + if (ic && this._rotationHeading != null) { + const m = (ic.style.transform||'').match(/translate3d\([^)]+\)/); + if (m) ic.style.transform = m[0]+' rotate('+this._rotationHeading+'deg)'; + } + }; + } + } + const t = (el.style.transform||'').match(/translate3d\([^)]+\)/); + if (t) el.style.transform = marker._rotationHeading != null ? t[0]+' rotate('+marker._rotationHeading+'deg)' : t[0]; + else if (marker._rotationHeading != null) el.style.transform = 'rotate('+marker._rotationHeading+'deg)'; +} + +function _clampInt(v, minV, maxV, defV) { + const n = parseInt(v, 10); + if (!isFinite(n) || isNaN(n)) return defV; + return Math.max(minV, Math.min(maxV, n)); +} + +function _formatMinutesPreview(mins) { + const m = _clampInt(mins, 1, 24 * 60, 1); + if (m < 60) return m + ' мин'; + const h = Math.floor(m / 60); + const mm = m % 60; + return h + ' ч' + (mm ? (' ' + mm + ' мин') : ''); +} + +function getLosingTargetMinutes() { + return _clampInt(sGet('losingTargetMin', '7'), 1, 24 * 60, 7); +} +function getRemoveTargetMinutes() { + return _clampInt(sGet('removeTargetMin', '10'), 1, 24 * 60, 10); +} + +let LOSING_TARGET_TIME = getLosingTargetMinutes() * 60; +let REMOVE_TARGET_TIME = getRemoveTargetMinutes() * 60; + +function _isTargetExpiredByTimestamp(item, now) { + return !!(item && item.timestamp && (now - item.timestamp) >= REMOVE_TARGET_TIME); +} + +function applyTargetTimingFromSettings() { + let losingMin = getLosingTargetMinutes(); + let removeMin = getRemoveTargetMinutes(); + + // Ensure ordering: "losing" should be earlier than "remove" + if (removeMin <= losingMin) removeMin = losingMin + 1; + + LOSING_TARGET_TIME = losingMin * 60; + REMOVE_TARGET_TIME = removeMin * 60; + + const losingInput = document.getElementById('set-losing-target-min'); + const removeInput = document.getElementById('set-remove-target-min'); + const losingPrev = document.getElementById('set-losing-target-preview'); + const removePrev = document.getElementById('set-remove-target-preview'); + + if (losingInput) losingInput.value = String(losingMin); + if (removeInput) removeInput.value = String(removeMin); + if (losingPrev) losingPrev.textContent = _formatMinutesPreview(losingMin); + if (removePrev) removePrev.textContent = _formatMinutesPreview(removeMin); +} + +function initTargetTimingSettingsUi() { + const losingInput = document.getElementById('set-losing-target-min'); + const removeInput = document.getElementById('set-remove-target-min'); + if (!losingInput || !removeInput) return; + + const save = () => { + const losingMin = _clampInt(losingInput.value, 1, 24 * 60, 7); + const removeMinRaw = _clampInt(removeInput.value, 1, 24 * 60, 10); + const removeMin = Math.max(removeMinRaw, losingMin + 1); + sSet('losingTargetMin', String(losingMin)); + sSet('removeTargetMin', String(removeMin)); + applyTargetTimingFromSettings(); + }; + + losingInput.addEventListener('change', save); + losingInput.addEventListener('input', () => { + const prev = document.getElementById('set-losing-target-preview'); + if (prev) prev.textContent = _formatMinutesPreview(losingInput.value); + }); + removeInput.addEventListener('change', save); + removeInput.addEventListener('input', () => { + const prev = document.getElementById('set-remove-target-preview'); + if (prev) prev.textContent = _formatMinutesPreview(removeInput.value); + }); + + applyTargetTimingFromSettings(); +} + +try { + initTargetTimingSettingsUi(); + if (document && document.addEventListener) { + document.addEventListener('DOMContentLoaded', () => { + try { initTargetTimingSettingsUi(); } catch (e) {} + }); + } +} catch (e) {} + +// ===================== Distance & range filter ===================== +const RANGE_STEPS_NM = [0.1,0.2,0.3,0.5,0.7,1,1.5,2,3,5,7,10,15,20,30,50,70,100,150,200,300,500]; +const NM_TO_KM = 1.852; +const NM_TO_AU = 1.852 / 1.496e8; +const KN_TO_KMH = 1.852; +let distUnit = sGet('distUnit', 'nm'); +let speedUnit = sGet('speedUnit', 'kn'); +let rangeIdx = parseInt(sGet('rangeIdx', String(RANGE_STEPS_NM.length)), 10); +let rangeCircle = null; +let warnRadiusNm = parseFloat(sGet('warnRadiusNm', '0')) || 0; +let nearRadiusNm = parseFloat(sGet('nearRadiusNm', '0')) || 0; +let warnCircle = null; +let nearCircle = null; +let _dangerState = { any: false, count: 0, minNm: null }; + +function haversineNM(lat1, lon1, lat2, lon2) { + const R = 3440.065; + const dLat = (lat2 - lat1) * Math.PI / 180; + const dLon = (lon2 - lon1) * Math.PI / 180; + const a = Math.sin(dLat/2)**2 + Math.cos(lat1*Math.PI/180)*Math.cos(lat2*Math.PI/180)*Math.sin(dLon/2)**2; + return 2 * R * Math.asin(Math.sqrt(a)); +} + +function getOwnShipPos() { + const data = ownShipSource === 'phone' ? phoneGps : nmeaGps; + if (data && data.lat != null && data.lon != null) return data; + return null; +} + +function getRangeNM() { + return rangeIdx >= RANGE_STEPS_NM.length ? Infinity : RANGE_STEPS_NM[rangeIdx]; +} + +function fmtDist(nm) { + if (distUnit === 'au') { + const au = nm * NM_TO_AU; + return au.toExponential(2) + ' AU'; + } + if (distUnit === 'km') { + const km = nm * NM_TO_KM; + return km < 10 ? km.toFixed(2) + ' км' : km.toFixed(1) + ' км'; + } + return nm < 10 ? nm.toFixed(2) + ' NM' : nm.toFixed(1) + ' NM'; +} + +function bearingDeg(lat1, lon1, lat2, lon2) { + // Initial bearing from point 1 to point 2 (degrees from North, 0..360) + const φ1 = lat1 * Math.PI / 180, φ2 = lat2 * Math.PI / 180; + const Δλ = (lon2 - lon1) * Math.PI / 180; + const y = Math.sin(Δλ) * Math.cos(φ2); + const x = Math.cos(φ1) * Math.sin(φ2) - Math.sin(φ1) * Math.cos(φ2) * Math.cos(Δλ); + const θ = Math.atan2(y, x) * 180 / Math.PI; + return normalizeDeg(θ); +} + +function relBearingSignedDeg(ownHeadingDeg, absBearingDeg) { + const h = normalizeDeg(ownHeadingDeg); + const b = normalizeDeg(absBearingDeg); + if (h == null || b == null) return null; + let d = b - h; + if (d > 180) d -= 360; + if (d < -180) d += 360; + return d; // negative = left, positive = right +} + +function uiUnitName() { + return distUnit === 'km' ? 'км' : 'NM'; +} +function nmToUi(nm) { + return distUnit === 'km' ? (nm * NM_TO_KM) : nm; +} +function uiToNm(v) { + return distUnit === 'km' ? (v / NM_TO_KM) : v; +} + +function fmtRange(nm) { + if (!isFinite(nm)) return '\u221e'; + if (distUnit === 'au') { + const au = nm * NM_TO_AU; + return au.toExponential(2) + ' AU'; + } + if (distUnit === 'km') { + const km = nm * NM_TO_KM; + return (km < 1 ? km.toFixed(2) : km < 10 ? km.toFixed(1) : Math.round(km)) + ' км'; + } + return (nm < 1 ? nm.toFixed(1) : nm < 10 ? nm.toFixed(1) : Math.round(nm)) + ' NM'; +} + +function fmtSpeed(knots) { + if (speedUnit === 'kmh') return (knots * KN_TO_KMH).toFixed(1) + ' км/ч'; + return knots.toFixed(1) + ' уз.'; +} + +function updateRangeCircle() { + const os = getOwnShipPos(); + const r = getRangeNM(); + if (!os || !isFinite(r)) { + if (rangeCircle) { map.removeLayer(rangeCircle); rangeCircle = null; } + return; + } + const meters = r * 1852; + if (!rangeCircle) { + rangeCircle = L.circle([os.lat, os.lon], { + radius: meters, color: '#d2ff1a', weight: 1.5, + fillColor: '#d2ff1a', fillOpacity: 0.04, dashArray: '6,4', interactive: false + }).addTo(map); + } else { + rangeCircle.setLatLng([os.lat, os.lon]); + rangeCircle.setRadius(meters); + } +} + +function updateDangerCircles() { + const os = getOwnShipPos(); + if (!os || os.lat == null || os.lon == null) { + if (warnCircle) { map.removeLayer(warnCircle); warnCircle = null; } + if (nearCircle) { map.removeLayer(nearCircle); nearCircle = null; } + return; + } + + if (warnRadiusNm > 0) { + const meters = warnRadiusNm * 1852; + if (!warnCircle) { + warnCircle = L.circle([os.lat, os.lon], { + radius: meters, + color: '#f85149', + weight: 1.8, + opacity: 0.9, + fillColor: '#f85149', + fillOpacity: 0.03, + dashArray: '8,6', + interactive: false + }).addTo(map); + } else { + warnCircle.setLatLng([os.lat, os.lon]); + warnCircle.setRadius(meters); + } + } else if (warnCircle) { map.removeLayer(warnCircle); warnCircle = null; } + + if (nearRadiusNm > 0) { + const meters = nearRadiusNm * 1852; + if (!nearCircle) { + nearCircle = L.circle([os.lat, os.lon], { + radius: meters, + color: '#f0883e', + weight: 1.5, + opacity: 0.8, + fillColor: '#f0883e', + fillOpacity: 0.02, + dashArray: '4,8', + interactive: false + }).addTo(map); + } else { + nearCircle.setLatLng([os.lat, os.lon]); + nearCircle.setRadius(meters); + } + } else if (nearCircle) { map.removeLayer(nearCircle); nearCircle = null; } +} + +function updateDangerBanner() { + const el = document.getElementById('danger-banner'); + if (!el) return; + if (warnRadiusNm > 0 && _dangerState.any) { + const rel = _dangerState.relDegSigned; + const relTxt = (rel == null) ? '' : (rel < 0 ? (' ← ' + Math.round(Math.abs(rel)) + '°') : (' ' + Math.round(Math.abs(rel)) + '° →')); + const distTxt = _dangerState.minNm != null ? fmtDist(_dangerState.minNm) : ''; + el.textContent = 'ВНИМАНИЕ' + (_dangerState.count > 0 ? ' (' + _dangerState.count + (relTxt ? ',' + relTxt : '') + (distTxt ? ', ' + distTxt : '') + ')' : ''); + el.style.display = ''; + } else { + el.style.display = 'none'; + } +} + +(function initRangeSlider() { + const slider = document.getElementById('range-slider'); + const label = document.getElementById('range-value'); + slider.max = RANGE_STEPS_NM.length; + slider.value = rangeIdx; + label.textContent = fmtRange(getRangeNM()); + slider.addEventListener('input', () => { + rangeIdx = parseInt(slider.value, 10); + sSet('rangeIdx', rangeIdx); + label.textContent = fmtRange(getRangeNM()); + updateRangeCircle(); + }); +})(); +const olSize = Math.max(iconWidth, iconHeight)*1.5, olAnchor = olSize/2; +const iconChosen = L.icon({ iconUrl:'/svg/ChosenTarget.svg', iconSize:[olSize,olSize], iconAnchor:[olAnchor,olAnchor], className:'vessel-overlay-icon' }); +const iconLosing = L.divIcon({ + html: '', + iconSize: [18, 18], + iconAnchor: [9, 9], + className: 'vessel-overlay-icon vessel-overlay-lost', +}); +const vesselOverlays = new Map(); +let selectedMmsi = null; + +// ===================== Vessel InfoWindow (MarineTraffic-style) ===================== +// Replaces the plain Leaflet popup used previously. +// - Desktop: floating card, draggable by its header, anchored inside #map page. +// - Mobile : full-width bottom-sheet above the mobile panel bar, swipe-down closes it. +// - Stays on screen when the map pans/zooms (no snapping to marker after the user +// dragged it), but the content auto-updates when fresh AIS data arrives. +const AIS_NAV_STATUS_LABEL = { + 0: 'На ходу (двигатель)', 1: 'На якоре', 2: 'Не под командованием', + 3: 'Огранич. манёвренность', 4: 'Огранич. осадкой', 5: 'Пришвартован', + 6: 'На мели', 7: 'Рыболовство', 8: 'Под парусом', + 9: 'Рез. HSC', 10: 'Рез. WIG', 11: 'Буксир за кормой', + 12: 'Буксир спереди', 13: 'Резерв', 14: 'AIS-SART / MOB', 15: 'Не определён', +}; +function _navStatusLabel(c) { + if (c == null || c === '') return null; + const n = parseInt(c, 10); + if (isNaN(n)) return null; + return AIS_NAV_STATUS_LABEL[n] || ('Код ' + n); +} +function _signalDbToBars(db) { + if (db == null) return 0; + if (db >= -50) return 4; + if (db >= -60) return 3; + if (db >= -70) return 2; + if (db >= -80) return 1; + return 0; +} +function _vesselHeaderIconSvg(vesselClass, shiptype) { + const isA = vesselClass === 'A'; + const vb = isA ? _vesselSvgVB.A : _vesselSvgVB.B; + const poly = isA ? _vesselSvgPoly.A : _vesselSvgPoly.B; + const fill = shiptypeToFillRgba(shiptype, null); + return ''; +} + +const VesselInfoWindow = (function () { + let rootEl = null; + let openMmsi = null; + let userPositioned = false; + let _drag = null; + let isCollapsed = false; + + function el() { + if (rootEl) return rootEl; + rootEl = document.getElementById('vessel-infowindow'); + return rootEl; + } + function isMobile() { + try { + return window.innerWidth <= 600 || + (window.matchMedia && window.matchMedia('(max-height:520px) and (pointer:coarse)').matches); + } catch (e) { return false; } + } + + function _bars(bars) { + const heights = [5, 8, 11, 14]; + const cls = bars >= 3 ? 'on' : (bars === 2 ? 'warn' : (bars >= 1 ? 'bad' : '')); + let h = ''; + for (let i = 0; i < 4; i++) { + const active = i < bars; + h += ''; + } + h += ''; + return h; + } + + function _targetHeaderIconSvg(v) { + if (v && (v.vessel_class === 'BS' || v.kind === 'base_station')) { + return ''; + } + if (v && (v.vessel_class === 'N' || v.kind === 'buoy')) { + return ''; + } + return _vesselHeaderIconSvg(v ? v.vessel_class : null, v ? v.shiptype : null); + } + + function _dimsLabel(v) { + const toBow = (typeof v.to_bow === 'number' && isFinite(v.to_bow)) ? v.to_bow : parseInt(v.to_bow, 10); + const toStern = (typeof v.to_stern === 'number' && isFinite(v.to_stern)) ? v.to_stern : parseInt(v.to_stern, 10); + const toPort = (typeof v.to_port === 'number' && isFinite(v.to_port)) ? v.to_port : parseInt(v.to_port, 10); + const toStar = (typeof v.to_starboard === 'number' && isFinite(v.to_starboard)) ? v.to_starboard : parseInt(v.to_starboard, 10); + const lenM = (isFinite(toBow) ? Math.max(0, toBow) : 0) + (isFinite(toStern) ? Math.max(0, toStern) : 0); + const beamM = (isFinite(toPort) ? Math.max(0, toPort) : 0) + (isFinite(toStar) ? Math.max(0, toStar) : 0); + return (lenM > 0 && beamM > 0) ? (lenM + '×' + beamM + ' м') : null; + } + + function _buildStaticHtml(v) { + const isBase = v.vessel_class === 'BS' || v.kind === 'base_station'; + const isAton = v.vessel_class === 'N' || v.kind === 'buoy'; + const iconHtml = _targetHeaderIconSvg(v); + const iso2 = mmsiToIso2FromMid(v.mmsi); + const flag = iso2ToFlagEmoji(iso2); + const typeLabel = isAton ? (v.aton_type_label || atonTypeLabel(v.aton_type) || 'Тип СНО не указан') : 'Базовая станция AIS'; + const modeLabel = _aidModeLabel(v); + const clsText = isBase ? 'Базовая станция' : 'СНО / буй'; + const title = isBase ? 'Базовая станция' : (v.shipname || v.name || 'Буёк / СНО'); + + const os = getOwnShipPos(); + let bearingCell = ''; + if (os && os.lat != null && os.lon != null && v.lat != null && v.lon != null) { + const brg = bearingDeg(os.lat, os.lon, v.lat, v.lon); + const dist = v._distNM != null ? v._distNM : haversineNM(os.lat, os.lon, v.lat, v.lon); + bearingCell = '
' + + '
Пеленг / Дальность
' + + '
' + brg.toFixed(0) + '° / ' + escHtml(fmtDist(dist)) + '
'; + } + + const coordsTxt = (v.lat != null && v.lon != null) + ? Number(v.lat).toFixed(5) + ', ' + Number(v.lon).toFixed(5) + : '—'; + const dims = _dimsLabel(v); + const ageTxt = v.timestamp ? escHtml(fmtAgo(v.timestamp)) + ' назад' : '—'; + const miniDst = v._distNM != null ? escHtml(fmtDist(v._distNM)) : null; + const idsParts = ['MMSI: ' + escHtml(v.mmsi) + '']; + if (v.lat != null && v.lon != null) idsParts.push('Координаты: ' + escHtml(coordsTxt) + ''); + if (isAton) idsParts.push('СНО: ' + escHtml(modeLabel) + ''); + else idsParts.push('Станция: ' + escHtml(modeLabel) + ''); + if (isAton && v.off_position) idsParts.push('Положение: вне штатной позиции'); + if (dims) idsParts.push('Размер: ' + escHtml(dims) + ''); + + return '' + + '' + + '
' + + '
' + iconHtml + '
' + + '
' + + '
' + + (flag ? '' + flag + ' ' : '') + + escHtml(title) + + '
' + + '
' + escHtml(typeLabel) + ' · ' + escHtml(clsText) + '
' + + '
' + + (miniDst ? 'ДАЛЬН ' + miniDst + '' : '') + + 'ВОЗР ' + ageTxt + '' + + '
' + + '
' + + '' + + '' + + '
' + + '
' + + '
' + + '
Объект ' + escHtml(clsText) + '
' + + '
' + + '
' + escHtml(typeLabel) + '
' + + '
' + + 'Обновлено: ' + ageTxt + '' + + 'Источник: AIS' + + '
' + + '
' + + '
' + + '
' + (isAton ? 'Тип СНО' : 'Тип объекта') + '
' + escHtml(typeLabel) + '
' + + '
Координаты
' + escHtml(coordsTxt) + '
' + + '
' + (isAton ? 'Флаг СНО' : 'Флаг станции') + '
' + escHtml(modeLabel) + '
' + + (isAton && v.off_position ? '
Положение
Вне позиции
' : '') + + (dims ? '
Размер
' + escHtml(dims) + '
' : '') + + bearingCell + + '
' + + '
' + idsParts.join('') + '
' + + '
' + + '' + + '' + + '' + + '
' + + '
' + + ''; + } + + function _buildHtml(v) { + if (v && (v.vessel_class === 'BS' || v.vessel_class === 'N' || v.kind === 'base_station' || v.kind === 'buoy')) { + return _buildStaticHtml(v); + } + const iconHtml = _targetHeaderIconSvg(v); + const iso2 = mmsiToIso2FromMid(v.mmsi); + const flag = iso2ToFlagEmoji(iso2); + const typeLabel = (v.shiptype != null && v.shiptype !== '') + ? ((typeof AIS_TABLE51_SHIP_TYPE_LABEL === 'function' && AIS_TABLE51_SHIP_TYPE_LABEL(v.shiptype)) || ('Тип ' + v.shiptype)) + : 'Тип не указан'; + const clsText = v.vessel_class === 'A' ? 'Class A' + : v.vessel_class === 'B' ? 'Class B' + : v.vessel_class === 'BS' ? 'Базовая ст.' + : v.vessel_class === 'N' ? 'СНО / буй' + : (v.vessel_class || '?'); + + // Bearing / distance from ownship + const os = getOwnShipPos(); + let bearingCell = ''; + if (os && os.lat != null && os.lon != null && v.lat != null && v.lon != null) { + const brg = bearingDeg(os.lat, os.lon, v.lat, v.lon); + const dist = v._distNM; + bearingCell = '
' + + '
Пеленг / Дальность
' + + '
' + brg.toFixed(0) + '° / ' + + (dist != null ? escHtml(fmtDist(dist)) : '–') + '
'; + } + + const navLbl = _navStatusLabel(v.nav_status); + const navVal = navLbl || 'нет'; + const speedCourse = (v.speed != null ? escHtml(fmtSpeed(v.speed)) : '–') + + ' / ' + (v.course != null ? v.course.toFixed(0) + '°' : '–'); + const heading = v.heading != null ? v.heading.toFixed(0) + '°' + : 'нет'; + const draughtRaw = v.draught != null ? Number(v.draught) : null; + const draught = (draughtRaw != null && isFinite(draughtRaw) && draughtRaw > 0) + ? (draughtRaw.toFixed(1) + ' м') + : ''; + const dest = v.destination && String(v.destination).trim() + ? escHtml(String(v.destination).trim()) + : 'не указано'; + const eta = v.eta ? escHtml(String(v.eta)) : '—'; + + // Signal + let sigBlock = ''; + if (v.signal_db != null) { + const bars = _signalDbToBars(v.signal_db); + const ageTxt = v.signal_ts != null ? fmtAgo(Math.floor(v.signal_ts)) : null; + sigBlock = '
' + _bars(bars) + + 'Сигнал: ' + Number(v.signal_db).toFixed(1) + ' дБ' + + (ageTxt ? '(' + ageTxt + ' назад)' : '') + + '
'; + } + + // Identifiers + const callsign = v.callsign ? String(v.callsign).trim() : null; + const imo = v.imo && Number(v.imo) > 0 ? v.imo : null; + const idsParts = ['MMSI: ' + v.mmsi + '']; + if (imo) idsParts.push('IMO: ' + imo + ''); + if (callsign) idsParts.push('Позывной: ' + escHtml(callsign) + ''); + if (v.lat != null && v.lon != null) { + idsParts.push('Lat/Lon: ' + Number(v.lat).toFixed(5) + ', ' + Number(v.lon).toFixed(5) + ''); + } + if (v.rot != null && !isNaN(Number(v.rot))) { + idsParts.push('ROT: ' + Number(v.rot).toFixed(1) + ' °/мин'); + } + const lenM = (Number(v.to_bow) || 0) + (Number(v.to_stern) || 0); + const beamM = (Number(v.to_port) || 0) + (Number(v.to_starboard) || 0); + if (lenM > 0 && beamM > 0) { + idsParts.push('Размер: ' + lenM + '×' + beamM + ' м'); + } + + const receivedLine = v.timestamp + ? 'Получено: ' + escHtml(fmtTime(v.timestamp)) + ' (' + escHtml(fmtAgo(v.timestamp)) + ' назад)' + : 'Получено: '; + + // Mini stats for the collapsed state (shown instead of vinf-sub when collapsed) + const miniSog = v.speed != null ? escHtml(fmtSpeed(v.speed)) : '—'; + const miniCog = v.course != null ? v.course.toFixed(0) + '°' : '—'; + const miniDst = v._distNM != null ? escHtml(fmtDist(v._distNM)) : null; + + return '' + + '' + + '
' + + '
' + iconHtml + '
' + + '
' + + '
' + + (flag ? '' + flag + ' ' : '') + + escHtml(v.shipname || ('MMSI ' + v.mmsi)) + + '
' + + '
' + escHtml(typeLabel) + ' · ' + clsText + '
' + + '
' + + 'SOG ' + miniSog + '' + + 'COG ' + miniCog + '' + + (miniDst ? 'DST ' + miniDst + '' : '') + + '
' + + '
' + + '' + + '' + + '
' + + '
' + + '
' + + '
Назначение ' + dest + '
' + + '
' + + '
' + (eta !== '—' ? eta : '') + '
' + + '
' + + 'Обновлено: ' + (v.timestamp ? escHtml(fmtAgo(v.timestamp)) + ' назад' : '—') + '' + + 'ETA: ' + eta + '' + + '
' + + '
' + + '
' + + '
Навигационный статус
' + navVal + '
' + + '
Скорость / Курс (COG)
' + speedCourse + '
' + + '
Направление (HDG)
' + heading + '
' + + '
Осадка
' + draught + '
' + + bearingCell + + '
' + + sigBlock + + '
' + idsParts.join('') + '
' + + '
' + + '' + + '' + + '' + + '
' + + '
' + + ''; + } + + function _positionNearMarker() { + const root = el(); + if (!root || openMmsi == null) return; + if (isMobile()) { + root.style.left = ''; + root.style.top = ''; + root.style.right = ''; + root.style.bottom = ''; + return; + } + try { + const mk = _markerForTargetMmsi(openMmsi); + if (!mk) return; + const pt = map.latLngToContainerPoint(mk.getLatLng()); + const mapRect = map.getContainer().getBoundingClientRect(); + const w = root.offsetWidth || 360; + const h = root.offsetHeight || 280; + const margin = 12; + let x = pt.x + 28; + if (x + w + margin > mapRect.width) x = pt.x - w - 28; + if (x < margin) x = margin; + let y = pt.y - h / 2; + if (y < 56) y = 56; + if (y + h > mapRect.height - margin) y = Math.max(margin, mapRect.height - margin - h); + root.style.left = Math.round(x) + 'px'; + root.style.top = Math.round(y) + 'px'; + root.style.right = ''; + root.style.bottom = ''; + } catch (e) {} + } + + // Compute the map's "visible" sub-rectangle (excluding the infowindow occlusion) + // and pan so that the marker ends up in the centre of that visible area. + // Only shifts the map if the marker is (or would be) occluded. + function _panMarkerIntoView(latlng, opts) { + opts = opts || {}; + const root = el(); + if (!root || root.hidden || !latlng) return; + try { + const mapEl = map.getContainer(); + const mapRect = mapEl.getBoundingClientRect(); + const r = root.getBoundingClientRect(); + let vx0 = 0, vy0 = 0, vx1 = mapRect.width, vy1 = mapRect.height; + const ix0 = Math.max(0, r.left - mapRect.left); + const ix1 = Math.min(mapRect.width, r.right - mapRect.left); + const iy0 = Math.max(0, r.top - mapRect.top); + const iy1 = Math.min(mapRect.height, r.bottom - mapRect.top); + if (ix1 > ix0 && iy1 > iy0) { + const isFullWidth = (ix1 - ix0) >= mapRect.width * 0.8; + const isFullHeight = (iy1 - iy0) >= mapRect.height * 0.5; + if (isFullWidth) { + if (iy0 <= 6) vy0 = iy1; + else if (iy1 >= mapRect.height - 6) vy1 = iy0; + } else if (isFullHeight) { + if (ix0 <= 6) vx0 = ix1; + else if (ix1 >= mapRect.width - 6) vx1 = ix0; + } else { + if (iy1 >= mapRect.height - 6) vy1 = iy0; + } + } + const pt = map.latLngToContainerPoint(latlng); + const padding = 24; + const occluded = + pt.x < vx0 + padding || pt.x > vx1 - padding || + pt.y < vy0 + padding || pt.y > vy1 - padding; + if (!occluded && opts.force !== true) return; + const cx = (vx0 + vx1) / 2; + const cy = (vy0 + vy1) / 2; + const dx = pt.x - cx; + const dy = pt.y - cy; + if (Math.abs(dx) > 2 || Math.abs(dy) > 2) { + map.panBy([dx, dy], { animate: opts.animate !== false }); + } + } catch (_) {} + } + + function setCollapsed(v) { + isCollapsed = !!v; + const root = el(); + if (!root) return; + root.classList.toggle('vinf--collapsed', isCollapsed); + root.setAttribute('aria-expanded', isCollapsed ? 'false' : 'true'); + // When collapsing/expanding the desktop panel, we may shift from being clipped to visible; + // re-run positioning on desktop so it stays anchored correctly. + if (!isMobile() && !userPositioned) { + requestAnimationFrame(() => _positionNearMarker()); + } + } + + function _attachOnce() { + const root = el(); + if (!root || root._bound) return; + root._bound = true; + + root.addEventListener('click', (e) => { + const btn = e.target.closest('[data-act]'); + if (!btn) return; + const act = btn.dataset.act; + const mmsi = openMmsi; + const v = mmsi != null ? getAisTargetByMmsi(mmsi) : null; + if (act === 'close') { close(); return; } + if (act === 'collapse') { setCollapsed(!isCollapsed); return; } + if (act === 'center' && v && v.lat != null && v.lon != null) { + map.setView([v.lat, v.lon], Math.max(map.getZoom(), 14)); + requestAnimationFrame(() => _panMarkerIntoView(L.latLng(v.lat, v.lon))); + return; + } + if (act === 'ruler' && v && v.lat != null && v.lon != null) { + try { RulerTool.startFromOwnshipTo(v.lat, v.lon); } catch (_) {} + return; + } + if (act === 'copy' && v && v.lat != null && v.lon != null) { + const txt = Number(v.lat).toFixed(6) + ', ' + Number(v.lon).toFixed(6); + try { + if (navigator.clipboard && navigator.clipboard.writeText) { + navigator.clipboard.writeText(txt); + } + } catch (_) {} + btn.textContent = 'Скопировано'; + setTimeout(() => { try { refreshIfOpen(mmsi); } catch (_) {} }, 1200); + return; + } + }); + + // Desktop drag + root.addEventListener('pointerdown', (e) => { + if (isMobile()) return; + if (e.target.closest('[data-act]')) return; + const handle = e.target.closest('[data-drag-handle]'); + if (!handle) return; + e.preventDefault(); + const rect = root.getBoundingClientRect(); + _drag = { id: e.pointerId, dx: e.clientX - rect.left, dy: e.clientY - rect.top }; + try { root.setPointerCapture(e.pointerId); } catch (_) {} + userPositioned = true; + }); + root.addEventListener('pointermove', (e) => { + if (!_drag || e.pointerId !== _drag.id) return; + const mapRect = map.getContainer().getBoundingClientRect(); + let x = e.clientX - mapRect.left - _drag.dx; + let y = e.clientY - mapRect.top - _drag.dy; + const w = root.offsetWidth, h = root.offsetHeight, m = 4; + if (x < m) x = m; + if (y < m) y = m; + if (x + w > mapRect.width - m) x = mapRect.width - m - w; + if (y + h > mapRect.height - m) y = mapRect.height - m - h; + root.style.left = Math.round(x) + 'px'; + root.style.top = Math.round(y) + 'px'; + root.style.right = ''; + root.style.bottom = ''; + }); + const endDrag = (e) => { + if (!_drag) return; + if (e && e.pointerId !== _drag.id) return; + _drag = null; + }; + root.addEventListener('pointerup', endDrag); + root.addEventListener('pointercancel', endDrag); + + // Mobile swipe on the header grip: + // - swipe DOWN: collapse (if expanded) or close (if already collapsed) + // - swipe UP : expand (if collapsed) + let sw = null; + root.addEventListener('touchstart', (e) => { + if (!isMobile()) return; + if (!e.target.closest('[data-drag-handle]')) return; + const t = e.touches[0]; + if (!t) return; + sw = { y0: t.clientY, id: t.identifier, fired: false }; + }, { passive: true }); + root.addEventListener('touchmove', (e) => { + if (!sw || sw.fired) return; + const t = Array.from(e.touches).find(tt => tt.identifier === sw.id); + if (!t) return; + const dy = t.clientY - sw.y0; + // Swipe only collapses/expands; the close (X) button is the only way to close. + if (dy > 48 && !isCollapsed) { sw.fired = true; setCollapsed(true); } + else if (dy < -48 && isCollapsed) { sw.fired = true; setCollapsed(false); } + }, { passive: true }); + root.addEventListener('touchend', () => { sw = null; }, { passive: true }); + + // Close on Esc + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape' && openMmsi != null) close(); + }); + + // Follow marker when map pans/zooms (unless user dragged it already) + try { + map.on('zoomend moveend rotate', () => { + if (openMmsi != null && !userPositioned) _positionNearMarker(); + }); + } catch (_) {} + } + + function open(mmsi) { + const root = el(); + if (!root) return; + _attachOnce(); + const prev = openMmsi; + openMmsi = mmsi; + selectedMmsi = String(mmsi); + if (prev !== mmsi) { + userPositioned = false; + isCollapsed = false; + } + + const v = getAisTargetByMmsi(mmsi); + if (!v) return; + root.innerHTML = _buildHtml(v); + root.hidden = false; + root.setAttribute('aria-hidden', 'false'); + root.classList.toggle('vinf--collapsed', isCollapsed); + root.setAttribute('aria-expanded', isCollapsed ? 'false' : 'true'); + + if (!userPositioned) { + requestAnimationFrame(() => _positionNearMarker()); + } + // After layout, pan the map so the marker is not hidden behind the sheet/card. + if (v.lat != null && v.lon != null) { + requestAnimationFrame(() => _panMarkerIntoView(L.latLng(v.lat, v.lon))); + } + try { + const ov = vesselOverlays.get(mmsi); + if (v.lat != null && v.lon != null) { + updateVesselOverlay(mmsi, v.lat, v.lon, true, + !!(ov && ov.losing), + (_markerForTargetMmsi(mmsi) && _markerForTargetMmsi(mmsi)._bearingForOverlay)); + } + } catch (_) {} + try { renderVesselSidebar(); } catch (_) {} + try { renderTargetsTab(); } catch (_) {} + try { if (typeof NearbyHud !== 'undefined') NearbyHud.render(); } catch (_) {} + } + function close() { + const root = el(); + if (!root) return; + const was = openMmsi; + openMmsi = null; + if (String(selectedMmsi) === String(was)) selectedMmsi = null; + root.hidden = true; + root.setAttribute('aria-hidden', 'true'); + if (was != null) { + try { + const v = getAisTargetByMmsi(was); + if (v && v.lat != null && v.lon != null) { + const ov = vesselOverlays.get(was); + updateVesselOverlay(was, v.lat, v.lon, false, + !!(ov && ov.losing), + (_markerForTargetMmsi(was) && _markerForTargetMmsi(was)._bearingForOverlay)); + } + } catch (_) {} + try { renderVesselSidebar(); } catch (_) {} + try { renderTargetsTab(); } catch (_) {} + try { if (typeof NearbyHud !== 'undefined') NearbyHud.render(); } catch (_) {} + } + } + function refreshIfOpen(mmsi) { + if (openMmsi == null || String(openMmsi) !== String(mmsi)) return; + const root = el(); + if (!root || root.hidden) return; + const v = getAisTargetByMmsi(mmsi); + if (!v) return; + root.innerHTML = _buildHtml(v); + root.classList.toggle('vinf--collapsed', isCollapsed); + root.setAttribute('aria-expanded', isCollapsed ? 'false' : 'true'); + } + function currentMmsi() { return openMmsi; } + function panIntoView(lat, lon, opts) { _panMarkerIntoView(L.latLng(lat, lon), opts || {}); } + + return { open, close, refreshIfOpen, currentMmsi, panIntoView, setCollapsed }; +})(); + +// Back-compat shim: existing code checked `openPopups.has(mmsi)` to decide whether +// a vessel is "chosen". Keep the same read-interface but delegate to VesselInfoWindow. +const openPopups = { + has(mmsi) { return String(VesselInfoWindow.currentMmsi()) === String(mmsi); }, + add() {}, delete() {}, clear() {}, +}; + +// ===================== Ruler tool (on-map distance measurement) ===================== +// - Click to set first point, click again to set end point (or move cursor before second click). +// - Supports "from ownship to target" shortcut via startFromOwnshipTo(). +// - HUD in lower-right shows NM / km / bearing and a close button. +const RulerTool = (function () { + let on = false; + let line = null, endMarker = null, startMarker = null; + let startLL = null, endLL = null; + let hud = null; + let onClick = null, onMove = null; + + function _ensureHud() { + if (hud) return hud; + hud = document.createElement('div'); + hud.className = 'ruler-hud'; + hud.hidden = true; + hud.innerHTML = + 'Клик — начальная точка, ещё клик — конечная. Esc — выход.' + + '' + + ''; + document.body.appendChild(hud); + hud.querySelector('button').addEventListener('click', disable); + return hud; + } + function _updateHud() { + _ensureHud(); + hud.hidden = false; + const d = hud.querySelector('.dist'); + if (!startLL) { d.textContent = 'Кликните на карте'; return; } + if (!endLL) { d.textContent = 'Выберите вторую точку…'; return; } + const nm = haversineNM(startLL.lat, startLL.lng, endLL.lat, endLL.lng); + const km = nm * 1.852; + const brg = bearingDeg(startLL.lat, startLL.lng, endLL.lat, endLL.lng); + d.textContent = nm.toFixed(2) + ' NM · ' + km.toFixed(2) + ' км · ' + brg.toFixed(0) + '°'; + } + function _draw() { + if (!startLL) return; + const pts = [startLL, endLL || startLL]; + if (!line) line = L.polyline(pts, { color: '#d2ff1a', weight: 3, dashArray: '6,4', interactive: false }).addTo(map); + else line.setLatLngs(pts); + if (!startMarker) startMarker = L.circleMarker(startLL, { radius: 5, color: '#d2ff1a', fillColor: '#d2ff1a', fillOpacity: 0.9, interactive: false }).addTo(map); + else startMarker.setLatLng(startLL); + if (endLL) { + if (!endMarker) endMarker = L.circleMarker(endLL, { radius: 6, color: '#d2ff1a', fillColor: '#d2ff1a', fillOpacity: 0.6, interactive: false }).addTo(map); + else endMarker.setLatLng(endLL); + } + } + function enable() { + if (on) return; + on = true; + document.body.classList.add('ruler-active'); + try { map.getContainer().style.cursor = 'crosshair'; } catch (_) {} + const btn = document.getElementById('mc-ruler'); + if (btn) btn.classList.add('active'); + startLL = null; endLL = null; + _updateHud(); + onClick = (e) => { + if (!startLL) { startLL = e.latlng; endLL = null; _draw(); _updateHud(); return; } + if (!endLL) { endLL = e.latlng; _draw(); _updateHud(); return; } + // restart measurement + startLL = e.latlng; endLL = null; _draw(); _updateHud(); + }; + onMove = (e) => { + if (startLL && !endLL && line) line.setLatLngs([startLL, e.latlng]); + }; + map.on('click', onClick); + map.on('mousemove', onMove); + } + function disable() { + if (!on) return; + on = false; + document.body.classList.remove('ruler-active'); + try { map.getContainer().style.cursor = ''; } catch (_) {} + if (onClick) map.off('click', onClick); + if (onMove) map.off('mousemove', onMove); + onClick = null; onMove = null; + if (line) { try { map.removeLayer(line); } catch (_) {} line = null; } + if (startMarker) { try { map.removeLayer(startMarker); } catch (_) {} startMarker = null; } + if (endMarker) { try { map.removeLayer(endMarker); } catch (_) {} endMarker = null; } + startLL = null; endLL = null; + if (hud) hud.hidden = true; + const btn = document.getElementById('mc-ruler'); + if (btn) btn.classList.remove('active'); + } + function toggle() { on ? disable() : enable(); } + function startFromOwnshipTo(lat, lon) { + const os = getOwnShipPos(); + enable(); + if (os && os.lat != null && os.lon != null) { + startLL = L.latLng(os.lat, os.lon); + endLL = L.latLng(lat, lon); + _draw(); _updateHud(); + try { map.fitBounds(L.latLngBounds([startLL, endLL]).pad(0.25)); } catch (_) {} + } + } + document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && on) disable(); }); + return { enable, disable, toggle, startFromOwnshipTo, isOn: () => on }; +})(); + +// ===================== Map controls (zoom, centre, north-up, ruler, one-hand) ===================== +(function initMapControls() { + function bind(id, fn) { + const el = document.getElementById(id); + if (!el) return; + el.addEventListener('click', (e) => { e.preventDefault(); fn(e); }); + } + const centerOnOwnship = () => { + const os = getOwnShipPos(); + if (os && os.lat != null && os.lon != null) { + map.setView([os.lat, os.lon], Math.max(map.getZoom(), 13)); + } + }; + bind('mc-zoom-in', () => map.zoomIn()); + bind('mc-zoom-out', () => map.zoomOut()); + bind('mc-center', centerOnOwnship); + bind('mc-north-up', () => { + try { if (typeof map.setBearing === 'function') map.setBearing(0); } catch (_) {} + try { + if (typeof rotateMapByCompass !== 'undefined' && rotateMapByCompass) { + rotateMapByCompass = false; + try { sSet('rotateMapByCompass', false); } catch (_) {} + try { _setOwnshipCompassUi(); } catch (_) {} + try { _reflectCompassToggleUi(); } catch (_) {} + } + } catch (_) {} + }); + bind('mc-compass', () => { + try { _toggleRotateMapByCompass(); } catch (_) {} + }); + try { _reflectCompassToggleUi(); } catch (_) {} + bind('mc-ruler', () => RulerTool.toggle()); + + // One-hand pad buttons + bind('oh-zoom-in', () => map.zoomIn()); + bind('oh-zoom-out', () => map.zoomOut()); + bind('oh-center', centerOnOwnship); + + // One-hand mode toggle (big buttons + single-finger double-tap-drag zoom) + const onehandBtn = document.getElementById('mc-onehand'); + const onehandPad = document.getElementById('onehand-pad'); + function setOnehand(v) { + document.body.classList.toggle('onehand', !!v); + if (onehandPad) { + onehandPad.hidden = !v; + onehandPad.setAttribute('aria-hidden', v ? 'false' : 'true'); + } + if (onehandBtn) onehandBtn.classList.toggle('active', !!v); + try { sSet('onehand', v ? '1' : '0'); } catch (_) {} + } + try { if (sGet('onehand', '0') === '1') setOnehand(true); } catch (_) {} + if (onehandBtn) onehandBtn.addEventListener('click', () => { + setOnehand(!document.body.classList.contains('onehand')); + }); + + // Double-tap-drag zoom on a single finger (Google-Maps-style) — active only in one-hand mode. + try { + const mapEl = map.getContainer(); + let lastTap = null, dragState = null; + mapEl.addEventListener('touchstart', (e) => { + if (!document.body.classList.contains('onehand')) return; + if (e.touches.length !== 1) { lastTap = null; return; } + const t = e.touches[0]; + const now = Date.now(); + if (lastTap && (now - lastTap.ts) < 320 && + Math.hypot(t.clientX - lastTap.x, t.clientY - lastTap.y) < 40) { + const rect = mapEl.getBoundingClientRect(); + const pt = L.point(t.clientX - rect.left, t.clientY - rect.top); + dragState = { y0: t.clientY, zoom0: map.getZoom(), centerLL: map.containerPointToLatLng(pt) }; + try { map.dragging.disable(); } catch (_) {} + e.preventDefault(); + } + lastTap = { x: t.clientX, y: t.clientY, ts: now }; + }, { passive: false }); + mapEl.addEventListener('touchmove', (e) => { + if (!dragState || e.touches.length !== 1) return; + const t = e.touches[0]; + const dy = dragState.y0 - t.clientY; + const z = dragState.zoom0 + dy / 80; + const zMin = map.getMinZoom(), zMax = map.getMaxZoom(); + map.setZoomAround(dragState.centerLL, Math.max(zMin, Math.min(zMax, z))); + e.preventDefault(); + }, { passive: false }); + const endOneFingerZoom = () => { + if (dragState) { dragState = null; try { map.dragging.enable(); } catch (_) {} } + }; + mapEl.addEventListener('touchend', endOneFingerZoom); + mapEl.addEventListener('touchcancel', endOneFingerZoom); + } catch (_) {} +})(); + +// ===================== New "Targets" tab (primary full list on mobile) ===================== +function renderTargetsTab() { + const list = document.getElementById('targets-list'); + const cntEl = document.getElementById('targets-count'); + const suffEl = document.getElementById('targets-count-suffix'); + if (!list) return; + + const combined = [] + .concat(lastAnyVessels || []) + .concat(lastBaseStations || []) + .concat(lastBuoys || []); + const os = getOwnShipPos(); + if (os) { + for (const v of combined) { + if (v && v.lat != null && v.lon != null) v._distNM = haversineNM(os.lat, os.lon, v.lat, v.lon); + else v._distNM = null; + } + } + + const clsSel = document.getElementById('targets-filter-class'); + const stSel = document.getElementById('targets-filter-shiptype'); + const searchEl = document.getElementById('targets-search'); + const sortEl = document.getElementById('targets-sort'); + const cls = clsSel ? clsSel.value : 'all'; + const stG = stSel ? stSel.value : 'all'; + const q = (searchEl && searchEl.value ? searchEl.value : '').trim().toLowerCase(); + const sortMode = sortEl ? sortEl.value : 'time-desc'; + + const filtered = combined.filter(v => { + if (cls !== 'all' && String(v.vessel_class || '') !== cls) return false; + if (typeof matchesShiptypeFilter === 'function' && !matchesShiptypeFilter(v, stG)) return false; + if (q) { + const hay = (typeof vesselSearchHaystack === 'function') ? vesselSearchHaystack(v) : String(v.mmsi || '').toLowerCase(); + if (!hay.includes(q)) return false; + } + return true; + }); + try { if (typeof sortVesselsInPlace === 'function') sortVesselsInPlace(filtered, sortMode); } catch (_) {} + + if (cntEl) cntEl.textContent = String(filtered.length); + if (suffEl) suffEl.textContent = filtered.length !== combined.length ? ' из ' + combined.length : ''; + + list.innerHTML = ''; + for (const v of filtered) { + const { mmsi, lat, lon, vessel_class, shipname, speed, course, heading, timestamp } = v; + const it = document.createElement('div'); + it.className = 'vessel-item'; + it.dataset.mmsi = String(mmsi); + const hasCoord = lat != null && lon != null; + const iso2 = mmsiToIso2FromMid(mmsi); + const flag = iso2ToFlagEmoji(iso2); + const brg = (os && hasCoord) ? bearingDeg(os.lat, os.lon, lat, lon) : null; + + let h = '
' + escHtml(mmsi) + ''; + if (flag) h += '' + flag + ''; + h += '
'; + if (shipname) h += '
' + escHtml(shipname) + '
'; + const clsLabel = (vessel_class === 'BS') ? 'База' : (vessel_class === 'N') ? 'Буёк' : (vessel_class || '?'); + h += '
Класс: ' + escHtml(clsLabel) + '
'; + if (String(vessel_class) === 'N' && v.aton_type != null && v.aton_type !== '') { + h += '
Тип: ' + escHtml(v.aton_type_label || atonTypeLabel(v.aton_type) || 'Тип СНО не указан') + '
'; + } + if (v._distNM != null || brg != null) { + let distLine = '
'; + if (v._distNM != null) distLine += '' + fmtDist(v._distNM) + ''; + if (brg != null) distLine += '' + brg.toFixed(0) + '°'; + distLine += '
'; + h += distLine; + } + h += '
' + + '' + + 'SOG' + (speed != null ? escHtml(fmtSpeed(speed)) : '—') + '' + + '' + + 'COG' + (course != null ? course.toFixed(0) + '°' : '—') + '' + + '' + + 'HDG' + (heading != null ? heading.toFixed(0) + '°' : '—') + '' + + (v.signal_db != null ? '' + + 'SIG' + Number(v.signal_db).toFixed(1) + ' дБ' : '') + + '
'; + if (timestamp != null) h += '
' + fmtTime(timestamp) + ' (' + fmtAgo(timestamp) + ')
'; + it.innerHTML = h; + + if (hasCoord) { + if (String(mmsi) === (selectedMmsi != null ? String(selectedMmsi) : null)) it.classList.add('selected'); + it.addEventListener('click', () => { + selectedMmsi = String(mmsi); + switchTab('map'); + setTimeout(() => { + map.setView([lat, lon], Math.max(map.getZoom(), 15), { animate: false }); + try { VesselInfoWindow.open(mmsi); } catch (_) {} + try { NearbyHud.render(); } catch (_) {} + }, 80); + }); + } + list.appendChild(it); + } +} + +(function initTargetsTabControls() { + ['targets-search', 'targets-sort', 'targets-filter-class', 'targets-filter-shiptype'].forEach(id => { + const el = document.getElementById(id); + if (!el) return; + const ev = (el.tagName === 'INPUT') ? 'input' : 'change'; + el.addEventListener(ev, () => { try { renderTargetsTab(); } catch (_) {} }); + }); +})(); + +// ===================== Mobile compact sidebar toggle ===================== +// On narrow viewports switch the "Ближайшие" sidebar to a compact row layout +// (MMSI / NAME / DIST + SOG/COG/HDG/BRG/DIST line). Desktop keeps verbose layout. +(function initMobileCompactSidebar() { + const sb = document.getElementById('sidebar'); + if (!sb) return; + let mql; + try { mql = window.matchMedia('(max-width:600px)'); } catch (_) { return; } + const apply = () => sb.classList.toggle('sidebar--compact', !!mql.matches); + apply(); + try { mql.addEventListener('change', apply); } catch (_) { + if (mql.addListener) mql.addListener(apply); + } +})(); + +// ===================== Nearby HUD ===================== +// Semi-transparent corner overlay: own-ship readout (speed / coords / compass) +// + the 5 nearest vessels OR the single currently selected vessel (with a clear-X). +// Clicking an item selects the vessel and opens the infowindow. +const NearbyHud = (function(){ + const root = document.getElementById('nearby-hud'); + if (!root) return { render: ()=>{} }; + const listEl = document.getElementById('nhud-list'); + const ownRow = document.getElementById('nhud-own'); + const ownSog = document.getElementById('nhud-own-sog'); + const ownCog = document.getElementById('nhud-own-cog'); + const ownCoords = document.getElementById('nhud-own-coords'); + const ownSrc = document.getElementById('nhud-own-src'); + const compassEl = document.getElementById('nhud-compass'); + const needle = document.getElementById('nhud-needle'); + const compassVal = document.getElementById('nhud-compass-val'); + const toggleBtn = document.getElementById('nhud-toggle'); + + let collapsed = false; + try { collapsed = sGet('nhudCollapsed', '0') === '1'; } catch(_) {} + root.classList.toggle('is-collapsed', collapsed); + + if (toggleBtn) { + toggleBtn.addEventListener('click', () => { + collapsed = !collapsed; + root.classList.toggle('is-collapsed', collapsed); + try { sSet('nhudCollapsed', collapsed ? '1' : '0'); } catch(_) {} + }); + } + + function fmtCoords(lat, lon) { + if (lat == null || lon == null) return '—'; + return lat.toFixed(4) + ', ' + lon.toFixed(4); + } + function fmtBrg(b) { return (b != null && !isNaN(b)) ? b.toFixed(0) + '°' : '—'; } + + function buildItemHtml(v, isSelected) { + const { mmsi, shipname, callsign, lat, lon, speed, course } = v; + const name = (shipname && String(shipname).trim()) || ''; + const cs = (callsign && String(callsign).trim()) || ''; + const brg = (v._brg != null) ? v._brg : null; + const distTxt = (v._distNM != null) ? fmtDist(v._distNM) : '—'; + + let idHtml = ''; + if (name) idHtml += '' + escHtml(name) + ''; + if (cs) idHtml += '' + escHtml(cs) + ''; + idHtml += '' + escHtml(mmsi) + ''; + + let botHtml = 'SOG' + + (speed != null ? escHtml(fmtSpeed(speed)) : '—') + ''; + botHtml += 'COG' + + (course != null ? course.toFixed(0) + '°' : '—') + ''; + botHtml += '' + fmtBrg(brg) + ''; + + return '
' + + '' + idHtml + '' + + '' + escHtml(distTxt) + '' + + '
' + + '
' + botHtml + '
' + + '
' + escHtml(fmtCoords(lat, lon)) + '
' + + (isSelected ? '' : ''); + } + + function renderOwn() { + const data = (typeof ownShipSource !== 'undefined' && ownShipSource === 'phone') ? phoneGps : nmeaGps; + const hasFix = data && data.lat != null && data.lon != null; + if (hasFix) { + ownCoords.textContent = fmtCoords(data.lat, data.lon); + ownSog.textContent = data.speed != null ? fmtSpeed(data.speed) : '—'; + ownCog.textContent = data.course != null ? data.course.toFixed(0) + '°' : '—'; + } else { + ownCoords.textContent = '—'; + ownSog.textContent = '—'; + ownCog.textContent = '—'; + } + // source label + let srcTxt = ''; + let srcErr = false; + if (ownShipSource === 'phone') { + if (phoneGpsError) { srcTxt = phoneGpsError; srcErr = true; } + else if (hasFix) srcTxt = 'PHONE GPS'; + else srcTxt = 'PHONE GPS (ожидание…)'; + } else { + srcTxt = hasFix ? 'NMEA' : 'NMEA (нет данных)'; + } + ownSrc.textContent = srcTxt; + ownSrc.classList.toggle('nhud-own__src--err', srcErr); + + // Compass: prefer phone compass when available; else GPS heading/course; else nothing + const compassH = (typeof phoneCompassOk !== 'undefined' && phoneCompassOk && phoneCompassHeading != null) + ? phoneCompassHeading : null; + const h = (compassH != null) + ? compassH + : (hasFix ? (data.heading != null ? data.heading : data.course) : null); + const hasHeading = h != null && !isNaN(h); + compassEl.classList.toggle('no-data', !hasHeading); + compassEl.classList.toggle('from-phone', compassH != null); + compassEl.classList.toggle('has-val', hasHeading); + if (hasHeading) { + needle.style.transform = 'rotate(' + (-h) + 'deg)'; + compassVal.textContent = h.toFixed(0) + '°'; + } else { + compassVal.textContent = ''; + } + } + + function renderList() { + const os = getOwnShipPos(); + const combined = [] + .concat(lastAnyVessels || []) + .concat(lastBaseStations || []) + .concat(lastBuoys || []); + + // Compute distance+bearing from own ship + if (os) { + for (const v of combined) { + if (v && v.lat != null && v.lon != null) { + v._distNM = haversineNM(os.lat, os.lon, v.lat, v.lon); + v._brg = bearingDeg(os.lat, os.lon, v.lat, v.lon); + } else { + v._distNM = null; v._brg = null; + } + } + } + + const hasSel = selectedMmsi != null; + let items = []; + if (hasSel) { + const sel = combined.find(v => String(v.mmsi) === String(selectedMmsi)); + if (sel) items.push({ v: sel, isSel: true }); + } + if (!items.length || !hasSel) { + // Top-5 by distance (if own position known); else by time desc + let pool = combined.filter(v => v && v.lat != null && v.lon != null); + if (hasSel) pool = pool.filter(v => String(v.mmsi) !== String(selectedMmsi)); + if (os) { + pool.sort((a,b) => (a._distNM != null ? a._distNM : Infinity) - (b._distNM != null ? b._distNM : Infinity)); + } else { + pool.sort((a,b) => (b.timestamp||0) - (a.timestamp||0)); + } + const need = hasSel ? 4 : 5; + for (const v of pool.slice(0, need)) items.push({ v, isSel: false }); + } + + if (!items.length) { + listEl.innerHTML = '
Нет целей в эфире
'; + root.classList.add('is-empty'); + return; + } + root.classList.remove('is-empty'); + + const html = items.map(({ v, isSel }) => { + return '
' + + buildItemHtml(v, isSel) + '
'; + }).join(''); + listEl.innerHTML = html; + + // Wire up click handlers + listEl.querySelectorAll('.nhud-item').forEach(el => { + const mmsi = el.dataset.mmsi; + el.addEventListener('click', (ev) => { + if (ev.target.closest('.nhud-item__clear')) { + selectedMmsi = null; + try { VesselInfoWindow.close(); } catch(_) {} + try { renderVesselSidebar(); } catch(_) {} + render(); + return; + } + selectedMmsi = String(mmsi); + const v = combined.find(x => String(x.mmsi) === String(mmsi)); + if (v && v.lat != null && v.lon != null) { + try { map.setView([v.lat, v.lon], Math.max(map.getZoom(), 14), { animate: true }); } catch(_) {} + try { VesselInfoWindow.open(mmsi); } catch(_) {} + } + render(); + }); + }); + } + + let _renderPending = false; + function render() { + if (_renderPending) return; + _renderPending = true; + requestAnimationFrame(() => { + _renderPending = false; + try { renderOwn(); } catch(_) {} + try { renderList(); } catch(_) {} + }); + } + + // Short ticker for compass/coords (updates even between vessel feeds). + setInterval(() => { try { renderOwn(); } catch(_) {} }, 500); + // Full re-render pace + setInterval(() => { try { render(); } catch(_) {} }, 2000); + + return { render }; +})(); + +/** Stern (icon anchor) → midpoint of hull along keel; bearing ° from north like AIS heading. */ +function overlayLatLngFromStern(lat, lon, bearingDeg) { + if (bearingDeg == null || isNaN(bearingDeg)) return [lat, lon]; + const ll = L.latLng(lat, lon); + const p = map.latLngToContainerPoint(ll); + if (!p) return [lat, lon]; + const mpp = map.distance(ll, map.containerPointToLatLng(L.point(p.x, p.y + 1))); + const distM = (iconHeight / 2) * mpp; + const R = 6371000; + const brng = bearingDeg * Math.PI / 180; + const φ1 = lat * Math.PI / 180, λ1 = lon * Math.PI / 180; + const δ = distM / R; + const sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1); + const sinδ = Math.sin(δ), cosδ = Math.cos(δ); + const sinφ2 = sinφ1 * cosδ + cosφ1 * sinδ * Math.cos(brng); + const φ2 = Math.asin(sinφ2); + const λ2 = λ1 + Math.atan2(Math.sin(brng) * sinδ * cosφ1, cosδ - sinφ1 * sinφ2); + return [φ2 * 180 / Math.PI, λ2 * 180 / Math.PI]; +} + +function updateVesselOverlay(mmsi, lat, lon, isChosen, isLosing, bearingDeg) { + const [olat, olng] = overlayLatLngFromStern(lat, lon, bearingDeg); + if (!vesselOverlays.has(mmsi)) vesselOverlays.set(mmsi, {chosen:null, losing:null}); + const o = vesselOverlays.get(mmsi); + if (isChosen && !o.chosen) o.chosen = L.marker([olat,olng],{icon:iconChosen,zIndexOffset:1000}).addTo(map); + else if (!isChosen && o.chosen) { map.removeLayer(o.chosen); o.chosen=null; } + else if (isChosen && o.chosen) o.chosen.setLatLng([olat,olng]); + if (isLosing && !o.losing) o.losing = L.marker([olat,olng],{icon:iconLosing,zIndexOffset:1000}).addTo(map); + else if (!isLosing && o.losing) { map.removeLayer(o.losing); o.losing=null; } + else if (isLosing && o.losing) o.losing.setLatLng([olat,olng]); +} +function removeVesselOverlay(mmsi) { + if (!vesselOverlays.has(mmsi)) return; + const o = vesselOverlays.get(mmsi); + if (o.chosen) map.removeLayer(o.chosen); + if (o.losing) map.removeLayer(o.losing); + vesselOverlays.delete(mmsi); +} + +function fmtAgo(ts) { + if (!ts) return '?'; + const d = Math.floor(Date.now()/1000) - ts; + if (d<0) return '?'; + if (d<60) return d+'с'; + const m=Math.floor(d/60), s=d%60; + if (m<60) return m+'м '+s+'с'; + return Math.floor(m/60)+'ч '+m%60+'м'; +} +function fmtTime(ts) { + if (!ts) return '?'; + const d=new Date(ts*1000); + return [d.getHours(),d.getMinutes(),d.getSeconds()].map(v=>String(v).padStart(2,'0')).join(':'); +} + +function _clientLog(level, msg, ctx) { + try { + try { console.log('[AISMap] clientLog', level, msg, ctx || null); } catch (e) {} + // Best-effort: do not block UI; keepalive helps on page unload. + const payload = { + level: level || 'info', + msg: msg || '', + ctx: ctx || null, + ts: Math.floor(Date.now() / 1000), + url: (typeof location !== 'undefined' ? location.href : null), + ua: (typeof navigator !== 'undefined' ? navigator.userAgent : null), + build: (typeof APP_BUILD !== 'undefined' ? APP_BUILD : null), + }; + // Prefer Beacon (more reliable on mobile/WebView); fall back to fetch. + try { + if (navigator && typeof navigator.sendBeacon === 'function') { + const blob = new Blob([JSON.stringify(payload)], { type: 'application/json' }); + navigator.sendBeacon('/api/client_log', blob); + return; + } + } catch (e) {} + fetch('/api/client_log', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + keepalive: true, + }).catch(() => {}); + } catch (e) {} +} + +function _numOrNull(x) { + if (x == null) return null; + if (typeof x === 'number') return Number.isFinite(x) ? x : null; + const n = parseFloat(x); + return Number.isFinite(n) ? n : null; +} + +function _isMockApiEnabled() { + try { + const q = new URLSearchParams(location.search || ''); + if (q.get('mock') === '1') return true; + } catch (e) {} + try { return sGet('mockApi', '0') === '1'; } catch (e) { return false; } +} + +function _apiUrl(path) { + if (!_isMockApiEnabled()) return path; + try { + const u = new URL(path, location.origin); + u.searchParams.set('mock', '1'); + return u.pathname + '?' + u.searchParams.toString(); + } catch (e) { + return path + (path.includes('?') ? '&' : '?') + 'mock=1'; + } +} + +function _extractServerNowAndList(payload, key) { + // Backward-compatible: old APIs returned plain arrays. + if (Array.isArray(payload)) { + return { serverNow: Math.floor(Date.now() / 1000), list: payload }; + } + if (payload && typeof payload === 'object') { + const sn = payload.server_now != null ? parseInt(payload.server_now, 10) : null; + const list = payload[key] != null ? payload[key] : (payload.data != null ? payload.data : []); + return { + serverNow: (sn != null && !isNaN(sn)) ? sn : Math.floor(Date.now() / 1000), + list: Array.isArray(list) ? list : [] + }; + } + return { serverNow: Math.floor(Date.now() / 1000), list: [] }; +} + +// Debug HUD (left-bottom corner) — disabled because it collides with the +// #nearby-hud overlay. The helpers are kept as no-ops so existing call sites +// keep working and can easily be re-enabled by flipping `_DEBUG_HUD_ENABLED` +// or by removing this guard. +const _DEBUG_HUD_ENABLED = false; + +function _ensureDebugHudOnce() { + if (!_DEBUG_HUD_ENABLED) return; + try { + if (document.getElementById('aismap-debug-hud')) return; + const d = document.createElement('div'); + d.id = 'aismap-debug-hud'; + d.style.cssText = 'position:fixed;left:8px;top:8px;z-index:9999;max-width:92vw;' + + 'background:rgba(0,0,0,.75);color:#e6edf3;font:12px/1.35 system-ui,Segoe UI,Roboto,Arial;' + + 'padding:6px 8px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.25);' + + 'white-space:pre-wrap;pointer-events:none'; + d.textContent = 'AISMap debug HUD\nbuild: ' + APP_BUILD; + document.body.appendChild(d); + } catch (e) {} +} + +function _setDebugHud(text) { + if (!_DEBUG_HUD_ENABLED) return; + try { + _ensureDebugHudOnce(); + const d = document.getElementById('aismap-debug-hud'); + if (d) d.textContent = text; + } catch (e) {} +} + +function updateVessels() { + try { + // Источник — in-memory AisHub.vessels, наполняется WebSocket-ом /ws. + const vessels = Array.from(AisHub.vessels.values()).map(v => Object.assign({}, v)); + const now = Math.floor(Date.now() / 1000); + _setDebugHud('AISMap debug HUD\nbuild: ' + APP_BUILD + '\nvessels: ' + vessels.length); + const os = getOwnShipPos(); + const maxNM = getRangeNM(); + + // mergedTargetToVessel уже нормализует числа, но на случай кривых событий — страхуем. + for (const v of vessels) { + if (!v) continue; + v.lat = _numOrNull(v.lat); + v.lon = _numOrNull(v.lon); + v.course = _numOrNull(v.course); + v.speed = _numOrNull(v.speed); + v.heading = _numOrNull(v.heading); + v.timestamp = v.timestamp != null ? parseInt(v.timestamp, 10) : v.timestamp; + v.mmsi = v.mmsi != null ? parseInt(v.mmsi, 10) : v.mmsi; + } + + for (const v of vessels) { + if (os && v.lat != null && v.lon != null) + v._distNM = haversineNM(os.lat, os.lon, v.lat, v.lon); + else + v._distNM = null; + } + + if (os) vessels.sort((a, b) => (a._distNM ?? Infinity) - (b._distNM ?? Infinity)); + + const visibleSet = new Set(); + for (const v of vessels) { + const validCoord = v.lat != null && v.lon != null && !isNaN(v.lat) && !isNaN(v.lon) && v.lat >= -90 && v.lat <= 90 && v.lon >= -180 && v.lon <= 180; + const inRange = !isFinite(maxNM) || v._distNM == null || v._distNM <= maxNM; + const notExpired = !_isTargetExpiredByTimestamp(v, now); + if (validCoord && inRange && notExpired) visibleSet.add(v.mmsi); + } + + // Total targets that sent anything (not expired), including those without a "legal" position. + const totalAnySet = new Set(); + for (const v of vessels) { + const notExpired = !_isTargetExpiredByTimestamp(v, now); + if (notExpired) totalAnySet.add(v.mmsi); + } + + // Update sidebar data early (even if marker drawing fails later). + lastAnyVessels = vessels + .filter(v => !_isTargetExpiredByTimestamp(v, now)) + .map(v => Object.assign({}, v, { kind: 'vessel' })); + + try { + console.log('[AISMap] vessels sets', { + visible: visibleSet.size, + totalAny: totalAnySet.size, + sampleVisible: (() => { + for (const v of vessels) { + if (visibleSet.has(v && v.mmsi)) return { mmsi: v.mmsi, lat: v.lat, lon: v.lon, ts: v.timestamp }; + } + return null; + })() + }); + } catch (e) {} + + for (const [mmsi, mk] of vesselMarkers.entries()) { + if (!visibleSet.has(mmsi)) { + if (String(mmsi) === String(selectedMmsi)) selectedMmsi = null; + map.removeLayer(mk); + vesselMarkers.delete(mmsi); + removeVesselOverlay(mmsi); + removeMotionOverlays(mmsi); + removeVesselDetailOverlays(mmsi); + vesselLastData.delete(mmsi); + openPopups.delete(mmsi); + try { if (VesselInfoWindow.currentMmsi() && String(VesselInfoWindow.currentMmsi()) === String(mmsi)) VesselInfoWindow.close(); } catch (_) {} + } + } + + document.getElementById('status').textContent = 'Целей: ' + visibleSet.size + ' (' + totalAnySet.size + ')'; + _setDebugHud('AISMap debug HUD\nbuild: ' + APP_BUILD + + '\n/api/vessels: ' + (Array.isArray(vessels) ? vessels.length : '?') + + '\nvisibleSet: ' + visibleSet.size + ' totalAny: ' + totalAnySet.size); + + _dangerState = { any: false, count: 0, minNm: null, relDegSigned: null }; + + for (const v of vessels) { + try { + if (!v || !visibleSet.has(v.mmsi)) continue; + const {mmsi, lat, lon, vessel_class, shipname, callsign, course, speed, heading, timestamp, shiptype, nav_status} = v; + const moving = speed != null && !isNaN(speed) && speed >= 1.5; + const bearingForOverlay = moving ? (course != null ? course : heading) : (heading != null ? heading : course); + const iconKey = vesselIconTintKey(vessel_class, shiptype, nav_status); + const icon = getVesselDivIcon(vessel_class, shiptype, nav_status); + + if (vesselMarkers.has(mmsi)) { + const mk = vesselMarkers.get(mmsi); + _ensureAisMarkerPane(mk); + mk._bearingForOverlay = bearingForOverlay; + const cl = mk.getLatLng(); + if (Math.abs(cl.lat - lat) > 0.0001 || Math.abs(cl.lng - lon) > 0.0001) mk.setLatLng([lat, lon]); + const ci = mk.options.icon; + if (!ci || mk._vesselIconKey !== iconKey) { + mk.setIcon(icon); + mk._vesselIconKey = iconKey; + requestAnimationFrame(() => setIconRotation(mk, bearingForOverlay)); + } else setIconRotation(mk, bearingForOverlay); + } else { + const mk = L.marker([lat, lon], { icon, pane: AIS_MARKER_PANE || undefined }).addTo(map); + mk.on('click', () => { try { VesselInfoWindow.open(mmsi); } catch (_) {} }); + mk._bearingForOverlay = bearingForOverlay; + mk._vesselIconKey = iconKey; + requestAnimationFrame(() => setIconRotation(mk, bearingForOverlay)); + vesselMarkers.set(mmsi, mk); + } + const age = timestamp ? (now - timestamp) : Infinity; + const isChosen = openPopups.has(mmsi) || String(mmsi) === String(selectedMmsi); + updateVesselOverlay(mmsi, lat, lon, isChosen, age >= LOSING_TARGET_TIME && age < REMOVE_TARGET_TIME, bearingForOverlay); + + // Motion overlays: + // - Vector: ahead by SOG/COG for 1 minute; if ROT is available, bend the vector. + // - Trail: dashed path behind using recent positions. + let refLat = lat, refLon = lon; + const dims = _dimsFromVessel(v); + const brg = _bearingForHull(v); + const refMode = (dims && brg != null) ? 'center' : 'antenna'; + if (vesselTrailRefMode.get(mmsi) !== refMode) { + vesselTrailRefMode.set(mmsi, refMode); + vesselHistory.delete(mmsi); // reset when switching reference point + } + if (refMode === 'center') { + const c = _centerFromAntenna(lat, lon, brg, dims); + refLat = c.lat; + refLon = c.lon; + } + const speedForVector = (speed != null && !isNaN(speed) && speed >= 0 && speed <= 60) ? speed : null; + const courseForVector = (course != null && !isNaN(course)) ? course : null; + updateVesselVector(mmsi, refLat, refLon, courseForVector, speedForVector, v.rot); + updateVesselTrail(mmsi, refLat, refLon, timestamp); + + // Cache for zoom-driven redraw, and update detailed overlays (true-size hull + antenna). + vesselLastData.set(mmsi, v); + updateVesselDetailOverlays(v); + try { VesselInfoWindow.refreshIfOpen(mmsi); } catch (_) {} + + // Proximity logic: warning banner + highlight nearby targets + if (v._distNM != null && isFinite(v._distNM)) { + if (warnRadiusNm > 0 && v._distNM <= warnRadiusNm) { + _dangerState.any = true; + _dangerState.count += 1; + if (_dangerState.minNm == null || v._distNM < _dangerState.minNm) { + _dangerState.minNm = v._distNM; + // Relative bearing to the closest target (for the banner) + const os = getOwnShipPos(); + const osHd = os ? (os.heading != null ? os.heading : os.course) : null; + if (os && os.lat != null && os.lon != null && osHd != null) { + const abs = bearingDeg(os.lat, os.lon, v.lat, v.lon); + _dangerState.relDegSigned = relBearingSignedDeg(osHd, abs); + } else { + _dangerState.relDegSigned = null; + } + } + } + const mk = vesselMarkers.get(mmsi); + if (mk && mk._icon) { + const near = nearRadiusNm > 0 && v._distNM <= nearRadiusNm; + mk._icon.classList.toggle('vessel-nearby', !!near); + } + } + } catch (e) { + console.error('updateVessels vessel:', e, v); + _clientLog('error', 'updateVessels per-vessel failed', { + err: String(e && (e.stack || e.message || e)), + vessel: v || null, + }); + } + } + lastVisibleVessels = vessels.filter(v => visibleSet.has(v.mmsi)).map(v => Object.assign({}, v, { kind: 'vessel' })); + adjustSidebarHeight(); + updateRangeCircle(); + updateDangerCircles(); + updateDangerBanner(); + if (vessels.length > 0 && vesselMarkers.size > 0) { + const f = vessels[0]; + if (f.lat && f.lon && map.getZoom() === 10 && Math.abs(map.getCenter().lat - 55.751244) < 0.001) + map.setView([f.lat, f.lon], 12); + } + } catch (e) { + console.error('updateVessels:', e); + _clientLog('error', 'updateVessels failed', { err: String(e && (e.stack || e.message || e)) }); + _setDebugHud('AISMap debug HUD\nbuild: ' + APP_BUILD + '\nupdateVessels ERROR:\n' + String(e && (e.message || e))); + } +} + +map.on('zoomend', () => { + // Re-evaluate which vessels should show true-size hull at this zoom. + for (const [mmsi, v] of vesselLastData.entries()) { + if (!vesselMarkers.has(mmsi)) continue; + updateVesselDetailOverlays(v); + } +}); + +// ===================== Список целей: MID→флаг, поиск, фильтры, сортировка ===================== +const mmsiMidToIso2 = {}; +let lastSidebarVessels = []; + +function escHtml(s) { + if (s == null || s === '') return ''; + return String(s) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function mmsiToIso2FromMid(mmsi) { + const d = String(mmsi).replace(/\D/g, ''); + if (d.length < 3) return null; + const mid = d.slice(0, 3); + return mmsiMidToIso2[mid] || null; +} + +function iso2ToFlagEmoji(iso2) { + if (!iso2 || iso2.length !== 2) return ''; + const a = iso2.toUpperCase(); + if (a.length !== 2 || a < 'AA' || a > 'ZZ') return ''; + const A = 0x1F1E6; + return String.fromCodePoint(A + a.charCodeAt(0) - 65, A + a.charCodeAt(1) - 65); +} + +function vesselSearchHaystack(v) { + const parts = [ + String(v.mmsi != null ? v.mmsi : ''), + (v.shipname && String(v.shipname).trim()) || '', + (v.callsign && String(v.callsign).trim()) || '', + (v.aton_type_label && String(v.aton_type_label).trim()) || '', + (v.aton_type != null ? String(atonTypeLabel(v.aton_type) || '') : ''), + ]; + return parts.join('\u0000').toLowerCase(); +} + +function matchesShiptypeFilter(v, group) { + if (!group || group === 'all') return true; + if (v && v.kind && v.kind !== 'vessel') return false; + const st = v.shiptype; + const c = parseInt(st, 10); + if (group === 'unknown') return st == null || st === '' || c === 0 || isNaN(c); + if (isNaN(c)) return group === 'unknown'; + if (group === 'fishing') return c === 30; + if (group === 'tug') return c === 31 || c === 32; + if (group === 'passenger') return c >= 60 && c <= 69; + if (group === 'cargo') return c >= 70 && c <= 79; + if (group === 'tanker') return c >= 80 && c <= 89; + if (group === 'other') { + if (c === 0) return false; + if (c >= 60 && c <= 89) return false; + if (c === 30 || c === 31 || c === 32) return false; + return true; + } + return true; +} + +function sortVesselsInPlace(list, mode) { + const nameKey = v => ((v.shipname && String(v.shipname).trim()) || '\uFFFF').toLowerCase(); + switch (mode) { + case 'dist-desc': + list.sort((a, b) => { + const da = a._distNM != null && isFinite(a._distNM) ? a._distNM : -1; + const db = b._distNM != null && isFinite(b._distNM) ? b._distNM : -1; + return db - da; + }); + break; + case 'dist-asc': + list.sort((a, b) => { + const da = a._distNM != null && isFinite(a._distNM) ? a._distNM : 1e12; + const db = b._distNM != null && isFinite(b._distNM) ? b._distNM : 1e12; + return da - db; + }); + break; + case 'time-asc': + list.sort((a, b) => (a.timestamp ?? 0) - (b.timestamp ?? 0)); + break; + case 'name-asc': + list.sort((a, b) => nameKey(a).localeCompare(nameKey(b), 'ru', { sensitivity: 'base' })); + break; + case 'mmsi-asc': + list.sort((a, b) => String(a.mmsi).localeCompare(String(b.mmsi), undefined, { numeric: true })); + break; + case 'class-asc': + list.sort((a, b) => String(a.vessel_class || '').localeCompare(String(b.vessel_class || '')) || + String(a.mmsi).localeCompare(String(b.mmsi), undefined, { numeric: true })); + break; + case 'speed-desc': + list.sort((a, b) => { + const sa = a.speed != null && !isNaN(a.speed) ? a.speed : -1; + const sb = b.speed != null && !isNaN(b.speed) ? b.speed : -1; + return sb - sa; + }); + break; + case 'time-desc': + default: + list.sort((a, b) => (b.timestamp ?? 0) - (a.timestamp ?? 0)); + break; + } +} + +function renderVesselSidebar() { + const vl = document.getElementById('vessel-list'); + const cntEl = document.getElementById('vessel-count'); + const suffEl = document.getElementById('vessel-count-suffix'); + if (!vl || !cntEl) return; + + const total = lastSidebarVessels.length; + const maxNM = getRangeNM(); + const clsSel = document.getElementById('vessel-filter-class'); + const stSel = document.getElementById('vessel-filter-shiptype'); + const searchEl = document.getElementById('vessel-search'); + const sortEl = document.getElementById('vessel-sort'); + + const cls = clsSel ? clsSel.value : 'all'; + const stG = stSel ? stSel.value : 'all'; + const q = (searchEl && searchEl.value ? searchEl.value : '').trim().toLowerCase(); + const sortMode = sortEl ? sortEl.value : 'time-desc'; + + const list = lastSidebarVessels.filter(v => { + // Range filter: if we have a computed distance, enforce it; if we don't (no ownship fix), + // keep the item visible to avoid "empty list" confusion. + if (isFinite(maxNM) && v && v._distNM != null && isFinite(v._distNM) && v._distNM > maxNM) return false; + if (cls !== 'all' && String(v.vessel_class || '') !== cls) return false; + if (!matchesShiptypeFilter(v, stG)) return false; + if (q) { + const hay = vesselSearchHaystack(v); + if (!hay.includes(q)) return false; + } + return true; + }); + + sortVesselsInPlace(list, sortMode); + + cntEl.textContent = String(list.length); + if (suffEl) suffEl.textContent = list.length !== total ? ' из ' + total : ''; + + vl.innerHTML = ''; + for (const v of list) { + const { mmsi, lat, lon, vessel_class, shipname, callsign, speed, course, heading, timestamp } = v; + const mmsiKey = String(mmsi); + const it = document.createElement('div'); + it.className = 'vessel-item'; + it.dataset.mmsi = mmsiKey; + + const hasCoord = lat != null && lon != null && !isNaN(lat) && !isNaN(lon) && lat >= -90 && lat <= 90 && lon >= -180 && lon <= 180; + if (!hasCoord) it.classList.add('vessel-item--no-pos'); + + const iso2 = mmsiToIso2FromMid(mmsi); + const flag = iso2ToFlagEmoji(iso2); + const flagTitle = iso2 || ''; + + let h = '
' + escHtml(mmsi) + ''; + if (flag) h += '' + flag + ''; + h += '
'; + if (shipname) h += '
' + escHtml(shipname) + '
'; + if (callsign && String(callsign).trim()) h += '
Позывной: ' + escHtml(String(callsign).trim()) + '
'; + const clsLabel = (vessel_class === 'BS') ? 'База' : (vessel_class === 'N') ? 'Буёк' : (vessel_class || '?'); + h += '
Класс: ' + escHtml(clsLabel) + '
'; + if (String(vessel_class) === 'N' && v.aton_type != null && v.aton_type !== '') { + h += '
Тип: ' + escHtml(v.aton_type_label || atonTypeLabel(v.aton_type) || 'Тип СНО не указан') + '
'; + } + // Ship dimensions (AIS static): show only when we have both length and beam. + const toBow = (typeof v.to_bow === 'number' && isFinite(v.to_bow)) ? v.to_bow : parseInt(v.to_bow, 10); + const toStern = (typeof v.to_stern === 'number' && isFinite(v.to_stern)) ? v.to_stern : parseInt(v.to_stern, 10); + const toPort = (typeof v.to_port === 'number' && isFinite(v.to_port)) ? v.to_port : parseInt(v.to_port, 10); + const toStar = (typeof v.to_starboard === 'number' && isFinite(v.to_starboard)) ? v.to_starboard : parseInt(v.to_starboard, 10); + const lenM = (isFinite(toBow) ? Math.max(0, toBow) : 0) + (isFinite(toStern) ? Math.max(0, toStern) : 0); + const beamM = (isFinite(toPort) ? Math.max(0, toPort) : 0) + (isFinite(toStar) ? Math.max(0, toStar) : 0); + if (lenM > 0 && beamM > 0) h += '
Размер: ' + lenM + '×' + beamM + ' м
'; + const _osP = getOwnShipPos(); + const _brg = (_osP && hasCoord) ? bearingDeg(_osP.lat, _osP.lon, lat, lon) : null; + if (v._distNM != null || _brg != null) { + let distLine = '
'; + if (v._distNM != null) distLine += '' + fmtDist(v._distNM) + ''; + if (_brg != null) distLine += '' + _brg.toFixed(0) + '°'; + distLine += '
'; + h += distLine; + } + if (hasCoord) h += '
' + lat.toFixed(6) + ', ' + lon.toFixed(6) + '
'; + else h += '
Нет координат
'; + if (timestamp != null) h += '
' + fmtTime(timestamp) + ' (' + fmtAgo(timestamp) + ')
'; + // Unified SOG/COG/HDG stats row (styled as inline row on desktop, compact grid on mobile). + // Replaces the separate "Скорость:"/"Курс:" lines that used to appear below (duplicated the stats row). + h += '
' + + '' + + 'SOG' + (speed != null ? escHtml(fmtSpeed(speed)) : '—') + '' + + '' + + 'COG' + (course != null ? course.toFixed(0) + '°' : '—') + '' + + '' + + 'HDG' + (heading != null ? heading.toFixed(0) + '°' : '—') + '' + + '
'; + it.innerHTML = h; + if (hasCoord) { + if (mmsiKey === (selectedMmsi != null ? String(selectedMmsi) : null)) it.classList.add('selected'); + it.addEventListener('click', () => { + selectedMmsi = mmsiKey; + document.querySelectorAll('.vessel-item').forEach(e => e.classList.remove('selected')); + it.classList.add('selected'); + map.setView([lat, lon], Math.max(map.getZoom(), 15), { animate: false }); + try { VesselInfoWindow.open(mmsi); } catch (_) {} + }); + } + vl.appendChild(it); + } +} + +function updateSidebar(vessels) { + lastSidebarVessels = vessels; + renderVesselSidebar(); + try { NearbyHud.render(); } catch (_) {} +} + +function initVesselListControls() { + const search = document.getElementById('vessel-search'); + const sortEl = document.getElementById('vessel-sort'); + const cls = document.getElementById('vessel-filter-class'); + const st = document.getElementById('vessel-filter-shiptype'); + if (!search || !sortEl || !cls || !st) return; + + const SK = 'vesselList'; + const load = (k, def) => sGet(SK + '_' + k, def); + sortEl.value = load('sort', 'time-desc'); + cls.value = load('fclass', 'all'); + st.value = load('ftype', 'all'); + search.value = load('search', ''); + const persist = () => { + sSet(SK + '_sort', sortEl.value); + sSet(SK + '_fclass', cls.value); + sSet(SK + '_ftype', st.value); + sSet(SK + '_search', search.value); + renderVesselSidebar(); + }; + search.addEventListener('input', () => { + sSet(SK + '_search', search.value); + renderVesselSidebar(); + }); + sortEl.addEventListener('change', persist); + cls.addEventListener('change', persist); + st.addEventListener('change', persist); +} + +initVesselListControls(); +fetch('/static/js/mmsi_mid_iso2.json') + .then(r => (r.ok ? r.json() : {})) + .then(o => { Object.assign(mmsiMidToIso2, o); renderVesselSidebar(); }) + .catch(() => {}); + +const cursorCoords=document.getElementById('cursor-coords'); +function fmtZoomZ(){ + try { return map && typeof map.getZoom === 'function' ? String(map.getZoom()) : '?'; } catch(e){ return '?'; } +} +// Throttle cursor coordinate updates to 1/frame (mousemove can be very high frequency). +let _ccPendingLatLng = null; +let _ccRaf = 0; +let _ccLastText = ''; +function _setCursorCoordsText(latlngOrNull){ + if (!cursorCoords) return; + const z = fmtZoomZ(); + const txt = latlngOrNull + ? ('Координаты: ' + latlngOrNull.lat.toFixed(6) + ', ' + latlngOrNull.lng.toFixed(6) + ' | Z: ' + z) + : ('Координаты: - | Z: ' + z); + if (txt !== _ccLastText) { + cursorCoords.textContent = txt; + _ccLastText = txt; + } +} +function _scheduleCursorCoordsFlush(){ + if (_ccRaf) return; + _ccRaf = requestAnimationFrame(() => { + _ccRaf = 0; + _setCursorCoordsText(_ccPendingLatLng); + }); +} +map.on('mousemove', (e) => { + _ccPendingLatLng = e && e.latlng ? e.latlng : null; + _scheduleCursorCoordsFlush(); +}); +map.on('mouseout', () => { + _ccPendingLatLng = null; + _scheduleCursorCoordsFlush(); +}); +map.on('zoomend', () => { + // Keep current latlng text (if any) and refresh Z; do it in rAF too. + _scheduleCursorCoordsFlush(); +}); + +// ===================== OwnShip ===================== +const ownShipIconSize=[22,48], ownShipAnchor=[11,48]; +const iconOwnShip = L.icon({ iconUrl:'/svg/SVG/ownShip.svg', iconSize:ownShipIconSize, iconAnchor:ownShipAnchor, popupAnchor:[0,-48], className:'ownship-icon' }); +let ownShipMarker=null, ownShipSource='nmea', followMode=false; +let nmeaGps=null, phoneGps=null, phoneWatchId=null, phoneGpsError=null; +let phoneCompassHeading=null, phoneCompassOk=false, phoneCompassListenerAdded=false; +let phoneGpsSmoothed=null; +let _lastFollowTs=0; +let _lastFollowLatLng=null; + +function setOwnShipSource(src) { + ownShipSource = (src === 'phone') ? 'phone' : 'nmea'; + if (ownShipSource === 'phone') startPhoneGps(); + else stopPhoneGps(); + sSet('ownShipSource', ownShipSource); + try { if (typeof window._reflectGpsSourceUi === 'function') window._reflectGpsSourceUi(); } catch(_) {} + updateOwnShipDisplay(); +} +try { + const savedSrc = sGet('ownShipSource', ''); + if (savedSrc === 'phone' || savedSrc === 'nmea') ownShipSource = savedSrc; +} catch (e) {} + +function normalizeDeg(d){ + if(d==null || isNaN(d)) return null; + d = d % 360; + if(d < 0) d += 360; + return d; +} + +function lowPassAngleDeg(prev, next, alpha){ + if (prev == null) return normalizeDeg(next); + const p = normalizeDeg(prev), n = normalizeDeg(next); + if (p == null || n == null) return n; + // shortest direction around 0..360 + let diff = n - p; + if (diff > 180) diff -= 360; + if (diff < -180) diff += 360; + return normalizeDeg(p + diff * alpha); +} + +function haversineMeters(a, b){ + const R = 6371000; + const φ1 = a.lat * Math.PI/180, φ2 = b.lat * Math.PI/180; + const dφ = (b.lat - a.lat) * Math.PI/180; + const dλ = (b.lng - a.lng) * Math.PI/180; + const s = Math.sin(dφ/2)**2 + Math.cos(φ1)*Math.cos(φ2)*Math.sin(dλ/2)**2; + return 2 * R * Math.asin(Math.sqrt(s)); +} + +function pollOwnShip() { + // Источник — ownship.update через WebSocket (заполняется в AisHub.ownship). + try { + const d = AisHub.ownship; + if (d && d.lat != null && d.lon != null) nmeaGps = d; + } catch (e) {} +} + +function startPhoneGps() { + phoneGpsError=null; + if (!window.isSecureContext) { phoneGpsError='Требуется HTTPS. Откройте https://'; return; } + if (!navigator.geolocation) { phoneGpsError='Geolocation API недоступен'; return; } + if (phoneWatchId!=null) return; + startPhoneCompass(); + phoneWatchId=navigator.geolocation.watchPosition( + pos=>{ + phoneGpsError=null; + const raw = { + lat: pos.coords.latitude, + lon: pos.coords.longitude, + accuracy_m: pos.coords.accuracy, + speed: pos.coords.speed!=null ? pos.coords.speed*1.94384 : null, // m/s -> kn + course: normalizeDeg(pos.coords.heading), + heading: normalizeDeg(pos.coords.heading), + compass: normalizeDeg(phoneCompassHeading), + satellites: null, + timestamp: Math.floor(pos.timestamp/1000), + source:'phone' + }; + + // Smooth position slightly to reduce jitter/“рывки” + const acc = raw.accuracy_m != null ? raw.accuracy_m : Infinity; + const alpha = acc <= 10 ? 0.35 : acc <= 25 ? 0.25 : acc <= 60 ? 0.15 : 0.0; + if (!phoneGpsSmoothed || alpha === 0.0) { + phoneGpsSmoothed = {lat: raw.lat, lon: raw.lon}; + } else { + phoneGpsSmoothed.lat = phoneGpsSmoothed.lat + (raw.lat - phoneGpsSmoothed.lat) * alpha; + phoneGpsSmoothed.lon = phoneGpsSmoothed.lon + (raw.lon - phoneGpsSmoothed.lon) * alpha; + } + raw.lat = phoneGpsSmoothed.lat; + raw.lon = phoneGpsSmoothed.lon; + + // Heading: prefer GPS course when moving, else use compass if available + const sp = raw.speed; + const moving = sp != null && !isNaN(sp) && sp >= 1.5; // ~1.5 kn threshold + const h = moving ? raw.course : (raw.compass != null ? raw.compass : raw.course); + raw.heading = h; + + phoneGps = raw; + }, + err=>{ phoneGpsError={1:'Доступ к GPS запрещён',2:'Не удалось определить',3:'Таймаут GPS'}[err.code]||err.message; }, + {enableHighAccuracy:true,maximumAge:1000,timeout:15000} + ); +} +function stopPhoneGps() { + if(phoneWatchId!=null){navigator.geolocation.clearWatch(phoneWatchId);phoneWatchId=null;} + phoneGpsError=null; + phoneGpsSmoothed=null; + stopPhoneCompass(); +} + +const OWN_SHIP_SPEED_VECTOR_SECONDS = 360; +const OWN_SHIP_SPEED_VECTOR_TICK_SECONDS = 60; +const OWN_SHIP_HEADING_LINE_M = 130; +const OWN_SHIP_BEAM_LINE_M = 70; +let ownShipHeadingLine = null; +let ownShipBeamLine = null; +let ownShipSpeedVectorShadow = null; +let ownShipSpeedVector = null; +let ownShipSpeedTicks = []; + +function _removeLayerSafe(layer) { + if (layer) { + try { map.removeLayer(layer); } catch (_) {} + } +} + +function clearOwnShipMotionOverlays() { + _removeLayerSafe(ownShipHeadingLine); ownShipHeadingLine = null; + _removeLayerSafe(ownShipBeamLine); ownShipBeamLine = null; + _removeLayerSafe(ownShipSpeedVectorShadow); ownShipSpeedVectorShadow = null; + _removeLayerSafe(ownShipSpeedVector); ownShipSpeedVector = null; + for (const tick of ownShipSpeedTicks) _removeLayerSafe(tick); + ownShipSpeedTicks = []; +} + +function _ensureOwnShipPolyline(current, opts) { + if (current) return current; + return L.polyline([], Object.assign({ renderer: _overlayCanvasRenderer, interactive: false }, opts)).addTo(map); +} + +function _setOwnShipTickCount(count) { + while (ownShipSpeedTicks.length < count) { + ownShipSpeedTicks.push(L.polyline([], { + renderer: _overlayCanvasRenderer, + color: '#f0f6fc', + weight: 2, + opacity: 0.9, + interactive: false, + }).addTo(map)); + } + while (ownShipSpeedTicks.length > count) { + _removeLayerSafe(ownShipSpeedTicks.pop()); + } +} + +function updateOwnShipMotionOverlays(data, headingDeg) { + if (!data || data.lat == null || data.lon == null) { + clearOwnShipMotionOverlays(); + return; + } + const lat = _numOrNull(data.lat); + const lon = _numOrNull(data.lon); + if (lat == null || lon == null) { + clearOwnShipMotionOverlays(); + return; + } + const origin = [lat, lon]; + const hd = normalizeDeg(headingDeg); + if (hd != null) { + const headEnd = destPointMeters(lat, lon, hd, OWN_SHIP_HEADING_LINE_M); + const beamA = destPointMeters(lat, lon, normalizeDeg(hd - 90), OWN_SHIP_BEAM_LINE_M / 2); + const beamB = destPointMeters(lat, lon, normalizeDeg(hd + 90), OWN_SHIP_BEAM_LINE_M / 2); + ownShipHeadingLine = _ensureOwnShipPolyline(ownShipHeadingLine, { + color: '#f0f6fc', + weight: 2, + opacity: 0.95, + lineCap: 'round', + }); + ownShipHeadingLine.setLatLngs([origin, [headEnd.lat, headEnd.lon]]); + ownShipBeamLine = _ensureOwnShipPolyline(ownShipBeamLine, { + color: '#c9d1d9', + weight: 2, + opacity: 0.8, + lineCap: 'round', + }); + ownShipBeamLine.setLatLngs([[beamA.lat, beamA.lon], [beamB.lat, beamB.lon]]); + } else { + _removeLayerSafe(ownShipHeadingLine); ownShipHeadingLine = null; + _removeLayerSafe(ownShipBeamLine); ownShipBeamLine = null; + } + + const cog = normalizeDeg(data.course); + const sog = _numOrNull(data.speed); + if (cog == null || sog == null || sog < 0.2) { + _removeLayerSafe(ownShipSpeedVectorShadow); ownShipSpeedVectorShadow = null; + _removeLayerSafe(ownShipSpeedVector); ownShipSpeedVector = null; + _setOwnShipTickCount(0); + return; + } + const meters = sog * 1852 / 3600 * OWN_SHIP_SPEED_VECTOR_SECONDS; + const end = destPointMeters(lat, lon, cog, meters); + const pts = [origin, [end.lat, end.lon]]; + ownShipSpeedVectorShadow = _ensureOwnShipPolyline(ownShipSpeedVectorShadow, { + color: '#0d1117', + weight: 6, + opacity: 0.75, + dashArray: '12 10', + lineCap: 'butt', + }); + ownShipSpeedVectorShadow.setLatLngs(pts); + ownShipSpeedVector = _ensureOwnShipPolyline(ownShipSpeedVector, { + color: '#d2ff1a', + weight: 3, + opacity: 0.95, + dashArray: '12 10', + lineCap: 'butt', + }); + ownShipSpeedVector.setLatLngs(pts); + + const tickCount = Math.floor(OWN_SHIP_SPEED_VECTOR_SECONDS / OWN_SHIP_SPEED_VECTOR_TICK_SECONDS); + _setOwnShipTickCount(tickCount); + const tickHalfM = 12; + const mps = sog * 1852 / 3600; + for (let i = 0; i < ownShipSpeedTicks.length; i++) { + const distM = mps * OWN_SHIP_SPEED_VECTOR_TICK_SECONDS * (i + 1); + const p = destPointMeters(lat, lon, cog, distM); + const a = destPointMeters(p.lat, p.lon, normalizeDeg(cog - 90), tickHalfM); + const b = destPointMeters(p.lat, p.lon, normalizeDeg(cog + 90), tickHalfM); + ownShipSpeedTicks[i].setLatLngs([[a.lat, a.lon], [b.lat, b.lon]]); + } +} + +// Keep a handle to the Generic Sensor API fallback so we can stop it. +let _absOrientSensor = null; + +function startPhoneCompass() { + if (phoneCompassListenerAdded) return; + phoneCompassListenerAdded = true; + + const addLegacy = () => { + window.addEventListener('deviceorientationabsolute', onDeviceOrientation, true); + window.addEventListener('deviceorientation', onDeviceOrientation, true); + }; + + // 1) Prefer Android-friendly Generic Sensor API when available. + // AbsoluteOrientationSensor gives true-north-referenced quaternion on Android + // (chrome://flags / modern Android Chrome have this enabled by default). + async function tryAbsoluteOrientationSensor() { + if (!('AbsoluteOrientationSensor' in window)) return false; + try { + // Permissions API (best-effort): some platforms require explicit grants. + if (navigator.permissions && navigator.permissions.query) { + try { + const res = await Promise.all([ + navigator.permissions.query({ name: 'accelerometer' }), + navigator.permissions.query({ name: 'magnetometer' }), + navigator.permissions.query({ name: 'gyroscope' }), + ]); + if (res.some(r => r && r.state === 'denied')) return false; + } catch (_) { /* some UAs don't know these names — just try */ } + } + const s = new window.AbsoluteOrientationSensor({ frequency: 30, referenceFrame: 'screen' }); + s.addEventListener('reading', () => { + try { + const q = s.quaternion; + if (!q || q.length !== 4) return; + // Convert quaternion → heading (rotation about Z, compass = 360 - yaw) + const [x, y, z, w] = q; + // yaw (Z-axis rotation) in radians + const siny_cosp = 2 * (w * z + x * y); + const cosy_cosp = 1 - 2 * (y * y + z * z); + let yaw = Math.atan2(siny_cosp, cosy_cosp); + let deg = yaw * 180 / Math.PI; + // Normalize to compass heading (CW from north) + let heading = (360 - deg) % 360; + if (heading < 0) heading += 360; + phoneCompassHeading = lowPassAngleDeg(phoneCompassHeading, heading, 0.25); + } catch (_) {} + }); + s.addEventListener('error', () => { /* fall through to legacy */ addLegacy(); }); + s.start(); + _absOrientSensor = s; + phoneCompassOk = true; + return true; + } catch (_) { + return false; + } + } + + // 2) iOS 13+ requires explicit permission for DeviceOrientationEvent. + const DOE = window.DeviceOrientationEvent; + if (DOE && typeof DOE.requestPermission === 'function') { + phoneCompassOk = false; + phoneCompassHeading = null; + const once = async () => { + document.removeEventListener('click', once, true); + try { + const r = await DOE.requestPermission(); + if (r === 'granted') { + const ok = await tryAbsoluteOrientationSensor(); + if (!ok) addLegacy(); + phoneCompassOk = true; + } + } catch(e) {} + }; + document.addEventListener('click', once, true); + return; + } + + // 3) Non-iOS path: try Generic Sensor API first, fall back to deviceorientation. + tryAbsoluteOrientationSensor().then(ok => { + if (!ok) { + phoneCompassOk = true; + addLegacy(); + } + }); +} + +function stopPhoneCompass() { + if (_absOrientSensor) { + try { _absOrientSensor.stop(); } catch (_) {} + _absOrientSensor = null; + } + if (!phoneCompassOk) { phoneCompassHeading = null; return; } + window.removeEventListener('deviceorientationabsolute', onDeviceOrientation, true); + window.removeEventListener('deviceorientation', onDeviceOrientation, true); + phoneCompassHeading = null; + phoneCompassOk = false; + phoneCompassListenerAdded = false; +} + +function onDeviceOrientation(e) { + // alpha is 0..360 deg; in many browsers it's “compass heading” when absolute + let a = null; + if (typeof e.webkitCompassHeading === 'number') { + a = e.webkitCompassHeading; // iOS + } else if (typeof e.alpha === 'number') { + // On a number of browsers/devices `alpha` grows counter-clockwise, which makes map rotation feel inverted. + // Convert to a compass-like clockwise heading. + a = 360 - e.alpha; + } + if (a == null) return; + phoneCompassHeading = lowPassAngleDeg(phoneCompassHeading, a, 0.22); +} + +function setOwnShipRotation(mk,hd) { + const h = (hd != null && !isNaN(hd)) ? normalizeDeg(hd) : null; + + // Desired behavior: + // - When map is rotated by compass (heading-up), keep the ownship marker fixed "up" on screen. + // - Otherwise, rotate the marker to show heading. + const desiredDeg = (rotateMapByCompass ? 0 : (h != null ? h : 0)); + + // If leaflet-rotate is present, use its supported per-marker rotation option. + // Plugin expects radians. + try { + if (map && typeof map.getBearing === 'function' && mk && mk.options) { + mk.options.rotation = (desiredDeg * Math.PI / 180); + if (typeof mk.update === 'function') mk.update(); + return; + } + } catch (e) {} + + // Fallback (no rotate plugin): manual CSS rotation for the icon. + const el = mk._icon; if(!el) return; + mk._rotationHeading = desiredDeg; + if(!el.dataset.osO){ el.style.transformOrigin=ownShipAnchor[0]+'px '+ownShipAnchor[1]+'px'; el.dataset.osO='1'; + if(!mk._origSetPos){mk._origSetPos=mk._setPos; mk._setPos=function(p){this._origSetPos.call(this,p);const ic=this._icon;if(ic&&this._rotationHeading!=null){const m=(ic.style.transform||'').match(/translate3d\([^)]+\)/);if(m)ic.style.transform=m[0]+' rotate('+this._rotationHeading+'deg)';}};} + } + const t=(el.style.transform||'').match(/translate3d\([^)]+\)/); + if(t) el.style.transform=desiredDeg!=null?t[0]+' rotate('+desiredDeg+'deg)':t[0]; + else if(desiredDeg!=null) el.style.transform='rotate('+desiredDeg+'deg)'; +} + +function updateOwnShipDisplay() { + try { _initOwnshipCompassUiOnce(); } catch (e) {} + const data=ownShipSource==='phone'?phoneGps:nmeaGps; + const src=document.getElementById('os-source'),co=document.getElementById('os-coords'),cr=document.getElementById('os-course'),sp=document.getElementById('os-speed'),sa=document.getElementById('os-sats'); + if(!data||data.lat==null||data.lon==null){ + if(ownShipSource==='phone'&&phoneGpsError){src.textContent=phoneGpsError;src.style.color='#f85149';} + else{src.textContent=ownShipSource==='phone'?'GPS телефона (ожидание...)':'Внутр. GPS (нет данных)';src.style.color='';} + co.textContent='-';cr.textContent='-';sp.textContent='-';sa.textContent='-'; + _lastOwnshipHeadingForRotate = null; + _setOwnshipCompassUi(); + if (rotateMapByCompass) _applyMapRotation(); + if(ownShipMarker){map.removeLayer(ownShipMarker);ownShipMarker=null;} + clearOwnShipMotionOverlays(); + return; + } + src.style.color=''; src.textContent=ownShipSource==='phone'?'GPS телефона':'Внутр. GPS (NMEA)'; + co.textContent=data.lat.toFixed(6)+', '+data.lon.toFixed(6); + cr.textContent=data.course!=null?data.course.toFixed(1)+'°':'-'; + sp.textContent=data.speed!=null?fmtSpeed(data.speed):'-'; + sa.textContent=data.satellites!=null?data.satellites:'-'; + // Prefer true heading when available; course can be misleading when drifting / low speed. + const hd = (data.heading != null && !isNaN(data.heading)) ? data.heading + : (data.course != null && !isNaN(data.course)) ? data.course + : null; + // Compass + map rotation (heading-up mode) + _lastOwnshipHeadingForRotate = (hd != null && !isNaN(hd)) ? normalizeDeg(hd) : null; + _setOwnshipCompassUi(); + if (rotateMapByCompass) _applyMapRotation(); + if(!ownShipMarker){ ownShipMarker=L.marker([data.lat,data.lon],{icon:iconOwnShip,zIndexOffset:2000}).addTo(map).bindPopup('Своё судно'); requestAnimationFrame(()=>setOwnShipRotation(ownShipMarker,hd)); } + else{ const c=ownShipMarker.getLatLng(); if(Math.abs(c.lat-data.lat)>1e-6||Math.abs(c.lng-data.lon)>1e-6) ownShipMarker.setLatLng([data.lat,data.lon]); setOwnShipRotation(ownShipMarker,hd); } + updateOwnShipMotionOverlays(data, hd); + if(followMode){ + const now = Date.now(); + const graceUntil = (typeof window._followUserPanGraceUntil === 'function') ? window._followUserPanGraceUntil() : 0; + if (now >= graceUntil) { + const ll = L.latLng(data.lat, data.lon); + const minDt = 350; // ms + const minMoveM = 2.5; + const canTime = (now - _lastFollowTs) >= minDt; + const canMove = !_lastFollowLatLng || haversineMeters(_lastFollowLatLng, ll) >= minMoveM; + if (canTime && canMove) { + _lastFollowTs = now; + _lastFollowLatLng = ll; + map.panTo(ll, {animate: true, duration: 0.25}); + } + } + } +} + +// ===== GPS source + Follow (navigator) — integrated into #map-controls ===== +(function initMapControlsGpsFollow(){ + const gpsBtn = document.getElementById('mc-gps-src'); + const followBtn = document.getElementById('mc-follow'); + const iconNmea = gpsBtn ? gpsBtn.querySelector('.mc-gps-icon-nmea') : null; + const iconPhone = gpsBtn ? gpsBtn.querySelector('.mc-gps-icon-phone') : null; + + function reflectGpsSourceUi() { + if (!gpsBtn) return; + gpsBtn.dataset.src = ownShipSource; + gpsBtn.classList.toggle('active', ownShipSource === 'phone'); + if (iconNmea) iconNmea.style.display = (ownShipSource === 'nmea') ? '' : 'none'; + if (iconPhone) iconPhone.style.display = (ownShipSource === 'phone') ? '' : 'none'; + gpsBtn.title = 'Источник GPS: ' + (ownShipSource === 'phone' ? 'телефон (переключить на внутренний NMEA)' : 'внутренний NMEA (переключить на телефон)'); + } + window._reflectGpsSourceUi = reflectGpsSourceUi; + + try { setOwnShipSource(ownShipSource); } catch (e) {} + reflectGpsSourceUi(); + + if (gpsBtn) { + gpsBtn.addEventListener('click', function(){ + const next = (ownShipSource === 'phone') ? 'nmea' : 'phone'; + setOwnShipSource(next); + reflectGpsSourceUi(); + }); + } + + // ---- Follow / Navigator mode ---- + // State: auto-return to ship after user pan; auto-zoom depending on speed. + let _followUserPanUntil = 0; // "thaw" timestamp — do not recentre for this many ms after user drag + let _followAutoZoomLast = null; // last zoom applied by speed logic + let _followProgrammaticMove = false; // set during our own panTo/setView so dragstart/zoomend don't turn off + + function speedToZoom(sogKn) { + if (sogKn == null || isNaN(sogKn) || sogKn < 0) return 15; + if (sogKn < 1) return 16; + if (sogKn < 4) return 15; + if (sogKn < 10) return 14; + if (sogKn < 18) return 13; + if (sogKn < 26) return 12; + return 11; + } + + function setFollow(on) { + followMode = !!on; + if (followBtn) followBtn.classList.toggle('active', followMode); + if (followMode) { + _followUserPanUntil = 0; + updateOwnShipDisplay(); + try { maybeApplyFollowZoom(true); } catch(_) {} + } + } + window._setFollowMode = setFollow; + + function maybeApplyFollowZoom(force) { + if (!followMode) return; + const d = ownShipSource === 'phone' ? phoneGps : nmeaGps; + if (!d || d.lat == null || d.lon == null) return; + const desired = speedToZoom(d.speed); + const cur = map.getZoom(); + // Only act when difference is meaningful, or when forced. + if (force || _followAutoZoomLast == null || Math.abs(cur - desired) >= 1) { + if (cur !== desired) { + _followProgrammaticMove = true; + try { map.setZoom(desired, { animate: true }); } catch(_) {} + setTimeout(() => { _followProgrammaticMove = false; }, 300); + } + _followAutoZoomLast = desired; + } + } + // Re-evaluate zoom periodically while follow is on + setInterval(() => { try { maybeApplyFollowZoom(false); } catch(_) {} }, 4000); + + if (followBtn) { + followBtn.addEventListener('click', function(){ setFollow(!followMode); }); + } + + // When user drags the map, pause auto-recentre for ~4s (navigator-like behaviour: + // you can glance around and it snaps back). A deliberate long pan still keeps follow + // on, it just cools down a bit. + map.on('dragstart', () => { + if (_followProgrammaticMove) return; + if (followMode) _followUserPanUntil = Date.now() + 4000; + }); + map.on('zoomstart', () => { + if (_followProgrammaticMove) return; + // User-initiated zoom pauses auto-zoom for ~20s so manual override sticks. + if (followMode) _followAutoZoomLast = map.getZoom(); + }); + + // Hook pan behaviour into updateOwnShipDisplay by patching the check via a flag. + window._followUserPanGraceUntil = () => _followUserPanUntil; +})(); + +// ===================== Sidebar / OwnShip panel sizing ===================== +function adjustSidebarHeight() { + const sidebar = document.getElementById('sidebar'); + const ownship = document.getElementById('ownship-panel'); + const container = document.getElementById('page-map'); + if (!sidebar || !ownship || !container || window.innerWidth <= 600) { + sidebar.style.maxHeight = ''; + return; + } + const containerH = container.clientHeight; + const ownshipH = ownship.offsetHeight; + sidebar.style.maxHeight = Math.max(120, containerH - ownshipH - 24) + 'px'; +} +window.addEventListener('resize', adjustSidebarHeight); + +// ===================== Mobile panel tabs ===================== +function updateMobCursorCoords() { + // Same breakpoint as CSS: mobile width OR small height on touch devices + const isMobileLayout = (window.innerWidth <= 600) || (window.matchMedia && window.matchMedia('(max-height:520px) and (pointer:coarse)').matches); + if (!isMobileLayout) { document.getElementById('cursor-coords').style.bottom = ''; return; } + const cc = document.getElementById('cursor-coords'); + const sb = document.getElementById('sidebar'); + const os = document.getElementById('ownship-panel'); + const isLandscapeCompact = window.matchMedia && window.matchMedia('(max-height:520px) and (pointer:coarse)').matches; + if (isLandscapeCompact) { + // In landscape mode panels are on the right, keep coords near bottom-left. + cc.style.bottom = '8px'; + return; + } + const bar = document.getElementById('mob-panel-bar'); + const barH = bar ? Math.round(bar.getBoundingClientRect().height || 0) : 0; + let panelH = 0; + if (sb.classList.contains('mob-open')) panelH = sb.offsetHeight; + else if (os.classList.contains('mob-open')) panelH = os.offsetHeight; + cc.style.bottom = (barH + panelH + 8) + 'px'; +} +(function() { + const tabs = document.querySelectorAll('.mob-panel-tab'); + const sidebarEl = document.getElementById('sidebar'); + const ownshipEl = document.getElementById('ownship-panel'); + const barEl = document.getElementById('mob-panel-bar'); + + function closeMobPanels() { + tabs.forEach(t => t.classList.remove('active')); + sidebarEl.classList.remove('mob-open'); + ownshipEl.classList.remove('mob-open'); + setTimeout(() => { try { map.invalidateSize(); } catch (_) {} updateMobCursorCoords(); }, 50); + } + + // Allow drag-to-close on the mobile bar (prevents instinctive "pull to refresh"). + try { + if (barEl) barEl.style.touchAction = 'none'; + } catch (e) {} + (function installBarDragToClose() { + if (!barEl) return; + let dragging = false; + let startX = 0, startY = 0; + let lastX = 0, lastY = 0; + let pointerId = null; + + const isLandscapeCompact = () => (window.matchMedia && window.matchMedia('(max-height:520px) and (pointer:coarse)').matches); + const thresholdPx = 26; + + function anyPanelOpen() { + return (sidebarEl && sidebarEl.classList.contains('mob-open')) || (ownshipEl && ownshipEl.classList.contains('mob-open')); + } + + barEl.addEventListener('pointerdown', (e) => { + try { e.preventDefault(); } catch (_) {} + if (!anyPanelOpen()) return; // nothing to close + dragging = true; + pointerId = e.pointerId; + startX = lastX = e.clientX; + startY = lastY = e.clientY; + try { barEl.setPointerCapture(pointerId); } catch (_) {} + }, { passive: false }); + + barEl.addEventListener('pointermove', (e) => { + if (!dragging || (pointerId != null && e.pointerId !== pointerId)) return; + try { e.preventDefault(); } catch (_) {} + lastX = e.clientX; + lastY = e.clientY; + const dx = lastX - startX; + const dy = lastY - startY; + if (isLandscapeCompact()) { + // Bar is on the right; drag further right to close. + if (dx > thresholdPx) { + dragging = false; + closeMobPanels(); + } + } else { + // Bar is at the bottom; drag down to close. + if (dy > thresholdPx) { + dragging = false; + closeMobPanels(); + } + } + }, { passive: false }); + + function endDrag(e) { + if (!dragging) return; + if (pointerId != null && e && e.pointerId !== pointerId) return; + dragging = false; + pointerId = null; + } + + barEl.addEventListener('pointerup', endDrag, { passive: true }); + barEl.addEventListener('pointercancel', endDrag, { passive: true }); + window.addEventListener('blur', () => { dragging = false; pointerId = null; }); + })(); + + // Swipe-down-to-close on the panels themselves (the "sheet" UX). + // Only the top grip zone initiates a swipe — otherwise the user can scroll the list inside. + (function installSheetSwipeToClose() { + const GRIP_ZONE_PX = 26; + const CLOSE_THRESHOLD_PX = 64; + const isLandscapeCompact = () => (window.matchMedia && window.matchMedia('(max-height:520px) and (pointer:coarse)').matches); + + function install(el) { + if (!el) return; + let dragging = false, startX = 0, startY = 0, pointerId = null, curDelta = 0; + + function reset(animated) { + el.classList.remove('mob-swiping'); + if (animated) { + el.style.transition = 'transform .22s ease'; + } else { + el.style.transition = ''; + } + el.style.transform = ''; + setTimeout(() => { try { el.style.transition = ''; } catch(_) {} }, 260); + } + + el.addEventListener('pointerdown', (e) => { + if (!el.classList.contains('mob-open')) return; + const rect = el.getBoundingClientRect(); + const localY = e.clientY - rect.top; + const localX = e.clientX - rect.left; + // Restrict starting zone to the top grip (portrait) or right grip (landscape). + if (isLandscapeCompact()) { + if (localX > GRIP_ZONE_PX) return; // right-side bar means the grip is on the LEFT edge of the panel itself + } else { + if (localY > GRIP_ZONE_PX) return; + } + dragging = true; + pointerId = e.pointerId; + startX = e.clientX; startY = e.clientY; + curDelta = 0; + el.classList.add('mob-swiping'); + try { el.setPointerCapture(pointerId); } catch(_) {} + }, { passive: true }); + + el.addEventListener('pointermove', (e) => { + if (!dragging || (pointerId != null && e.pointerId !== pointerId)) return; + const dy = e.clientY - startY; + const dx = e.clientX - startX; + if (isLandscapeCompact()) { + if (dx > 0) { + curDelta = dx; + el.style.transform = 'translateX(' + dx + 'px)'; + } + } else { + if (dy > 0) { + curDelta = dy; + el.style.transform = 'translateY(' + dy + 'px)'; + } + } + }, { passive: true }); + + function endSwipe(e) { + if (!dragging) return; + if (pointerId != null && e && e.pointerId !== pointerId) return; + dragging = false; + pointerId = null; + if (curDelta > CLOSE_THRESHOLD_PX) { + // Animate off-screen then close + el.style.transition = 'transform .18s ease-in'; + el.style.transform = isLandscapeCompact() ? 'translateX(120%)' : 'translateY(120%)'; + setTimeout(() => { + closeMobPanels(); + reset(false); + }, 170); + } else { + reset(true); + } + curDelta = 0; + } + el.addEventListener('pointerup', endSwipe, { passive: true }); + el.addEventListener('pointercancel', endSwipe, { passive: true }); + } + + install(sidebarEl); + install(ownshipEl); + })(); + + tabs.forEach(tab => { + tab.addEventListener('click', () => { + const panel = tab.dataset.panel; + const wasActive = tab.classList.contains('active'); + tabs.forEach(t => t.classList.remove('active')); + sidebarEl.classList.remove('mob-open'); + ownshipEl.classList.remove('mob-open'); + if (!wasActive) { + tab.classList.add('active'); + if (panel === 'sidebar') sidebarEl.classList.add('mob-open'); + else ownshipEl.classList.add('mob-open'); + } + setTimeout(() => { map.invalidateSize(); updateMobCursorCoords(); }, 50); + }); + }); +})(); +window.addEventListener('resize', updateMobCursorCoords); + +// ===================== Stats ===================== +const AIS_TYPE_NAMES = {1:'Позиция класс A',2:'Позиция класс A',3:'Позиция класс A',5:'Статика класс A',18:'Позиция класс B',19:'Расш. позиция B',24:'Статика класс B'}; +function fmtUptime(s){const h=Math.floor(s/3600),m=Math.floor(s%3600/60),sec=s%60;return (h?h+'ч ':'')+(m?m+'м ':'')+sec+'с';} +function _setStatText(id, text) { + const el = document.getElementById(id); + if (el) el.textContent = text; +} + +function _counterSumByPrefix(counters, prefixes) { + let out = 0; + if (!counters) return 0; + for (const [k, v] of Object.entries(counters)) { + for (const p of prefixes) { + if (k.startsWith(p)) { out += Number(v) || 0; break; } + } + } + return out; +} + +function _renderStatsTableBody(tbodyId, rows) { + const tb = document.getElementById(tbodyId); + if (!tb) return; + tb.innerHTML = ''; + for (const r of rows) { + const tr = document.createElement('tr'); + const v = r.value; + const isErr = !!r.isErr; + tr.innerHTML = + '' + escHtml(r.label) + '' + + '' + escHtml(v == null ? '-' : String(v)) + ''; + tb.appendChild(tr); + } +} + +function updateStats(){ + try{ + const s = AisHub.stats || {}; + const sys = AisHub.sysinfo || {}; + const counters = s.counters || {}; + + // Vessels: считаем по in-memory витрине (ais_hub отдаёт total в state.warmup, но + // "активных" удобнее взять из клиентского Map). + const nowF = Date.now() / 1000; + let active = 0, total = AisHub.vessels.size, classA = 0, classB = 0; + for (const v of AisHub.vessels.values()) { + if (v && v.lat != null && v.lon != null && (nowF - (v.timestamp || 0)) < 600) active++; + if (v && v.vessel_class === 'A') classA++; + else if (v && v.vessel_class === 'B') classB++; + } + _setStatText('st-active', active); + _setStatText('st-total', total); + _setStatText('st-class-a', classA); + _setStatText('st-class-b', classB); + + const aisMessages = _counterSumByPrefix(counters, ['ais_msg_']); + _setStatText('st-ais-msg', aisMessages); + _setStatText('st-gps-msg', counters.state_ownship_updates != null ? counters.state_ownship_updates : '-'); + _setStatText('st-gps-fix', AisHub.ownship && AisHub.ownship.lat != null ? 'Есть' : 'Нет'); + _setStatText('st-uptime', s.uptime_sec != null ? fmtUptime(Math.floor(s.uptime_sec)) : '-'); + _setStatText('st-sys-uptime', sys.sys_uptime != null ? fmtUptime(sys.sys_uptime) : '-'); + + try{ + const sn = sys.server_now != null ? parseInt(sys.server_now, 10) : null; + const el = document.getElementById('st-rx-time'); + if(el){ + if(sn != null && !isNaN(sn)){ + const clientNow = Math.floor(Date.now()/1000); + const d = clientNow - sn; + const sign = d > 0 ? '+' : ''; + el.textContent = fmtTime(sn) + ' (' + sign + d + 'с)'; + } else el.textContent = '-'; + } + }catch(e){} + + _setStatText('st-cpu-temp', sys.cpu_temp != null ? sys.cpu_temp + '°C' : '-'); + _setStatText('st-cpu-load', sys.cpu_percent != null ? sys.cpu_percent + '%' : '-'); + _setStatText('st-mem', sys.mem_total_mb != null ? sys.mem_used_mb + ' / ' + sys.mem_total_mb + ' МБ (' + sys.mem_pct + '%)' : '-'); + + // AIS/NMEA rate: ais_hub шлёт stats.update раз в 5 секунд → считаем rate между снимками. + _setStatText('st-ais-rate', '-'); + _setStatText('st-nmea-rate', '-'); + _setStatText('st-test-mmsi', '-'); + _setStatText('st-test-mmsi-a', '-'); + _setStatText('st-test-mmsi-b', '-'); + + const tb = document.getElementById('st-ais-types'); + if (tb) { + tb.innerHTML = ''; + const byType = {}; + for (const [k, v] of Object.entries(counters)) { + if (k.startsWith('ais_msg_')) { + const n = k.slice('ais_msg_'.length); + byType[n] = v; + } + } + for (const [t, c] of Object.entries(byType).sort((a, b) => b[1] - a[1])) { + const tr = document.createElement('tr'); + tr.innerHTML = '' + t + '' + (AIS_TYPE_NAMES[t] || 'Тип ' + t) + '' + c + ''; + tb.appendChild(tr); + } + } + + // Expanded parsing/error statistics (toggle section). + const parseRows = [ + { key: 'parser_errors', label: 'parser_errors', isErr: true }, + { key: 'parser_checksum_errors', label: 'parser_checksum_errors', isErr: true }, + { key: 'ais_fragment_errors', label: 'ais_fragment_errors', isErr: true }, + { key: 'ais_fragment_timeouts', label: 'ais_fragment_timeouts', isErr: true }, + ].map(x => ({ label: x.label, value: counters[x.key], isErr: x.isErr && (Number(counters[x.key]) || 0) > 0 })); + _renderStatsTableBody('st-parse-errors', parseRows); + + const udpRows = [ + { key: 'ais_udp_datagrams', label: 'ais_udp_datagrams' }, + { key: 'ais_udp_malformed', label: 'ais_udp_malformed', isErr: true }, + { key: 'udp_events_oversize', label: 'udp_events_oversize', isErr: true }, + ].map(x => ({ label: x.label, value: counters[x.key], isErr: x.isErr && (Number(counters[x.key]) || 0) > 0 })); + _renderStatsTableBody('st-udp-errors', udpRows); + + const storageRows = [ + { key: 'storage_batches', label: 'storage_batches' }, + { key: 'storage_rows', label: 'storage_rows' }, + { key: 'storage_errors', label: 'storage_errors', isErr: true }, + { key: 'storage_last_batch', label: 'storage_last_batch (gauge)' }, + ].map(x => { + const v = x.key === 'storage_last_batch' ? (s.gauges || {}).storage_last_batch : counters[x.key]; + return { label: x.label, value: v, isErr: x.isErr && (Number(v) || 0) > 0 }; + }); + _renderStatsTableBody('st-storage-errors', storageRows); + + const miscRows = [ + { key: 'ws_clients', label: 'ws_clients (gauge)' }, + { key: 'ws_clients_total', label: 'ws_clients_total' }, + { key: 'supervisor_restarts_ingest_ais_udp', label: 'supervisor_restarts_ingest_ais_udp', isErr: true }, + { key: 'udp_events_sent', label: 'udp_events_sent' }, + ].map(x => { + const v = x.key === 'ws_clients' ? (s.gauges || {}).ws_clients : counters[x.key]; + return { label: x.label, value: v, isErr: x.isErr && (Number(v) || 0) > 0 }; + }); + _renderStatsTableBody('st-misc-counters', miscRows); + }catch(e){} +} + +// Локальные системные метрики (CPU/temp/mem/uptime) ais_hub не отдаёт — +// тянем отдельно с локального /api/sysinfo, только пока открыта вкладка «Статистика». +async function refreshSysinfo(){ + try { + const r = await fetch('/api/sysinfo'); + const d = await r.json(); + if (d && typeof d === 'object') AisHub.sysinfo = d; + } catch (e) {} +} + +// ===================== TDMA Slots ===================== +const SLOT_MIN_COLS = 30, SLOT_MAX_COLS = 75, SLOT_CELL = 14, SLOT_LABEL_W = 42; +const RSSI_WINDOW_SEC = 60; +let slotsOpen = false; +const slotState = {a: null, b: null}; +const slotsTooltip = document.getElementById('slots-tooltip'); + +document.getElementById('slots-toggle').addEventListener('click', function() { + slotsOpen = !slotsOpen; + document.getElementById('slots-content').classList.toggle('open', slotsOpen); + document.getElementById('slots-arrow').classList.toggle('open', slotsOpen); + if (slotsOpen) updateSlots(); +}); + +function _hexToBase64(hex) { + if (!hex) return ''; + const bin = new Uint8Array(Math.floor(hex.length / 2)); + for (let i = 0; i < bin.length; i++) bin[i] = parseInt(hex.substr(i * 2, 2), 16); + let s = ''; + for (let i = 0; i < bin.length; i++) s += String.fromCharCode(bin[i]); + try { return btoa(s); } catch (e) { return ''; } +} + +function _buildSlotChannelData(ch) { + const UPPER = ch.toUpperCase(); + const occ = AisHub.slots[UPPER]; + const power_history = AisHub.livePower[UPPER] || []; + const rssi_history = AisHub.rssiHistory[UPPER] || []; + const evCutoff = Date.now() / 1000 - 90; + const event_history = (AisHub.signalEvents[UPPER] || []).filter(e => (e.ts || 0) >= evCutoff); + // Если нет данных по слотам, но есть радио/RSSI — всё равно рисуем график. + if (!occ) { + const hasAny = (power_history && power_history.length) || (rssi_history && rssi_history.length) || (event_history && event_history.length); + if (!hasAny) return null; + return { + no_slots: true, + rssi_history, + power_history, + event_history, + }; + } + const detail = AisHub.slotDetail[UPPER]; + const data = Object.assign({}, occ); + // В ais_hub bitmap приходит как hex-строка, а рендер использует base64 (atob). + if (typeof occ.bitmap === 'string' && occ.bitmap.length > 0) { + // heuristic: hex если только [0-9a-f] + if (/^[0-9a-fA-F]+$/.test(occ.bitmap)) data.bitmap = _hexToBase64(occ.bitmap); + } + data.rssi_history = rssi_history; + data.power_history = power_history; + data.event_history = event_history; + if (detail && detail.utc_minute === occ.utc_minute) { + data.detail_signals = detail.signals || {}; + data.detail_timestamp = detail.timestamp; + } + return data; +} + +function updateSlots() { + try { + renderSlotChannel('a', _buildSlotChannelData('A')); + renderSlotChannel('b', _buildSlotChannelData('B')); + } catch(e) { console.error('updateSlots:', e); } +} + +function renderSlotChannel(ch, data) { + const info = document.getElementById('slots-info-' + ch); + const wrap = document.getElementById('slots-wrap-' + ch); + const canvas = document.getElementById('slots-canvas-' + ch); + const rssiCanvas = document.getElementById('slots-rssi-' + ch); + const bar = document.getElementById('slots-bar-' + ch); + const barFill = document.getElementById('slots-bar-fill-' + ch); + if (!data) { + info.innerHTML = 'Нет данных'; + wrap.style.display = 'none'; + rssiCanvas.style.display = 'none'; + bar.style.display = 'none'; + slotState[ch] = null; + return; + } + if (data.no_slots) { + info.innerHTML = 'Нет данных по слотам'; + bar.style.display = 'none'; + wrap.style.display = 'none'; + slotState[ch] = null; + renderRssiChart(ch, data.rssi_history, data.power_history, data.event_history); + return; + } + const free = data.total - data.occupied; + const pct = (data.occupied / data.total * 100).toFixed(1); + const age = Math.floor(Date.now()/1000) - data.timestamp; + const ageStr = age < 60 ? age + 'с назад' : Math.floor(age/60) + 'м назад'; + const utcDate = new Date(data.utc_minute * 60000); + const utcStr = [utcDate.getUTCHours(), utcDate.getUTCMinutes()].map(v=>String(v).padStart(2,'0')).join(':') + ' UTC'; + const nfStr = data.noise_floor_dbm != null ? data.noise_floor_dbm.toFixed(1) + ' dBm' : '-'; + const thStr = data.threshold_dbm != null ? data.threshold_dbm.toFixed(1) + ' dBm' : '-'; + let anchorExtra = ''; + const t0n = data.slot0_unix_ms != null ? Number(data.slot0_unix_ms) : 0; + if (t0n > 0 && t0n <= Number.MAX_SAFE_INTEGER) { + anchorExtra += ' | слот0: ' + new Date(t0n).toISOString().slice(11, 19) + 'Z'; + } + const fon = data.first_occupied_unix_ms != null ? Number(data.first_occupied_unix_ms) : 0; + if (fon > 0 && fon <= Number.MAX_SAFE_INTEGER) { + anchorExtra += ' | 1-й декод: ' + new Date(fon).toISOString().slice(11, 19) + 'Z'; + } + info.textContent = utcStr + ' | Занято: ' + data.occupied + ' (' + pct + '%) | Свободно: ' + free + ' | NF: ' + nfStr + ' | TH: ' + thStr + anchorExtra + ' | ' + ageStr; + + bar.style.display = ''; + const occPct = data.occupied / data.total * 100; + barFill.style.width = occPct + '%'; + barFill.style.background = occPct > 80 ? '#f85149' : occPct > 50 ? '#d29922' : '#238636'; + + renderRssiChart(ch, data.rssi_history, data.power_history, data.event_history); + + wrap.style.display = ''; + const wrapWidth = Math.max(wrap.clientWidth || 0, 320); + const slotCols = Math.max(SLOT_MIN_COLS, Math.min(SLOT_MAX_COLS, Math.floor((wrapWidth - SLOT_LABEL_W) / SLOT_CELL))); + const slotRows = Math.ceil(data.total / slotCols); + canvas.width = SLOT_LABEL_W + slotCols * SLOT_CELL; + canvas.height = slotRows * SLOT_CELL; + const ctx = canvas.getContext('2d'); + const raw = atob(data.bitmap); + const bitmap = new Uint8Array(raw.length); + for (let i = 0; i < raw.length; i++) bitmap[i] = raw.charCodeAt(i); + const detailSignals = data.detail_signals || {}; + slotState[ch] = { + total: data.total, + bitmap: bitmap, + detailSignals: detailSignals, + cols: slotCols, + rows: slotRows, + cell: SLOT_CELL, + labelW: SLOT_LABEL_W, + slot0UnixMs: data.slot0_unix_ms != null ? Number(data.slot0_unix_ms) : 0, + firstOccupiedUnixMs: data.first_occupied_unix_ms != null ? Number(data.first_occupied_unix_ms) : 0, + }; + + ctx.clearRect(0, 0, canvas.width, canvas.height); + + ctx.font = '10px monospace'; + ctx.fillStyle = '#484f58'; + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + for (let r = 0; r < slotRows; r += 5) { + const sec = Math.round(r * slotCols * 60 / data.total); + ctx.fillText(sec + 's', SLOT_LABEL_W - 4, r * SLOT_CELL + SLOT_CELL / 2); + } + + for (let slot = 0; slot < data.total; slot++) { + const occupied = (bitmap[slot >> 3] >> (slot & 7)) & 1; + const x = SLOT_LABEL_W + (slot % slotCols) * SLOT_CELL; + const y = Math.floor(slot / slotCols) * SLOT_CELL; + ctx.fillStyle = occupied ? '#f85149' : '#238636'; + ctx.fillRect(x, y, SLOT_CELL - 1, SLOT_CELL - 1); + } +} + +function renderRssiChart(ch, history, powerHistory, eventHistory) { + const canvas = document.getElementById('slots-rssi-' + ch); + const hasHistory = history && history.length >= 2; + const hasPower = powerHistory && powerHistory.length >= 2; + const hasEvents = eventHistory && eventHistory.length >= 1; + if (!hasHistory && !hasPower && !hasEvents) { canvas.style.display = 'none'; return; } + canvas.style.display = ''; + const cssWidth = Math.max(320, Math.floor(canvas.getBoundingClientRect().width || canvas.parentElement?.clientWidth || 482)); + const cssHeight = 90; + const dpr = window.devicePixelRatio || 1; + canvas.width = Math.floor(cssWidth * dpr); + canvas.height = Math.floor(cssHeight * dpr); + const c = canvas.getContext('2d'); + c.setTransform(1, 0, 0, 1, 0, 0); + c.scale(dpr, dpr); + const W = cssWidth, H = cssHeight; + const pad = {t: 10, b: 16, l: 44, r: 10}; + const pW = W - pad.l - pad.r, pH = H - pad.t - pad.b; + + const latestTs = Math.max( + hasHistory ? history[history.length - 1].ts : -Infinity, + hasPower ? powerHistory[powerHistory.length - 1].ts : -Infinity, + hasEvents ? eventHistory[eventHistory.length - 1].ts : -Infinity, + Date.now() / 1000 + ); + const xMax = latestTs; + const xMin = xMax - RSSI_WINDOW_SEC; + + const visibleHistory = hasHistory ? history.filter(p => p.ts >= xMin && p.ts <= xMax) : []; + const visiblePower = hasPower ? powerHistory.filter(p => p.ts >= xMin && p.ts <= xMax) : []; + const visibleEvents = hasEvents ? eventHistory.filter(ev => ev.ts >= xMin && ev.ts <= xMax) : []; + + let yMin = Infinity, yMax = -Infinity; + if (visibleHistory.length) { + for (const p of visibleHistory) { + if (p.nf != null) { yMin = Math.min(yMin, p.nf); yMax = Math.max(yMax, p.nf); } + if (p.th != null) { yMin = Math.min(yMin, p.th); yMax = Math.max(yMax, p.th); } + } + } + if (visiblePower.length) { + for (const p of visiblePower) { + if (p.power != null) { yMin = Math.min(yMin, p.power); yMax = Math.max(yMax, p.power); } + } + } + if (!isFinite(yMin)) { canvas.style.display = 'none'; return; } + const yPad = Math.max((yMax - yMin) * 0.15, 2); + yMin -= yPad; yMax += yPad; + const xRange = Math.max(xMax - xMin, 1); + + c.clearRect(0, 0, W, H); + c.fillStyle = '#0d1117'; + c.fillRect(pad.l, pad.t, pW, pH); + + c.strokeStyle = '#161b22'; + c.lineWidth = 1; + const gridSteps = 4; + for (let i = 0; i <= gridSteps; i++) { + const gy = pad.t + pH * i / gridSteps; + c.beginPath(); c.moveTo(pad.l, gy); c.lineTo(pad.l + pW, gy); c.stroke(); + } + + function toX(ts) { return pad.l + (ts - xMin) / xRange * pW; } + function toY(v) { return pad.t + (1 - (v - yMin) / (yMax - yMin)) * pH; } + + /* Начало кадра AIS TDMA — граница UTC-минуты */ + c.save(); + c.beginPath(); + c.rect(pad.l, pad.t, pW, pH); + c.clip(); + c.strokeStyle = '#3fb950'; + c.lineWidth = 1; + c.setLineDash([3, 3]); + let frameTs = Math.floor(xMin / 60) * 60; + if (frameTs < xMin) frameTs += 60; + for (; frameTs <= xMax; frameTs += 60) { + const fx = toX(frameTs); + c.beginPath(); + c.moveTo(fx, pad.t); + c.lineTo(fx, pad.t + pH); + c.stroke(); + } + c.setLineDash([]); + c.restore(); + + function drawLine(src, key, color) { + c.save(); + c.beginPath(); + c.rect(pad.l, pad.t, pW, pH); + c.clip(); + c.beginPath(); c.strokeStyle = color; c.lineWidth = 1.5; + let started = false; + for (const p of src) { + if (p[key] == null) continue; + const x = toX(p.ts), y = toY(p[key]); + if (!started) { c.moveTo(x, y); started = true; } else c.lineTo(x, y); + } + c.stroke(); + c.restore(); + } + if (visiblePower.length) drawLine(visiblePower, 'power', '#c678dd'); + if (visibleHistory.length) drawLine(visibleHistory, 'nf', '#4fc3f7'); + if (visibleHistory.length) drawLine(visibleHistory, 'th', '#f0883e'); + + if (visibleEvents.length) { + c.save(); + c.beginPath(); + c.rect(pad.l, pad.t, pW, pH); + c.clip(); + c.strokeStyle = '#ffd166'; + c.fillStyle = '#ffd166'; + c.lineWidth = 1; + c.font = '8px monospace'; + c.textAlign = 'center'; + c.textBaseline = 'top'; + for (const ev of visibleEvents) { + const x = toX(ev.ts); + c.beginPath(); + c.moveTo(x, pad.t); + c.lineTo(x, pad.t + pH); + c.stroke(); + c.fillText(String(ev.slot), x, pad.t + 2); + } + c.restore(); + } + + c.font = '9px monospace'; + c.fillStyle = '#484f58'; + c.textAlign = 'right'; + c.textBaseline = 'top'; + c.fillText(yMax.toFixed(0) + ' dBm', pad.l - 3, pad.t); + c.textBaseline = 'bottom'; + c.fillText(yMin.toFixed(0) + ' dBm', pad.l - 3, pad.t + pH); + const yMid = (yMin + yMax) / 2; + c.textBaseline = 'middle'; + c.fillText(yMid.toFixed(0), pad.l - 3, pad.t + pH / 2); + + c.textAlign = 'left'; c.textBaseline = 'top'; + const t0 = new Date(xMin * 1000), t1 = new Date(xMax * 1000); + const fmt = d => [d.getHours(), d.getMinutes()].map(v=>String(v).padStart(2,'0')).join(':'); + c.fillText(fmt(t0), pad.l, pad.t + pH + 3); + c.textAlign = 'right'; + c.fillText(fmt(t1), pad.l + pW, pad.t + pH + 3); + + const lastHistory = visibleHistory.length ? visibleHistory[visibleHistory.length - 1] : null; + const lastPower = visiblePower.length ? visiblePower[visiblePower.length - 1] : null; + if (lastPower && lastPower.power != null) { + c.fillStyle = '#c678dd'; c.textAlign = 'left'; c.textBaseline = 'bottom'; + c.fillText(lastPower.power.toFixed(1), toX(lastPower.ts) + 3, toY(lastPower.power)); + } + if (lastHistory && lastHistory.nf != null) { + c.fillStyle = '#4fc3f7'; c.textAlign = 'left'; c.textBaseline = 'bottom'; + c.fillText(lastHistory.nf.toFixed(1), toX(lastHistory.ts) + 3, toY(lastHistory.nf)); + } + if (lastHistory && lastHistory.th != null) { + c.fillStyle = '#f0883e'; c.textAlign = 'left'; c.textBaseline = 'top'; + c.fillText(lastHistory.th.toFixed(1), toX(lastHistory.ts) + 3, toY(lastHistory.th)); + } +} + +function buildSlotInfoText(ch, st, slot) { + const occ = (st.bitmap[slot >> 3] >> (slot & 7)) & 1; + const timeSec = (slot * 60 / st.total).toFixed(2); + let text = 'Канал ' + ch.toUpperCase() + ' | Слот ' + slot + ' | +' + timeSec + 'с от начала кадра | ' + (occ ? 'Занят' : 'Свободен'); + const t0 = st.slot0UnixMs; + if (t0 != null && t0 > 0) { + const n = Number(t0); + if (Number.isFinite(n) && n <= Number.MAX_SAFE_INTEGER) { + const slotMs = (60000 * slot) / st.total; + const abs = new Date(n + slotMs); + text += ' | UTC ' + abs.toISOString().replace('T', ' ').replace(/\.\d{3}Z$/, 'Z'); + } + } + if (occ && st.detailSignals && Object.prototype.hasOwnProperty.call(st.detailSignals, slot)) { + text += ' | Signal ' + st.detailSignals[slot].toFixed(1) + ' dB'; + } + return text; +} + +function slotCanvasHover(e, ch) { + const st = slotState[ch]; + if (!st) { slotsTooltip.style.display = 'none'; return; } + const canvas = e.target; + const rect = canvas.getBoundingClientRect(); + const sx = canvas.width / rect.width, sy = canvas.height / rect.height; + const mx = (e.clientX - rect.left) * sx, my = (e.clientY - rect.top) * sy; + const col = Math.floor((mx - st.labelW) / st.cell); + const row = Math.floor(my / st.cell); + if (col < 0 || col >= st.cols || row < 0 || row >= st.rows) { slotsTooltip.style.display = 'none'; return; } + const slot = row * st.cols + col; + if (slot >= st.total) { slotsTooltip.style.display = 'none'; return; } + slotsTooltip.textContent = buildSlotInfoText(ch, st, slot); + slotsTooltip.style.display = ''; + slotsTooltip.style.left = (e.clientX + 14) + 'px'; + slotsTooltip.style.top = (e.clientY - 10) + 'px'; +} +document.getElementById('slots-canvas-a').addEventListener('mousemove', function(e){ slotCanvasHover(e, 'a'); }); +document.getElementById('slots-canvas-b').addEventListener('mousemove', function(e){ slotCanvasHover(e, 'b'); }); +document.getElementById('slots-canvas-a').addEventListener('mouseleave', function(){ slotsTooltip.style.display='none'; }); +document.getElementById('slots-canvas-b').addEventListener('mouseleave', function(){ slotsTooltip.style.display='none'; }); + +// ===================== Test Slot Send ===================== +document.getElementById('test-slot-send').addEventListener('click', async function() { + const btn = this; + const status = document.getElementById('test-slot-status'); + const channel = document.getElementById('test-slot-channel').value; + const slot = parseInt(document.getElementById('test-slot-number').value, 10); + if (isNaN(slot) || slot < 0 || slot > 2249) { + status.textContent = 'Слот 0\u20132249'; + status.className = 'slots-test-status err'; + return; + } + btn.disabled = true; + status.textContent = 'Отправка...'; + status.className = 'slots-test-status wait'; + try { + const r = await fetch('/api/send_test_slot', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({channel, slot}) + }); + const data = await r.json(); + if (data.ok) { + status.textContent = 'OK \u2192 ' + data.dest + ' (' + data.size + 'B)'; + status.className = 'slots-test-status ok'; + } else { + status.textContent = data.error || 'Ошибка'; + status.className = 'slots-test-status err'; + } + } catch(e) { + status.textContent = 'Ошибка: ' + e.message; + status.className = 'slots-test-status err'; + } + btn.disabled = false; +}); + +// Click on slot canvas to fill slot number +function slotCanvasClick(e, ch) { + const st = slotState[ch]; + if (!st) return; + const canvas = e.target; + const rect = canvas.getBoundingClientRect(); + const sx = canvas.width / rect.width, sy = canvas.height / rect.height; + const mx = (e.clientX - rect.left) * sx, my = (e.clientY - rect.top) * sy; + const col = Math.floor((mx - st.labelW) / st.cell); + const row = Math.floor(my / st.cell); + if (col < 0 || col >= st.cols || row < 0 || row >= st.rows) return; + const slot = row * st.cols + col; + if (slot >= st.total) return; + document.getElementById('test-slot-number').value = slot; + document.getElementById('test-slot-channel').value = ch === 'a' ? 'A' : 'B'; + document.getElementById('slot-selected-info').textContent = buildSlotInfoText(ch, st, slot); +} +document.getElementById('slots-canvas-a').addEventListener('click', function(e){ slotCanvasClick(e, 'a'); }); +document.getElementById('slots-canvas-b').addEventListener('click', function(e){ slotCanvasClick(e, 'b'); }); +window.addEventListener('resize', () => { if (slotsOpen) updateSlots(); }); + +// ===================== Settings ===================== +document.getElementById('set-server').textContent=location.host; +document.getElementById('set-https').textContent=location.protocol==='https:'?'Да':'Нет'; +document.getElementById('set-secure').textContent=window.isSecureContext?'Да':'Нет'; + +(function initUnitSettings() { + const distSel = document.getElementById('set-dist-unit'); + distSel.value = distUnit; + distSel.addEventListener('change', () => { + distUnit = distSel.value; + sSet('distUnit', distUnit); + document.getElementById('range-value').textContent = fmtRange(getRangeNM()); + }); + const speedSel = document.getElementById('set-speed-unit'); + speedSel.value = speedUnit; + speedSel.addEventListener('change', () => { + speedUnit = speedSel.value; + sSet('speedUnit', speedUnit); + }); +})(); + +(function initDangerRadiusSettings() { + const warnEl = document.getElementById('set-warn-radius'); + const nearEl = document.getElementById('set-near-radius'); + const warnSl = document.getElementById('set-warn-radius-slider'); + const nearSl = document.getElementById('set-near-radius-slider'); + const warnUnit = document.getElementById('set-warn-radius-unit'); + const nearUnit = document.getElementById('set-near-radius-unit'); + if (!warnEl || !nearEl || !warnSl || !nearSl) return; + + const BASE_MAX_NM = 50; + function refreshUiForUnit() { + if (warnUnit) warnUnit.textContent = uiUnitName(); + if (nearUnit) nearUnit.textContent = uiUnitName(); + const maxUi = nmToUi(BASE_MAX_NM); + warnSl.max = String(maxUi); + nearSl.max = String(maxUi); + // keep current NM values, just re-render in UI units + warnEl.value = String(nmToUi(warnRadiusNm || 0)); + nearEl.value = String(nmToUi(nearRadiusNm || 0)); + warnSl.value = warnEl.value; + nearSl.value = nearEl.value; + // update placeholders + warnEl.placeholder = '0 = выкл'; + nearEl.placeholder = '0 = выкл'; + } + + refreshUiForUnit(); + + const apply = () => { + const wUi = parseFloat(warnEl.value); + const nUi = parseFloat(nearEl.value); + const wNm = Number.isFinite(wUi) && wUi > 0 ? uiToNm(wUi) : 0; + const nNm = Number.isFinite(nUi) && nUi > 0 ? uiToNm(nUi) : 0; + warnRadiusNm = wNm; + nearRadiusNm = nNm; + sSet('warnRadiusNm', String(warnRadiusNm)); + sSet('nearRadiusNm', String(nearRadiusNm)); + updateDangerCircles(); + updateDangerBanner(); + }; + const clampStr = (v) => { + const x = parseFloat(v); + if (!Number.isFinite(x) || x < 0) return '0'; + return String(Math.min(parseFloat(warnSl.max || '50'), x)); + }; + const syncWarnFromText = () => { warnEl.value = clampStr(warnEl.value); warnSl.value = warnEl.value; apply(); }; + const syncNearFromText = () => { nearEl.value = clampStr(nearEl.value); nearSl.value = nearEl.value; apply(); }; + const syncWarnFromSlider = () => { warnEl.value = warnSl.value; apply(); }; + const syncNearFromSlider = () => { nearEl.value = nearSl.value; apply(); }; + + warnEl.addEventListener('input', syncWarnFromText); + nearEl.addEventListener('input', syncNearFromText); + warnSl.addEventListener('input', syncWarnFromSlider); + nearSl.addEventListener('input', syncNearFromSlider); + apply(); + + // When distance unit changes, keep NM values but redraw UI in new units + try { + const distSel = document.getElementById('set-dist-unit'); + if (distSel) distSel.addEventListener('change', () => setTimeout(() => { refreshUiForUnit(); }, 0)); + } catch (e) {} +})(); + +// ===================== Network Settings ===================== +let netSelectedMode = null; +const netMsg = document.getElementById('net-msg'); + +function showNetMsg(text, cls) { + netMsg.className = 'net-msg ' + cls; + netMsg.textContent = text; + if (cls === 'ok') setTimeout(() => { netMsg.className = 'net-msg'; }, 5000); +} + +function setNetMode(mode) { + netSelectedMode = mode; + document.getElementById('net-btn-ap').classList.toggle('active', mode === 'ap'); + document.getElementById('net-btn-wifi').classList.toggle('active', mode === 'wifi'); + document.getElementById('net-ap-fields').style.display = mode === 'ap' ? '' : 'none'; + document.getElementById('net-wifi-fields').style.display = mode === 'wifi' ? '' : 'none'; +} +document.getElementById('net-btn-ap').addEventListener('click', () => setNetMode('ap')); +document.getElementById('net-btn-wifi').addEventListener('click', () => setNetMode('wifi')); + +document.getElementById('net-adv-toggle').addEventListener('click', function() { + const adv = document.getElementById('net-advanced'); + const open = adv.classList.toggle('open'); + this.innerHTML = open ? 'Дополнительно ▴' : 'Дополнительно ▾'; +}); + +async function loadNetworkConfig() { + try { + const r = await fetch('/api/network'); + const data = await r.json(); + const cfg = data.config || {}; + const live = data.live || {}; + + const liveMode = document.getElementById('net-live-mode'); + const modeLabel = {ap: 'Точка доступа', wifi: 'WiFi-клиент'}; + liveMode.textContent = modeLabel[live.mode] || live.mode || '?'; + liveMode.className = 'net-status ' + (live.mode || 'unknown'); + + document.getElementById('net-live-ip').textContent = live.ip || '-'; + document.getElementById('net-live-ssid').textContent = live.ssid || '-'; + + setNetMode(cfg.mode || 'ap'); + document.getElementById('net-ap-ssid').value = cfg.ap_ssid || ''; + document.getElementById('net-ap-psk').value = cfg.ap_psk || ''; + document.getElementById('net-ap-ip').value = cfg.ap_ip || ''; + document.getElementById('net-wifi-ssid').value = cfg.wifi_ssid || ''; + document.getElementById('net-wifi-psk').value = cfg.wifi_psk || ''; + document.getElementById('net-wifi-ip').value = cfg.wifi_ip || ''; + document.getElementById('net-wifi-gw').value = cfg.wifi_gw || ''; + document.getElementById('net-wifi-dns').value = cfg.wifi_dns || ''; + document.getElementById('net-iface').value = cfg.iface || 'wlan0'; + } catch(e) { console.error('loadNetworkConfig:', e); } +} + +function collectNetConfig() { + return { + mode: netSelectedMode, + ap_ssid: document.getElementById('net-ap-ssid').value, + ap_psk: document.getElementById('net-ap-psk').value, + ap_ip: document.getElementById('net-ap-ip').value, + wifi_ssid: document.getElementById('net-wifi-ssid').value, + wifi_psk: document.getElementById('net-wifi-psk').value, + wifi_ip: document.getElementById('net-wifi-ip').value, + wifi_gw: document.getElementById('net-wifi-gw').value, + wifi_dns: document.getElementById('net-wifi-dns').value, + iface: document.getElementById('net-iface').value || 'wlan0', + }; +} + +document.getElementById('net-save-btn').addEventListener('click', async function() { + this.disabled = true; + try { + const cfg = collectNetConfig(); + const r = await fetch('/api/network', {method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify(cfg)}); + const data = await r.json(); + if (data.ok) showNetMsg('Настройки сохранены', 'ok'); + else showNetMsg(data.error || 'Ошибка сохранения', 'err'); + } catch(e) { showNetMsg('Ошибка: ' + e.message, 'err'); } + this.disabled = false; +}); + +document.getElementById('net-switch-btn').addEventListener('click', async function() { + const mode = netSelectedMode; + const modeLabel = mode === 'ap' ? 'точку доступа' : 'WiFi-клиент'; + if (!confirm('Переключить на ' + modeLabel + '?\nСоединение может быть потеряно на несколько секунд.')) return; + this.disabled = true; + showNetMsg('Переключение на ' + modeLabel + '...', 'info'); + try { + const cfg = collectNetConfig(); + cfg.mode = mode; + const r = await fetch('/api/network/switch', {method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify(cfg)}); + const data = await r.json(); + if (data.ok) { + showNetMsg('Переключено на ' + modeLabel + '. Обновите страницу по новому адресу.', 'ok'); + setTimeout(loadNetworkConfig, 3000); + } else { + showNetMsg(data.error || 'Ошибка переключения', 'err'); + } + } catch(e) { showNetMsg('Связь потеряна — устройство переключается. Подключитесь к новой сети.', 'info'); } + this.disabled = false; +}); + +document.getElementById('net-scan-btn').addEventListener('click', async function() { + this.disabled = true; + this.textContent = 'Сканирование...'; + const list = document.getElementById('net-scan-list'); + try { + const r = await fetch('/api/network/scan'); + const data = await r.json(); + if (data.ok && data.networks && data.networks.length) { + list.style.display = ''; + list.innerHTML = ''; + for (const n of data.networks) { + const it = document.createElement('div'); + it.className = 'net-scan-item'; + it.innerHTML = '' + n.ssid + '' + (n.signal != null ? n.signal + ' dBm' : '') + ''; + it.addEventListener('click', () => { + document.getElementById('net-wifi-ssid').value = n.ssid; + list.querySelectorAll('.net-scan-item').forEach(e => e.classList.remove('selected')); + it.classList.add('selected'); + }); + list.appendChild(it); + } + } else { + list.style.display = ''; + list.innerHTML = '
' + (data.error || 'Сети не найдены') + '
'; + } + } catch(e) { list.style.display=''; list.innerHTML='
Ошибка сканирования
'; } + this.disabled = false; + this.textContent = 'Сканировать'; +}); + +loadNetworkConfig(); + +// ===================== Logs ===================== +let logLastSeq=0, logAutoscroll=true, logLines=[]; +const logOutput=document.getElementById('log-output'); +const logFilter=document.getElementById('log-filter'); +const logSearch=document.getElementById('log-search'); + +function classifyLine(line){ + const h=(line.split(',')[0]||''); + if((line.startsWith('!')||line.startsWith('$'))&&h.endsWith('VDM')) return 'ais'; + if(/^\$G[PNLA](RMC|GGA)/i.test(line)) return 'gps'; + return 'unknown'; +} +function renderLogs(){ + const filter=logFilter.value; + const search=logSearch.value.toLowerCase(); + const frag=document.createDocumentFragment(); + let count=0; + const visible=logLines.filter(l=>{ + if(filter!=='all'&&l.cls!==filter) return false; + if(search&&!l.line.toLowerCase().includes(search)) return false; + return true; + }).slice(-500); + logOutput.innerHTML=''; + for(const l of visible){ + const div=document.createElement('div'); + div.className='log-line '+l.cls; + div.innerHTML=''+l.time+' '+escHtml(l.line); + frag.appendChild(div); + count++; + } + logOutput.appendChild(frag); + document.getElementById('log-count').textContent=count+' строк'; + if(logAutoscroll) logOutput.scrollTop=logOutput.scrollHeight; +} + +let _logSeenKeys = new Set(); +async function pollLogs(){ + // ais_hub отдаёт последние N строк (ring buffer / SQLite), seq там нет — дедупим по ts+line. + try{ + const r = await fetch('/api/v1/nmea/tail?limit=500'); + const data = await r.json(); + if (!Array.isArray(data) || !data.length) return; + let added = 0; + for (const e of data) { + if (!e || !e.line) continue; + const key = (e.ts || 0).toFixed(3) + '|' + e.line; + if (_logSeenKeys.has(key)) continue; + _logSeenKeys.add(key); + const d = new Date((e.ts || 0) * 1000); + const time = [d.getHours(), d.getMinutes(), d.getSeconds()].map(v => String(v).padStart(2, '0')).join(':'); + logLines.push({ seq: ++logLastSeq, time, line: e.line, cls: classifyLine(e.line) }); + added++; + } + if (added === 0) return; + if (logLines.length > 2000) logLines = logLines.slice(-2000); + if (_logSeenKeys.size > 4000) { + // Подрезаем кеш дедупликации чтоб не рос. + _logSeenKeys = new Set(); + for (const l of logLines) _logSeenKeys.add(((l.line || '') + '|' + (l.time || ''))); + } + if (currentTab === 'logs') renderLogs(); + }catch(e){} +} + +document.getElementById('log-autoscroll').addEventListener('click',function(){logAutoscroll=!logAutoscroll;this.classList.toggle('active',logAutoscroll);}); +document.getElementById('log-clear').addEventListener('click',()=>{logLines=[];renderLogs();}); +logFilter.addEventListener('change',renderLogs); +logSearch.addEventListener('input',renderLogs); + +// ===================== Config Page ===================== +let cfgLoaded = false; +const cfgEditor = document.getElementById('cfg-editor'); +const cfgMsg = document.getElementById('cfg-msg'); +const cfgSvcBadge = document.getElementById('cfg-svc-state'); +const cfgTabMini = document.getElementById('cfg-tab-mini'); +const cfgTabAisHub = document.getElementById('cfg-tab-aishub'); +const cfgFileHint = document.getElementById('cfg-file-hint'); +const cfgBottomHint = document.getElementById('cfg-bottom-hint'); + +let cfgTarget = 'mini'; // 'mini' | 'aishub' +const CFG_TARGETS = { + mini: { name: 'AIS-catcher Mini', file: '/ais-mini.conf', service: 'aisMini.service', url: '/api/config', svcStatus: '/api/service/status', svcRestart: '/api/service/restart' }, + aishub: { name: 'AisHub', file: '/opt/aishub/config/config.yaml', service: 'ais_hub.service', url: '/api/config/aishub', svcStatus: '/api/service/aishub/status', svcRestart: '/api/service/aishub/restart' }, +}; + +function showCfgMsg(text, cls) { + cfgMsg.className = 'config-msg ' + cls; + cfgMsg.textContent = text; + if (cls === 'ok') setTimeout(() => { cfgMsg.className = 'config-msg'; cfgMsg.textContent = ''; }, 5000); +} + +function _cfgMeta() { return CFG_TARGETS[cfgTarget] || CFG_TARGETS.mini; } +function _renderCfgHeader() { + const m = _cfgMeta(); + try { + if (cfgTabMini) cfgTabMini.classList.toggle('active', cfgTarget === 'mini'); + if (cfgTabAisHub) cfgTabAisHub.classList.toggle('active', cfgTarget === 'aishub'); + if (cfgFileHint) cfgFileHint.textContent = 'Файл: ' + m.file; + if (cfgBottomHint) cfgBottomHint.textContent = 'Файл: ' + m.file + ' | Сервис: ' + m.service; + } catch (e) {} +} + +async function loadConfig() { + try { + const r = await fetch(_cfgMeta().url); + const data = await r.json(); + if (data.ok) { + cfgEditor.value = data.text; + cfgLoaded = true; + showCfgMsg('', ''); + } else { + cfgEditor.value = ''; + showCfgMsg(data.error || 'Ошибка загрузки', 'err'); + } + } catch(e) { + cfgEditor.value = ''; + showCfgMsg('Ошибка: ' + e.message, 'err'); + } +} + +async function loadServiceStatus() { + const badge = cfgSvcBadge || document.getElementById('cfg-svc-state'); + try { + const r = await fetch(_cfgMeta().svcStatus); + const data = await r.json(); + const state = data.state || 'unknown'; + badge.textContent = state; + badge.className = 'config-svc-badge ' + (state === 'active' ? 'active' : state === 'inactive' ? 'inactive' : 'unknown'); + } catch(e) { + badge.textContent = '?'; + badge.className = 'config-svc-badge unknown'; + } +} + +document.getElementById('cfg-save-btn').addEventListener('click', async function() { + this.disabled = true; + showCfgMsg('Сохранение...', 'info'); + try { + const r = await fetch(_cfgMeta().url, { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({text: cfgEditor.value}) + }); + const data = await r.json(); + if (data.ok) showCfgMsg('Конфиг сохранён', 'ok'); + else showCfgMsg(data.error || 'Ошибка сохранения', 'err'); + } catch(e) { + showCfgMsg('Ошибка: ' + e.message, 'err'); + } + this.disabled = false; +}); + +document.getElementById('cfg-restart-btn').addEventListener('click', async function() { + const m = _cfgMeta(); + if (!confirm('Перезапустить ' + m.service + '?\nПриём AIS может быть прерван на несколько секунд.')) return; + this.disabled = true; + showCfgMsg('Перезапуск сервиса...', 'info'); + try { + const r = await fetch(m.svcRestart, { + method: 'POST', + headers: {'Content-Type': 'application/json'} + }); + const data = await r.json(); + if (data.ok) { + showCfgMsg('Сервис перезапущен', 'ok'); + setTimeout(loadServiceStatus, 2000); + } else { + showCfgMsg(data.error || 'Ошибка перезапуска', 'err'); + } + } catch(e) { + showCfgMsg('Ошибка: ' + e.message, 'err'); + } + this.disabled = false; +}); + +document.getElementById('cfg-reload-btn').addEventListener('click', () => { + loadConfig(); + loadServiceStatus(); +}); + +function _setCfgTarget(t) { + cfgTarget = (t === 'aishub') ? 'aishub' : 'mini'; + _renderCfgHeader(); + loadConfig(); + loadServiceStatus(); +} +try { + if (cfgTabMini) cfgTabMini.addEventListener('click', () => _setCfgTarget('mini')); + if (cfgTabAisHub) cfgTabAisHub.addEventListener('click', () => _setCfgTarget('aishub')); + _renderCfgHeader(); +} catch (e) {} + +// ===================== Main loop ===================== +// ===================== Connection status (server reachability) ===================== +let _connState = { offline: false, lastOkTs: 0, lastErrTs: 0, lastMsg: '' }; +function connBannerEl(){ return document.getElementById('conn-banner'); } +function setConnBanner(offline, msg){ + const el = connBannerEl(); + if (!el) return; + const text = msg || (offline ? 'Нет связи с сервером' : 'Связь восстановлена'); + el.textContent = text; + el.classList.toggle('conn-banner--offline', !!offline); + el.classList.toggle('conn-banner--online', !offline); + el.style.display = text ? '' : 'none'; + if (!offline) { + // hide "online" after a short while + setTimeout(() => { + if (!_connState.offline && el.textContent === text) el.style.display = 'none'; + }, 1500); + } +} +function markConnOk(){ + const now = Date.now(); + _connState.lastOkTs = now; + if (_connState.offline) { + _connState.offline = false; + setConnBanner(false, 'Связь восстановлена'); + } +} +function markConnErr(err){ + const now = Date.now(); + _connState.lastErrTs = now; + _connState.lastMsg = (err && err.message) ? err.message : ''; + if (!_connState.offline) { + _connState.offline = true; + setConnBanner(true, 'Нет связи с сервером'); + } +} +window.addEventListener('offline', () => { _connState.offline = true; setConnBanner(true, 'Нет сети (offline)'); }); +window.addEventListener('online', () => { /* actual reachability checked by fetches */ setConnBanner(false, 'Сеть появилась…'); }); + +// ===================== UI tick ===================== +// Данные (vessels/ownship/stats/…) приходят по WebSocket и сразу запускают redraw. +// Этот таймер делает только лёгкие UI-штуки: «возраст» в сайдбаре, danger-banner, +// /api/sysinfo и /api/v1/nmea/tail — если открыты соответствующие вкладки. +function uiTick() { + try { + pollOwnShip(); // скопировать AisHub.ownship → nmeaGps + updateOwnShipDisplay(); // время «ago», followMode и пр. + updateBaseStations(); // TTL/removal for static AIS targets between WS events + updateBuoys(); // TTL/removal for AtoN targets between WS events + + // Sidebar живёт от in-memory витрин. + if (!window._mapInteracting) { + const os = getOwnShipPos(); + const combined = [] + .concat(lastAnyVessels || []) + .concat(lastBaseStations || []) + .concat(lastBuoys || []); + if (os) { + for (const v of combined) { + if (v && v.lat != null && v.lon != null) v._distNM = haversineNM(os.lat, os.lon, v.lat, v.lon); + else v._distNM = null; + } + } else { + for (const v of combined) { if (v) v._distNM = null; } + } + updateSidebar(combined); + adjustSidebarHeight(); + updateDangerCircles(); + updateDangerBanner(); + if (currentTab === 'targets') { + try { renderTargetsTab(); } catch (_) {} + } + } + + if (currentTab === 'stats') { + refreshSysinfo().then(() => updateStats()).catch(() => {}); + } + if (currentTab === 'logs') { + pollLogs(); + } + } catch (e) { + try { console.error('[AISMap] uiTick failed', e); } catch (_) {} + } +} + +setInterval(uiTick, 1000); +uiTick(); +adjustSidebarHeight(); + +// Индикатор связи: считается здоровым, если WS-соединение живо и недавно были события. +setInterval(() => { + try { + const wsOk = AisHub.wsOpen; + const fresh = (Date.now() - (AisHub.lastEventTs || 0)) < 20000; + if (wsOk) { + // Периодически подтверждаем, даже если событий сейчас нет. + if (AisHub.snapshotLoaded) markConnOk(); + } else if (!fresh) { + markConnErr(new Error('ais_hub WS disconnected')); + } + } catch (e) {} +}, 3000); + +// Стартуем WebSocket после полной загрузки страницы, чтобы не рвать рукопожатие +// во время загрузки (Firefox: «соединение … было прервано» у new WebSocket). +function _startAisHubWebSocket() { + try { AisHubWS.open(); } catch (e) { try { console.error('[AISMap] WS open failed', e); } catch (_) {} } +} +if (document.readyState === 'complete') { + _startAisHubWebSocket(); +} else { + window.addEventListener('load', _startAisHubWebSocket, { once: true }); +} + +// Map interaction gating for performance (z14+ pan/zoom). +try { + window._mapInteracting = false; + let _resumeTimer = null; + const setInteracting = (v) => { + window._mapInteracting = !!v; + if (!v) { + if (_resumeTimer) clearTimeout(_resumeTimer); + // Let Leaflet finish settling tiles, then do one catch-up pass. + _resumeTimer = setTimeout(() => { uiTick(); AisHubRedraw.flushNow(); }, 120); + } + }; + map.on('movestart', () => setInteracting(true)); + map.on('moveend', () => setInteracting(false)); + map.on('zoomstart', () => setInteracting(true)); + map.on('zoomend', () => setInteracting(false)); +} catch (e) {} diff --git a/static/js/mmsi_mid_iso2.json b/static/js/mmsi_mid_iso2.json new file mode 100644 index 0000000..b64cd26 --- /dev/null +++ b/static/js/mmsi_mid_iso2.json @@ -0,0 +1 @@ +{"273":"RU","275":"LV","277":"LT","276":"EE","272":"UA","261":"PL","211":"DE","218":"DE","226":"FR","227":"FR","228":"FR","247":"IT","257":"NO","258":"NO","259":"NO","265":"SE","266":"SE","230":"FI","219":"DK","220":"DK","244":"NL","245":"NL","246":"NL","205":"BE","224":"ES","225":"ES","237":"GR","239":"GR","240":"GR","241":"GR","271":"TR","264":"RO","207":"BG","238":"HR","232":"GB","233":"GB","234":"GB","235":"GB","250":"IE","251":"IS","215":"MT","229":"MT","248":"MT","249":"MT","256":"MT","209":"CY","210":"CY","212":"CY","338":"US","366":"US","367":"US","368":"US","369":"US","316":"CA","412":"CN","413":"CN","414":"CN","431":"JP","432":"JP","440":"KR","441":"KR","563":"SG","564":"SG","565":"SG","566":"SG","419":"IN","503":"AU","710":"BR","701":"AR","351":"PA","352":"PA","353":"PA","354":"PA","355":"PA","356":"PA","357":"PA","370":"PA","371":"PA","372":"PA","373":"PA","374":"PA","636":"LR","637":"LR","538":"MH","308":"BS","309":"BS","311":"BS","477":"HK","416":"TW","574":"VN","525":"ID","533":"MY","548":"PH","567":"TH","403":"SA","470":"AE","471":"AE","428":"IL","622":"EG","601":"ZA","512":"NZ","345":"MX","725":"CL","263":"PT","269":"CH","203":"AT","270":"CZ","243":"HU","279":"RS","278":"SI","267":"SK","262":"ME","201":"AL","213":"GE","436":"KZ","422":"IR"} \ No newline at end of file diff --git a/static/js/ship_dims_editor.js b/static/js/ship_dims_editor.js new file mode 100644 index 0000000..a0dc191 --- /dev/null +++ b/static/js/ship_dims_editor.js @@ -0,0 +1,473 @@ +/** + * Редактор габаритов (ITU Fig. 38). + * Корма — L, правый борт — W (доли A/L и C/W фиксируются на время жеста); точка GPS — перетаскивание. + * Для роста L/W координаты могут выходить за контур корпуса (опорный масштаб wPxRef/hPxRef с pointerdown). + */ +(function () { + 'use strict'; + + var NS = 'http://www.w3.org/2000/svg'; + + var MIN_LEN = 20; + var MIN_BEAM = 6; + var MAX_AB = 511; + var MAX_CD = 63; + var MAX_L = MAX_AB + MAX_AB; + var MAX_W = MAX_CD + MAX_CD; + + /** Макс. размер корпуса в пикселях (пропорции сохраняются) */ + var MAX_DRAW_W = 175; + var MAX_DRAW_H = 210; + /** Минимум по меньшей стороне корпуса в px — иначе ручки и клампы «схлопываются» */ + var MIN_HULL_PX = 48; + + var PAD_L = 12; + var PAD_T = 48; + var PAD_R = 78; + var PAD_B = 42; + + var svg, inner, hull, marker, handles; + var gridH, gridV, lblBow, lblStern, dimBeam, dimLength; + var drag = null; + + /** Текущая геометрия (обновляется в refresh) */ + var layout = { + wPx: 100, + hPx: 160, + dispL: MIN_LEN, + dispW: MIN_BEAM, + }; + + function clamp(n, lo, hi) { + return Math.max(lo, Math.min(hi, n)); + } + + function el(name, attrs) { + var e = document.createElementNS(NS, name); + if (attrs) { + Object.keys(attrs).forEach(function (k) { + e.setAttribute(k, attrs[k]); + }); + } + return e; + } + + function readDims() { + var A = parseInt(document.getElementById('tp-to-bow').value, 10) || 0; + var B = parseInt(document.getElementById('tp-to-stern').value, 10) || 0; + var C = parseInt(document.getElementById('tp-to-port').value, 10) || 0; + var D = parseInt(document.getElementById('tp-to-starboard').value, 10) || 0; + A = clamp(A, 0, MAX_AB); + B = clamp(B, 0, MAX_AB); + C = clamp(C, 0, MAX_CD); + D = clamp(D, 0, MAX_CD); + return { A: A, B: B, C: C, D: D, L: A + B, W: C + D }; + } + + function writeDims(A, B, C, D) { + A = clamp(Math.round(A), 0, MAX_AB); + B = clamp(Math.round(B), 0, MAX_AB); + C = clamp(Math.round(C), 0, MAX_CD); + D = clamp(Math.round(D), 0, MAX_CD); + document.getElementById('tp-to-bow').value = A; + document.getElementById('tp-to-stern').value = B; + document.getElementById('tp-to-port').value = C; + document.getElementById('tp-to-starboard').value = D; + } + + function displayLW(d) { + var L = d.L > 0 ? d.L : MIN_LEN; + var W = d.W > 0 ? d.W : MIN_BEAM; + return { L: L, W: W, template: d.L === 0 && d.W === 0 }; + } + + function hullPath(w, h) { + var bow = Math.min(20, h * 0.11); + var tipX = w / 2; + return ( + 'M ' + tipX + ',0 L ' + w + ',' + bow + ' L ' + w + ',' + h + ' L 0,' + h + ' L 0,' + bow + ' Z' + ); + } + + function computeLayout(d, disp) { + var scale = Math.min(MAX_DRAW_W / disp.W, MAX_DRAW_H / disp.L); + if (!isFinite(scale) || scale <= 0) scale = 1; + var wPx0 = disp.W * scale; + var hPx0 = disp.L * scale; + var bump = 1; + if (wPx0 < MIN_HULL_PX) bump = Math.max(bump, MIN_HULL_PX / Math.max(wPx0, 1e-6)); + if (hPx0 < MIN_HULL_PX) bump = Math.max(bump, MIN_HULL_PX / Math.max(hPx0, 1e-6)); + scale *= bump; + var wPx = disp.W * scale; + var hPx = disp.L * scale; + layout.wPx = wPx; + layout.hPx = hPx; + layout.dispL = disp.L; + layout.dispW = disp.W; + layout.scale = scale; + return { sx: scale, sy: scale, wPx: wPx, hPx: hPx }; + } + + function scales(d, disp, geo) { + var wPx = geo.wPx; + var hPx = geo.hPx; + var padX = Math.max(1, Math.min(8, wPx * 0.1)); + var padY = Math.max(1, Math.min(8, hPx * 0.1)); + var aVis = d.L > 0 ? d.A : disp.L / 2; + var cVis = d.W > 0 ? d.C : disp.W / 2; + var mx = clamp(cVis * geo.sx, padX, wPx - padX); + var my = clamp(aVis * geo.sy, padY, hPx - padY); + return { mx: mx, my: my }; + } + + function ensureNonZeroDims() { + var d = readDims(); + if (d.L === 0 && d.W === 0) { + writeDims(MIN_LEN / 2, MIN_LEN / 2, MIN_BEAM / 2, MIN_BEAM / 2); + } + } + + function clearG(g) { + while (g.firstChild) g.removeChild(g.firstChild); + } + + function rebuildBeamDimension(g, wPx, hPx, Wm) { + clearG(g); + var bow = Math.min(20, hPx * 0.11); + var off = 24; + var y = -off; + var yPast = y - 1.5; + g.appendChild( + el('line', { class: 'ship-dim-ext', x1: 0, y1: bow, x2: 0, y2: yPast }) + ); + g.appendChild( + el('line', { class: 'ship-dim-ext', x1: wPx, y1: bow, x2: wPx, y2: yPast }) + ); + g.appendChild( + el('line', { + class: 'ship-dim-main', + x1: 0, + y1: y, + x2: wPx, + y2: y, + 'marker-start': 'url(#ship-dim-arrow)', + 'marker-end': 'url(#ship-dim-arrow)', + }) + ); + var t = el('text', { + class: 'ship-dim-txt', + x: wPx / 2, + y: y - 8, + 'text-anchor': 'middle', + }); + t.textContent = 'W = ' + Wm + ' м'; + g.appendChild(t); + } + + function rebuildLengthDimension(g, wPx, hPx, Lm) { + clearG(g); + var bow = Math.min(20, hPx * 0.11); + var off = 22; + var x = wPx + off; + var xPast = x + 1.5; + g.appendChild( + el('line', { class: 'ship-dim-ext', x1: wPx, y1: bow, x2: x, y2: bow }) + ); + g.appendChild( + el('line', { class: 'ship-dim-ext', x1: x, y1: bow, x2: x, y2: 0 }) + ); + g.appendChild( + el('line', { class: 'ship-dim-ext', x1: wPx, y1: hPx, x2: xPast, y2: hPx }) + ); + g.appendChild( + el('line', { + class: 'ship-dim-main', + x1: x, + y1: 0, + x2: x, + y2: hPx, + 'marker-start': 'url(#ship-dim-arrow)', + 'marker-end': 'url(#ship-dim-arrow)', + }) + ); + var t = el('text', { + class: 'ship-dim-txt', + x: x + 14, + y: hPx / 2, + 'text-anchor': 'middle', + transform: 'rotate(-90 ' + (x + 14) + ' ' + hPx / 2 + ')', + }); + t.textContent = 'L = ' + Lm + ' м'; + g.appendChild(t); + } + + function positionHandles(wPx, hPx) { + if (!handles) return; + var stern = handles.querySelector('[data-ship-edge="stern"]'); + var sb = handles.querySelector('[data-ship-edge="starboard"]'); + if (stern) stern.setAttribute('transform', 'translate(' + wPx / 2 + ',' + hPx + ')'); + if (sb) sb.setAttribute('transform', 'translate(' + wPx + ',' + hPx / 2 + ')'); + } + + function refreshFromInputs() { + if (!svg || !inner || !hull || !marker) return; + var d = readDims(); + var disp = displayLW(d); + var geo = computeLayout(d, disp); + var sc = scales(d, disp, geo); + var wPx = geo.wPx; + var hPx = geo.hPx; + + inner.setAttribute('transform', 'translate(' + PAD_L + ',' + PAD_T + ')'); + + var vbW = PAD_L + wPx + PAD_R; + var vbH = PAD_T + hPx + PAD_B; + svg.setAttribute('viewBox', '0 0 ' + vbW + ' ' + vbH); + + rebuildBeamDimension(dimBeam, wPx, hPx, disp.W); + rebuildLengthDimension(dimLength, wPx, hPx, disp.L); + + hull.setAttribute('d', hullPath(wPx, hPx)); + + if (gridH && gridV) { + gridH.setAttribute('x1', 0); + gridH.setAttribute('y1', sc.my); + gridH.setAttribute('x2', wPx); + gridH.setAttribute('y2', sc.my); + gridV.setAttribute('x1', sc.mx); + gridV.setAttribute('y1', 0); + gridV.setAttribute('x2', sc.mx); + gridV.setAttribute('y2', hPx); + } + + if (lblBow) { + lblBow.setAttribute('x', wPx / 2); + lblBow.setAttribute('y', -38); + } + if (lblStern) { + lblStern.setAttribute('x', wPx / 2); + lblStern.setAttribute('y', hPx + 22); + } + + marker.setAttribute('transform', 'translate(' + sc.mx + ',' + sc.my + ')'); + marker.setAttribute('class', 'ship-gps-group' + (disp.template ? ' ship-gps-group--template' : '')); + + positionHandles(wPx, hPx); + } + + function svgPointFromClient(clientX, clientY) { + var pt = svg.createSVGPoint(); + pt.x = clientX; + pt.y = clientY; + var ctm = inner.getScreenCTM(); + if (!ctm) return null; + var p = pt.matrixTransform(ctm.inverse()); + return { x: p.x, y: p.y }; + } + + function splitLength(u, Ls) { + u = clamp(u, 0, 1); + var A = Math.round(u * Ls); + A = clamp(A, 0, MAX_AB); + var B = Ls - A; + if (B > MAX_AB) { + B = MAX_AB; + A = clamp(Ls - B, 0, MAX_AB); + } + if (B < 0) { + B = 0; + A = clamp(Ls, 0, MAX_AB); + } + return { A: A, B: B }; + } + + function splitBeam(v, Ws) { + v = clamp(v, 0, 1); + var C = Math.round(v * Ws); + C = clamp(C, 0, MAX_CD); + var D = Ws - C; + if (D > MAX_CD) { + D = MAX_CD; + C = clamp(Ws - D, 0, MAX_CD); + } + if (D < 0) { + D = 0; + C = clamp(Ws, 0, MAX_CD); + } + return { C: C, D: D }; + } + + /** Новая длина L; сохраняем долю носа A/L ≈ rA. */ + function abFromLength(Ln, rA) { + Ln = clamp(Math.round(Ln), 1, MAX_L); + var r = clamp(isFinite(rA) ? rA : 0.5, 0, 1); + var A = Math.round(r * Ln); + A = clamp(A, 0, MAX_AB); + var B = Ln - A; + if (B > MAX_AB) { + B = MAX_AB; + A = clamp(Ln - B, 0, MAX_AB); + } + if (B < 0) { + B = 0; + A = clamp(Ln, 0, MAX_AB); + } + return { A: A, B: B }; + } + + /** Новая ширина W; сохраняем долю порта C/W ≈ rC. */ + function cdFromWidth(Wn, rC) { + Wn = clamp(Math.round(Wn), 1, MAX_W); + var r = clamp(isFinite(rC) ? rC : 0.5, 0, 1); + var C = Math.round(r * Wn); + C = clamp(C, 0, MAX_CD); + var D = Wn - C; + if (D > MAX_CD) { + D = MAX_CD; + C = clamp(Wn - D, 0, MAX_CD); + } + if (D < 0) { + D = 0; + C = clamp(Wn, 0, MAX_CD); + } + return { C: C, D: D }; + } + + function startDrag(ev, kind, captureEl) { + ev.preventDefault(); + captureEl.setPointerCapture(ev.pointerId); + document.body.classList.add('ship-editor-dragging'); + document.addEventListener('pointermove', onDocumentPointerMove); + document.addEventListener('pointerup', onDocumentPointerEnd); + document.addEventListener('pointercancel', onDocumentPointerEnd); + return { kind: kind, pid: ev.pointerId, el: captureEl }; + } + + function stopDragListeners() { + document.removeEventListener('pointermove', onDocumentPointerMove); + document.removeEventListener('pointerup', onDocumentPointerEnd); + document.removeEventListener('pointercancel', onDocumentPointerEnd); + } + + function onInnerPointerDown(ev) { + if (!inner) return; + var edgeG = ev.target.closest ? ev.target.closest('[data-ship-edge]') : null; + if (edgeG) { + ensureNonZeroDims(); + var d0 = readDims(); + var disp0 = displayLW(d0); + var geo0 = computeLayout(d0, disp0); + var kind = edgeG.getAttribute('data-ship-edge'); + drag = startDrag(ev, kind, edgeG); + drag.L0 = d0.L; + drag.W0 = d0.W; + drag.rA = d0.L > 0 ? d0.A / d0.L : 0.5; + drag.rC = d0.W > 0 ? d0.C / d0.W : 0.5; + drag.wPxRef = geo0.wPx; + drag.hPxRef = geo0.hPx; + return; + } + if (marker && marker.contains(ev.target)) { + ensureNonZeroDims(); + var dg = readDims(); + var Ls = dg.L > 0 ? Math.min(dg.L, MAX_L) : MIN_LEN; + var Ws = dg.W > 0 ? Math.min(dg.W, MAX_W) : MIN_BEAM; + Ls = clamp(Ls, 1, MAX_L); + Ws = clamp(Ws, 1, MAX_W); + drag = startDrag(ev, 'gps', marker); + drag.Ls = Ls; + drag.Ws = Ws; + } + } + + function onDocumentPointerMove(ev) { + if (!drag || ev.pointerId !== drag.pid) return; + var p = svgPointFromClient(ev.clientX, ev.clientY); + if (!p) return; + + var d = readDims(); + var disp = displayLW(d); + var geo = computeLayout(d, disp); + var wPx = geo.wPx; + var hPx = geo.hPx; + + if (drag.kind === 'gps') { + var u = p.y / hPx; + var v = p.x / wPx; + var ab = splitLength(u, drag.Ls); + var cd = splitBeam(v, drag.Ws); + writeDims(ab.A, ab.B, cd.C, cd.D); + refreshFromInputs(); + return; + } + + var wRef = drag.wPxRef; + var hRef = drag.hPxRef; + if (drag.kind === 'stern' && wRef > 0 && hRef > 0) { + var yMin = (hRef * 1) / Math.max(drag.L0, 1); + var yMax = (hRef * MAX_L) / Math.max(drag.L0, 1); + var yS = clamp(p.y, yMin, yMax); + var L1 = Math.round((drag.L0 * yS) / hRef); + L1 = clamp(L1, 1, MAX_L); + var abS = abFromLength(L1, drag.rA); + writeDims(abS.A, abS.B, d.C, d.D); + } else if (drag.kind === 'starboard' && wRef > 0 && hRef > 0) { + var xMin = (wRef * 1) / Math.max(drag.W0, 1); + var xMax = (wRef * MAX_W) / Math.max(drag.W0, 1); + var xSb = clamp(p.x, xMin, xMax); + var W1s = Math.round((drag.W0 * xSb) / wRef); + W1s = clamp(W1s, 1, MAX_W); + var cd2 = cdFromWidth(W1s, drag.rC); + writeDims(d.A, d.B, cd2.C, cd2.D); + } + + refreshFromInputs(); + } + + function onDocumentPointerEnd(ev) { + if (!drag || ev.pointerId !== drag.pid) return; + stopDragListeners(); + try { + drag.el.releasePointerCapture(ev.pointerId); + } catch (e) { /* ignore */ } + drag = null; + document.body.classList.remove('ship-editor-dragging'); + } + + function bindInputs() { + ['tp-to-bow', 'tp-to-stern', 'tp-to-port', 'tp-to-starboard'].forEach(function (id) { + var eln = document.getElementById(id); + if (eln) { + eln.addEventListener('input', refreshFromInputs); + eln.addEventListener('change', refreshFromInputs); + } + }); + } + + function boot() { + svg = document.getElementById('ship-editor-svg'); + inner = document.getElementById('ship-editor-inner'); + hull = document.getElementById('ship-hull'); + marker = document.getElementById('ship-gps-marker'); + handles = document.getElementById('ship-edge-handles'); + gridH = document.getElementById('ship-grid-h'); + gridV = document.getElementById('ship-grid-v'); + lblBow = document.getElementById('ship-lbl-bow'); + lblStern = document.getElementById('ship-lbl-stern'); + dimBeam = document.getElementById('ship-dim-beam'); + dimLength = document.getElementById('ship-dim-length'); + if (!svg || !inner || !hull || !marker) return; + + inner.addEventListener('pointerdown', onInnerPointerDown); + bindInputs(); + refreshFromInputs(); + } + + window.shipDimsEditorRefresh = refreshFromInputs; + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', boot); + } else { + boot(); + } +})(); diff --git a/static/js/ship_types_table51.js b/static/js/ship_types_table51.js new file mode 100644 index 0000000..3628115 --- /dev/null +++ b/static/js/ship_types_table51.js @@ -0,0 +1,179 @@ +/** + * ITU-R M.1371-6, табл. 51 — тип судна (идентификатор 0–99). + * Подписи на русском по официальным формулировкам (сокращ.: ОПГ — опасные грузы; + * ОН — опасные только насыпью; ВВ — вредные вещества; МЗ — морские загрязнители). + */ +(function () { + 'use strict'; + + var LABELS = [ + 'Не указано', + 'Научно-исследовательское судно', + 'Учебное судно', + 'Судно, принадлежащее или эксплуатируемое государственным органом', + 'Ледокол', + 'Судно обслуживания буёв (навигационных знаков)', + 'Кабелеукладчик', + 'Трубоукладчик', + 'Зарезервировано (на будущее)', + 'Судно специального назначения, дополнительные сведения не указаны', + 'Зарезервировано (на будущее)', + 'Судно FPSO (добыча, хранение и отгрузка нефти на месторождении)', + 'Рыбозавод (плавучий рыбоперерабатывающий завод)', + 'Судно обеспечения рыбоводческого хозяйства', + 'Судно оффшорного обеспечения и т. п.', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Судно для строительных работ', + 'Катер доставки экипажа (crew boat)', + 'Судно обеспечения, дополнительные сведения не указаны', + 'Судно на воздушной подушке (WIG), все суда этого типа', + 'WIG с ОПГ и/или ОН, ВВ или МЗ, категория опасности X (ИМО)', + 'WIG с ОПГ и/или ОН, ВВ или МЗ, категория опасности Y (ИМО)', + 'WIG с ОПГ и/или ОН, ВВ или МЗ, категория опасности Z (ИМО)', + 'WIG с ОПГ и/или ОН, ВВ или МЗ, категория OS (ИМО)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'WIG, дополнительные сведения не указаны', + 'Рыболовное судно', + 'Буксир', + 'Буксир; длина буксира >200 м или ширина >25 м', + 'Земснаряд', + 'Водолазное судно', + 'Военный корабль или вспомогательное судно ВМС', + 'Парусное судно', + 'Прогулочное моторное судно', + 'Тральщик', + 'Патрульное судно', + 'Высокоскоростное судно (ВСС), все суда этого типа', + 'ВСС с ОПГ и/или ОН, ВВ или МЗ, категория X (ИМО)', + 'ВСС с ОПГ и/или ОН, ВВ или МЗ, категория Y (ИМО)', + 'ВСС с ОПГ и/или ОН, ВВ или МЗ, категория Z (ИМО)', + 'ВСС с ОПГ и/или ОН, ВВ или МЗ, категория OS (ИМО)', + 'ВСС, перевозка пассажиров', + 'ВСС Ro-Ro (автомобили / ж/д)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'ВСС, дополнительные сведения не указаны', + 'Лоцманское судно', + 'Поисково-спасательное судно', + 'Буксиры', + 'Портовое или рыболовное вспомогательное судно', + 'Противозагрязнение или пожарный резерв', + 'Судно правоохранительных органов', + 'Резерв 1 — для назначений местным судам', + 'Резерв 2 — для назначений местным судам', + 'Медицинский транспорт (Женевские конвенции 1949 г. и Доп. протоколы)', + 'Судна государств, не участвующих в вооружённом конфликте', + 'Пассажирское судно, все суда этого типа', + 'Пассажирское с ОПГ и/или ОН, ВВ или МЗ, категория X (ИМО)', + 'Пассажирское с ОПГ и/или ОН, ВВ или МЗ, категория Y (ИМО)', + 'Пассажирское с ОПГ и/или ОН, ВВ или МЗ, категория Z (ИМО)', + 'Пассажирское с ОПГ и/или ОН, ВВ или МЗ, категория OS (ИМО)', + 'Пассажирский лайнер (круизное судно)', + 'Пассажирский паром', + 'Пассажирское прогулочное (напр. по гавани, наблюдение за китами)', + 'Зарезервировано (на будущее)', + 'Пассажирское судно, дополнительные сведения не указаны', + 'Грузовое судно, все суда этого типа', + 'Грузовое с ОПГ и/или ОН, ВВ или МЗ, категория X (ИМО)', + 'Грузовое с ОПГ и/или ОН, ВВ или МЗ, категория Y (ИМО)', + 'Грузовое с ОПГ и/или ОН, ВВ или МЗ, категория Z (ИМО)', + 'Грузовое с ОПГ и/или ОН, ВВ или МЗ, категория OS (ИМО)', + 'Грузовое судно, балкер', + 'Грузовое судно, контейнеровоз', + 'Грузовое судно, Ro-Ro', + 'Грузовое судно, десантная баржа', + 'Грузовое судно, дополнительные сведения не указаны', + 'Танкер, все суда этого типа', + 'Танкер с ОПГ и/или ОН, ВВ или МЗ, категория X (ИМО)', + 'Танкер с ОПГ и/или ОН, ВВ или МЗ, категория Y (ИМО)', + 'Танкер с ОПГ и/или ОН, ВВ или МЗ, категория Z (ИМО)', + 'Танкер с ОПГ и/или ОН, ВВ или МЗ, категория OS (ИМО)', + 'Танкер, неопасный груз / не загрязняющий', + 'Составной буксир и танкерная баржа (A–D — буксир и баржа)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Танкер, дополнительные сведения не указаны', + 'Прочий тип судна', + 'Прочий тип с ОПГ и/или ОН, ВВ или МЗ, категория X (ИМО)', + 'Прочий тип с ОПГ и/или ОН, ВВ или МЗ, категория Y (ИМО)', + 'Прочий тип с ОПГ и/или ОН, ВВ или МЗ, категория Z (ИМО)', + 'Прочий тип с ОПГ и/или ОН, ВВ или МЗ, категория OS (ИМО)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Зарезервировано (на будущее)', + 'Прочий тип судна, дополнительные сведения не указаны', + ]; + + var GROUPS = [ + { from: 1, to: 9, title: '01–09 Судно специального назначения' }, + { from: 10, to: 19, title: '10–19 Судно обеспечения' }, + { from: 20, to: 29, title: '20–29 Судно на воздушной подушке (WIG)' }, + { from: 30, to: 39, title: '30–39 Особое судно' }, + { from: 40, to: 49, title: '40–49 Высокоскоростное судно (ВСС)' }, + { from: 50, to: 59, title: '50–59 Особое судно' }, + { from: 60, to: 69, title: '60–69 Пассажирское судно' }, + { from: 70, to: 79, title: '70–79 Грузовое судно' }, + { from: 80, to: 89, title: '80–89 Танкер' }, + { from: 90, to: 99, title: '90–99 Прочие типы' }, + ]; + + function addOption(sel, value, text) { + var o = document.createElement('option'); + o.value = String(value); + o.textContent = String(value) + ' — ' + text; + sel.appendChild(o); + } + + function fillShipTypeSelect() { + var sel = document.getElementById('tp-ship-type'); + if (!sel || sel.getAttribute('data-table51') === '1') return; + sel.setAttribute('data-table51', '1'); + sel.innerHTML = ''; + addOption(sel, 0, LABELS[0]); + GROUPS.forEach(function (g) { + var og = document.createElement('optgroup'); + og.label = g.title; + for (var c = g.from; c <= g.to; c++) { + var o = document.createElement('option'); + o.value = String(c); + var pad = c < 10 ? '0' + c : String(c); + o.textContent = pad + ' — ' + LABELS[c]; + og.appendChild(o); + } + sel.appendChild(og); + }); + } + + function ensureShipTypeOption(value) { + var sel = document.getElementById('tp-ship-type'); + if (!sel) return; + var v = Math.max(0, Math.min(255, parseInt(value, 10) || 0)); + var s = String(v); + for (var i = 0; i < sel.options.length; i++) { + if (sel.options[i].value === s) return; + } + var o = document.createElement('option'); + o.value = s; + o.textContent = s + ' — (из конфигурации, вне табл. 51 / 0–99)'; + sel.appendChild(o); + } + + window.fillShipTypeSelect = fillShipTypeSelect; + window.ensureShipTypeOption = ensureShipTypeOption; + window.AIS_TABLE51_SHIP_TYPE_LABEL = function (code) { + var c = parseInt(code, 10); + if (isNaN(c) || c < 0 || c > 99) return null; + return LABELS[c] || null; + }; + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', fillShipTypeSelect); + } else { + fillShipTypeSelect(); + } +})(); diff --git a/static/leaflet/Leaflet.VectorGrid.bundled.min.js b/static/leaflet/Leaflet.VectorGrid.bundled.min.js new file mode 100644 index 0000000..1640f3d --- /dev/null +++ b/static/leaflet/Leaflet.VectorGrid.bundled.min.js @@ -0,0 +1,2 @@ +"use strict";function __$strToBlobUri(t,e,r){try{return window.URL.createObjectURL(new Blob([Uint8Array.from(t.split("").map(function(t){return t.charCodeAt(0)}))],{type:e}))}catch(i){return"data:"+e+(r?";base64,":",")+t}}function Pbf(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}function readVarintRemainder(t,e,r){var i,n,o=r.buf;if(n=o[r.pos++],i=(112&n)>>4,n<128)return toNum(t,i,e);if(n=o[r.pos++],i|=(127&n)<<3,n<128)return toNum(t,i,e);if(n=o[r.pos++],i|=(127&n)<<10,n<128)return toNum(t,i,e);if(n=o[r.pos++],i|=(127&n)<<17,n<128)return toNum(t,i,e);if(n=o[r.pos++],i|=(127&n)<<24,n<128)return toNum(t,i,e);if(n=o[r.pos++],i|=(1&n)<<31,n<128)return toNum(t,i,e);throw new Error("Expected varint not more than 10 bytes")}function readPackedEnd(t){return t.type===Pbf.Bytes?t.readVarint()+t.pos:t.pos+1}function toNum(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function writeBigVarint(t,e){var r,i;if(t>=0?(r=t%4294967296|0,i=t/4294967296|0):(r=~(-t%4294967296),i=~(-t/4294967296),4294967295^r?r=r+1|0:(r=0,i=i+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),writeBigVarintLow(r,i,e),writeBigVarintHigh(i,e)}function writeBigVarintLow(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}function writeBigVarintHigh(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}function makeRoomForExtraLength(t,e,r){var i=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(i);for(var n=r.pos-1;n>=t;n--)r.buf[n+i]=r.buf[n]}function writePackedVarint(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function readInt32(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function readUtf8(t,e,r){for(var i="",n=e;n239?4:o>223?3:o>191?2:1;if(n+a>r)break;var u,h,l;1===a?o<128&&(s=o):2===a?128==(192&(u=t[n+1]))&&(s=(31&o)<<6|63&u)<=127&&(s=null):3===a?(u=t[n+1],h=t[n+2],128==(192&u)&&128==(192&h)&&((s=(15&o)<<12|(63&u)<<6|63&h)<=2047||s>=55296&&s<=57343)&&(s=null)):4===a&&(u=t[n+1],h=t[n+2],l=t[n+3],128==(192&u)&&128==(192&h)&&128==(192&l)&&((s=(15&o)<<18|(63&u)<<12|(63&h)<<6|63&l)<=65535||s>=1114112)&&(s=null)),null===s?(s=65533,a=1):s>65535&&(s-=65536,i+=String.fromCharCode(s>>>10&1023|55296),s=56320|1023&s),i+=String.fromCharCode(s),n+=a}return i}function writeUtf8(t,e,r){for(var i,n,o=0;o55295&&i<57344){if(!n){i>56319||o+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):n=i;continue}if(i<56320){t[r++]=239,t[r++]=191,t[r++]=189,n=i;continue}i=n-55296<<10|i-56320|65536,n=null}else n&&(t[r++]=239,t[r++]=191,t[r++]=189,n=null);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:(i<65536?t[r++]=i>>12|224:(t[r++]=i>>18|240,t[r++]=i>>12&63|128),t[r++]=i>>6&63|128),t[r++]=63&i|128)}return r}function Point$1(t,e){this.x=t,this.y=e}function VectorTileFeature$2(t,e,r,i,n){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=i,this._values=n,t.readFields(readFeature,this,e)}function readFeature(t,e,r){1==t?e.id=r.readVarint():2==t?readTag(r,e):3==t?e.type=r.readVarint():4==t&&(e._geometry=r.pos)}function readTag(t,e){for(var r=t.readVarint()+t.pos;t.pos>3;e=1===i?t.readString():2===i?t.readFloat():3===i?t.readDouble():4===i?t.readVarint64():5===i?t.readVarint():6===i?t.readSVarint():7===i?t.readBoolean():null}return e}function VectorTile$1(t,e){this.layers=t.readFields(readTile,{},e)}function readTile(t,e,r){if(3===t){var i=new VectorTileLayer$1(r,r.readVarint()+r.pos);i.length&&(e[i.name]=i)}}!function(t){function e(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function r(t){return"string"!=typeof t&&(t=String(t)),t}function i(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return v.iterable&&(e[Symbol.iterator]=function(){return e}),e}function n(t){this.map={},t instanceof n?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function o(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function s(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function a(t){var e=new FileReader,r=s(e);return e.readAsArrayBuffer(t),r}function u(t){var e=new FileReader,r=s(e);return e.readAsText(t),r}function h(t){for(var e=new Uint8Array(t),r=new Array(e.length),i=0;i-1?e:t}function p(t,e){e=e||{};var r=e.body;if(t instanceof p){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new n(t.headers)),this.method=t.method,this.mode=t.mode,r||null==t._bodyInit||(r=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"omit",!e.headers&&this.headers||(this.headers=new n(e.headers)),this.method=f(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function d(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),i=r.shift().replace(/\+/g," "),n=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(i),decodeURIComponent(n))}}),e}function y(t){var e=new n;return t.split(/\r?\n/).forEach(function(t){var r=t.split(":"),i=r.shift().trim();if(i){var n=r.join(":").trim();e.append(i,n)}}),e}function m(t,e){e||(e={}),this.type="default",this.status="status"in e?e.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new n(e.headers),this.url=e.url||"",this._initBody(t)}if(!t.fetch){var v={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(v.arrayBuffer)var g=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],b=function(t){return t&&DataView.prototype.isPrototypeOf(t)},w=ArrayBuffer.isView||function(t){return t&&g.indexOf(Object.prototype.toString.call(t))>-1};n.prototype.append=function(t,i){t=e(t),i=r(i);var n=this.map[t];this.map[t]=n?n+","+i:i},n.prototype.delete=function(t){delete this.map[e(t)]},n.prototype.get=function(t){return t=e(t),this.has(t)?this.map[t]:null},n.prototype.has=function(t){return this.map.hasOwnProperty(e(t))},n.prototype.set=function(t,i){this.map[e(t)]=r(i)},n.prototype.forEach=function(t,e){var r=this;for(var i in this.map)r.map.hasOwnProperty(i)&&t.call(e,r.map[i],i,r)},n.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),i(t)},n.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),i(t)},n.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),i(t)},v.iterable&&(n.prototype[Symbol.iterator]=n.prototype.entries);var _=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this,{body:this._bodyInit})},c.call(p.prototype),c.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new n(this.headers),url:this.url})},m.error=function(){var t=new m(null,{status:0,statusText:""});return t.type="error",t};var x=[301,302,303,307,308];m.redirect=function(t,e){if(-1===x.indexOf(e))throw new RangeError("Invalid status code");return new m(null,{status:e,headers:{location:t}})},t.Headers=n,t.Request=p,t.Response=m,t.fetch=function(t,e){return new Promise(function(r,i){var n=new p(t,e),o=new XMLHttpRequest;o.onload=function(){var t={status:o.status,statusText:o.statusText,headers:y(o.getAllResponseHeaders()||"")};t.url="responseURL"in o?o.responseURL:t.headers.get("X-Request-URL");var e="response"in o?o.response:o.responseText;r(new m(e,t))},o.onerror=function(){i(new TypeError("Network request failed"))},o.ontimeout=function(){i(new TypeError("Network request failed"))},o.open(n.method,n.url,!0),"include"===n.credentials&&(o.withCredentials=!0),"responseType"in o&&v.blob&&(o.responseType="blob"),n.headers.forEach(function(t,e){o.setRequestHeader(e,t)}),o.send(void 0===n._bodyInit?null:n._bodyInit)})},t.fetch.polyfill=!0}}("undefined"!=typeof self?self:void 0);var read=function(t,e,r,i,n){var o,s,a=8*n-i-1,u=(1<>1,l=-7,c=r?n-1:0,f=r?-1:1,p=t[e+c];for(c+=f,o=p&(1<<-l)-1,p>>=-l,l+=a;l>0;o=256*o+t[e+c],c+=f,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=i;l>0;s=256*s+t[e+c],c+=f,l-=8);if(0===o)o=1-h;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,i),o-=h}return(p?-1:1)*s*Math.pow(2,o-i)},write=function(t,e,r,i,n,o){var s,a,u,h=8*o-n-1,l=(1<>1,f=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,p=i?0:o-1,d=i?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),e+=s+c>=1?f/u:f*Math.pow(2,1-c),e*u>=2&&(s++,u/=2),s+c>=l?(a=0,s=l):s+c>=1?(a=(e*u-1)*Math.pow(2,n),s+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,n),s=0));n>=8;t[r+p]=255&a,p+=d,a/=256,n-=8);for(s=s<0;t[r+p]=255&s,p+=d,s/=256,h-=8);t[r+p-d]|=128*y},index$1={read:read,write:write},index=Pbf,ieee754=index$1;Pbf.Varint=0,Pbf.Fixed64=1,Pbf.Bytes=2,Pbf.Fixed32=5;var SHIFT_LEFT_32=4294967296,SHIFT_RIGHT_32=1/SHIFT_LEFT_32;Pbf.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){var i=this;for(r=r||this.length;this.pos>3,s=i.pos;i.type=7&n,t(o,e,i),i.pos===s&&i.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=readUInt32(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=readInt32(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=readUInt32(this.buf,this.pos)+readUInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readSFixed64:function(){var t=readUInt32(this.buf,this.pos)+readInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readFloat:function(){var t=ieee754.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ieee754.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,i=this.buf;return r=i[this.pos++],e=127&r,r<128?e:(r=i[this.pos++],e|=(127&r)<<7,r<128?e:(r=i[this.pos++],e|=(127&r)<<14,r<128?e:(r=i[this.pos++],e|=(127&r)<<21,r<128?e:(r=i[this.pos],e|=(15&r)<<28,readVarintRemainder(e,t,this)))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=readUtf8(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var r=this,i=readPackedEnd(this);for(t=t||[];this.pos127;);else if(e===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Pbf.Fixed32)this.pos+=4;else{if(e!==Pbf.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0)return void writeBigVarint(t,this);this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=writeUtf8(this.buf,t,this.pos);var r=this.pos-e;r>=128&&makeRoomForExtraLength(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),ieee754.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ieee754.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=this,r=t.length;this.writeVarint(r),this.realloc(r);for(var i=0;i=128&&makeRoomForExtraLength(r,i,this),this.pos=r-1,this.writeVarint(i),this.pos+=i},writeMessage:function(t,e,r){this.writeTag(t,Pbf.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,writePackedVarint,e)},writePackedSVarint:function(t,e){this.writeMessage(t,writePackedSVarint,e)},writePackedBoolean:function(t,e){this.writeMessage(t,writePackedBoolean,e)},writePackedFloat:function(t,e){this.writeMessage(t,writePackedFloat,e)},writePackedDouble:function(t,e){this.writeMessage(t,writePackedDouble,e)},writePackedFixed32:function(t,e){this.writeMessage(t,writePackedFixed32,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,writePackedSFixed32,e)},writePackedFixed64:function(t,e){this.writeMessage(t,writePackedFixed64,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,writePackedSFixed64,e)},writeBytesField:function(t,e){this.writeTag(t,Pbf.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,Pbf.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,Pbf.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,Pbf.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,Pbf.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,Pbf.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,Pbf.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,Pbf.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,Pbf.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,Pbf.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var index$5=Point$1;Point$1.prototype={clone:function(){return new Point$1(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),i=e*this.x-r*this.y,n=r*this.x+e*this.y;return this.x=i,this.y=n,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Point$1.convert=function(t){return t instanceof Point$1?t:Array.isArray(t)?new Point$1(t[0],t[1]):t};var Point=index$5,vectortilefeature=VectorTileFeature$2;VectorTileFeature$2.types=["Unknown","Point","LineString","Polygon"],VectorTileFeature$2.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,r=t.readVarint()+t.pos,i=1,n=0,o=0,s=0,a=[];t.pos>3}if(n--,1===i||2===i)o+=t.readSVarint(),s+=t.readSVarint(),1===i&&(e&&a.push(e),e=[]),e.push(new Point(o,s));else{if(7!==i)throw new Error("unknown command "+i);e&&e.push(e[0].clone())}}return e&&a.push(e),a},VectorTileFeature$2.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,i=0,n=0,o=0,s=1/0,a=-1/0,u=1/0,h=-1/0;t.pos>3}if(i--,1===r||2===r)n+=t.readSVarint(),o+=t.readSVarint(),na&&(a=n),oh&&(h=o);else if(7!==r)throw new Error("unknown command "+r)}return[s,u,a,h]},VectorTileFeature$2.prototype.toGeoJSON=function(t,e,r){function i(t){for(var e=0;e=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature$1(this._pbf,e,this.extent,this._keys,this._values)};var VectorTileLayer$1=vectortilelayer,vectortile=VectorTile$1,VectorTile=vectortile;L.SVG.Tile=L.SVG.extend({initialize:function(t,e,r){L.SVG.prototype.initialize.call(this,r),this._tileCoord=t,this._size=e,this._initContainer(),this._container.setAttribute("width",this._size.x),this._container.setAttribute("height",this._size.y),this._container.setAttribute("viewBox",[0,0,this._size.x,this._size.y].join(" ")),this._layers={}},getCoord:function(){return this._tileCoord},getContainer:function(){return this._container},onAdd:L.Util.falseFn,addTo:function(t){if(this._map=t,this.options.interactive)for(var e in this._layers){var r=this._layers[e];r._path.style.pointerEvents="auto",this._map._targets[L.stamp(r._path)]=r}},removeFrom:function(t){if(this.options.interactive)for(var e in this._layers){var r=this._layers[e];delete this._map._targets[L.stamp(r._path)]}delete this._map},_initContainer:function(){L.SVG.prototype._initContainer.call(this);L.SVG.create("rect")},_addPath:function(t){this._rootGroup.appendChild(t._path),this._layers[L.stamp(t)]=t},_updateIcon:function(t){var e=t._path=L.SVG.create("image"),r=t.options.icon,i=r.options,n=L.point(i.iconSize),o=i.iconAnchor||n&&n.divideBy(2,!0),s=t._point.subtract(o);e.setAttribute("x",s.x),e.setAttribute("y",s.y),e.setAttribute("width",n.x+"px"),e.setAttribute("height",n.y+"px"),e.setAttribute("href",i.iconUrl)}}),L.svg.tile=function(t,e,r){return new L.SVG.Tile(t,e,r)};var Symbolizer=L.Class.extend({render:function(t,e){this._renderer=t,this.options=e,t._initPath(this),t._updateStyle(this)},updateStyle:function(t,e){this.options=e,t._updateStyle(this)},_getPixelBounds:function(){for(var t=this._parts,e=L.bounds([]),r=0;rn&&(i=r,n=o);n>a?(e[i][2]=n,c.push(l),c.push(i),l=i):(u=c.pop(),l=c.pop())}}function getSqSegDist(e,t,r){var n=t[0],o=t[1],i=r[0],a=r[1],s=e[0],l=e[1],u=i-n,c=a-o;if(0!==u||0!==c){var f=((s-n)*u+(l-o)*c)/(u*u+c*c);f>1?(n=i,o=a):f>0&&(n+=u*f,o+=c*f)}return u=s-n,c=l-o,u*u+c*c}function convert$1(e,t){var r=[];if("FeatureCollection"===e.type)for(var n=0;n1?1:n,[r,n,0]}function calcSize(e){for(var t,r,n=0,o=0,i=0;i=r&&s<=n)return e;if(a>n||s=r&&f<=n)l.push(p);else if(!(c>n||f=t&&s<=r&&o.push(a)}return o}function clipGeometry(e,t,r,n,o,i){for(var a=[],s=0;sr?(x.push(o(l,h,t),o(l,h,r)),i||(x=newSlice(a,x,g,d,v))):p>=t&&x.push(o(l,h,t)):f>r?pr&&(x.push(o(l,h,r)),i||(x=newSlice(a,x,g,d,v))));l=m[y-1],f=l[n],f>=t&&f<=r&&x.push(l),c=x[x.length-1],i&&c&&(x[0][0]!==c[0]||x[0][1]!==c[1])&&x.push(x[0]),newSlice(a,x,g,d,v)}return a}function newSlice(e,t,r,n,o){return t.length&&(t.area=r,t.dist=n,void 0!==o&&(t.outer=o),e.push(t)),[]}function wrap$1(e,t,r){var n=e,o=clip$2(e,1,-1-t,t,0,r,-1,2),i=clip$2(e,1,1-t,2+t,0,r,-1,2);return(o||i)&&(n=clip$2(e,1,-t,1+t,0,r,-1,2),o&&(n=shiftFeatureCoords(o,1).concat(n)),i&&(n=n.concat(shiftFeatureCoords(i,-1)))),n}function shiftFeatureCoords(e,t){for(var r=[],n=0;na.max[0]&&(a.max[0]=u[0]),u[1]>a.max[1]&&(a.max[1]=u[1])}return a}function addFeature(e,t,r,n){var o,i,a,s,l=t.geometry,u=t.type,c=[],f=r*r;if(1===u)for(o=0;of)&&(p.push(s),e.numSimplified++),e.numPoints++;3===u&&rewind(p,a.outer),c.push(p)}else e.numPoints+=a.length;c.length&&e.features.push({geometry:c,type:u,tags:t.tags||null})}function rewind(e,t){signedArea(e)<0===t&&e.reverse()}function signedArea(e){for(var t,r,n=0,o=0,i=e.length,a=i-1;o1)return!1;var i=o.geometry[0].length;if(5!==i)return!1;for(var a=0;a1&&console.time("creation"),m=s.tiles[h]=createTile(e,p,r,n,g,t===u.maxZoom),s.tileCoords.push({z:t,x:r,y:n}),c)){c>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,n,m.numFeatures,m.numPoints,m.numSimplified),console.timeEnd("creation"));var d="z"+t;s.stats[d]=(s.stats[d]||0)+1,s.total++}if(m.source=e,o){if(t===u.maxZoom||t===o)continue;var v=1<1&&console.time("clipping");var y,x,b,M,P,S,w=.5*u.buffer/u.extent,$=.5-w,C=.5+w,F=1+w;y=x=b=M=null,P=clip(e,p,r-w,r+C,0,intersectX,m.min[0],m.max[0]),S=clip(e,p,r+$,r+F,0,intersectX,m.min[0],m.max[0]),P&&(y=clip(P,p,n-w,n+C,1,intersectY,m.min[1],m.max[1]),x=clip(P,p,n+$,n+F,1,intersectY,m.min[1],m.max[1])),S&&(b=clip(S,p,n-w,n+C,1,intersectY,m.min[1],m.max[1]),M=clip(S,p,n+$,n+F,1,intersectY,m.min[1],m.max[1])),c>1&&console.timeEnd("clipping"),y&&l.push(y,t+1,2*r,2*n),x&&l.push(x,t+1,2*r,2*n+1),b&&l.push(b,t+1,2*r+1,2*n),M&&l.push(M,t+1,2*r+1,2*n+1)}else o&&(f=t)}return f},GeoJSONVT.prototype.getTile=function(e,t,r){var n=this,o=this.options,i=o.extent,a=o.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var u,c=e,f=t,p=r;!u&&c>0;)c--,f=Math.floor(f/2),p=Math.floor(p/2),u=n.tiles[toID(c,f,p)];if(!u||!u.source)return null;if(a>1&&console.log("found parent tile z%d-%d-%d",c,f,p),isClippedSquare(u,i,o.buffer))return transform.tile(u,i);a>1&&console.time("drilling down");var h=this.splitTile(u.source,c,f,p,e,t,r);if(a>1&&console.timeEnd("drilling down"),null!==h){var m=1<c&&(c=s[0]),s[1]f&&(f=s[1])}function r(e){switch(e.type){case"GeometryCollection":e.geometries.forEach(r);break;case"Point":t(e.coordinates);break;case"MultiPoint":e.coordinates.forEach(t)}}var n=e.bbox;if(!n){var o,i,a=transform$3(e),s=new Array(2),l=1/0,u=l,c=-l,f=-l;e.arcs.forEach(function(e){for(var t=-1,r=e.length;++tc&&(c=s[0]),s[1]f&&(f=s[1])});for(i in e.objects)r(e.objects[i]);n=e.bbox=[l,u,c,f]}return n},reverse=function(e,t){for(var r,n=e.length,o=n-t;o<--n;)r=e[o],e[o++]=e[n],e[n]=r},feature=function(e,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return feature$1(e,t)})}:feature$1(e,t)},stitch=function(e,t){function r(t){var r,n=e.arcs[t<0?~t:t],o=n[0];return e.transform?(r=[0,0],n.forEach(function(e){r[0]+=e[0],r[1]+=e[1]})):r=n[n.length-1],t<0?[r,o]:[o,r]}function n(e,t){for(var r in e){var n=e[r];delete t[n.start],delete n.start,delete n.end,n.forEach(function(e){o[e<0?~e:e]=1}),s.push(n)}}var o={},i={},a={},s=[],l=-1;return t.forEach(function(r,n){var o,i=e.arcs[r<0?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=t[++l],t[l]=r,t[n]=o)}),t.forEach(function(e){var t,n,o=r(e),s=o[0],l=o[1];if(t=a[s])if(delete a[t.end],t.push(e),t.end=l,n=i[l]){delete i[n.start];var u=n===t?t:t.concat(n);i[u.start=t.start]=a[u.end=n.end]=u}else i[t.start]=a[t.end]=t;else if(t=i[l])if(delete i[t.start],t.unshift(e),t.start=s,n=a[s]){delete a[n.end];var c=n===t?t:n.concat(t);i[c.start=n.start]=a[c.end=t.end]=c}else i[t.start]=a[t.end]=t;else t=[e],i[t.start=s]=a[t.end=l]=t}),n(a,i),n(i,a),t.forEach(function(e){o[e<0?~e:e]||s.push([e])}),s},bisect=function(e,t){for(var r=0,n=e.length;r>>1;e[o]FhCYNy;#0irRPomHqW|G1C*;4?@4#E?jH>?v@U%cy?3dQAc-DchXVErpOh~ z-jbon+tNbnl6hoEb;)TVk+%hTDDi_G%i3*RZ&15!$Fjr^f;Ke&A@|?=`2&+{zr+3a z{D*=t(`AXyS%X7N z%a#RZw6vD^t_rnM`L4E>m=U&R!A-&}nZIi$BOPvkhrCuUe@BN~-lRD)f44;J%TwgE zcze8u!PQ_NR7?o(NylLXVTfDO zxs5=@|GsYEsNo4M#nT%N!UE(?dnS)t2+{ELYAFp*3=iF=|EQnTp`#vlSXuGVraYo? z+RCzXo6h3qA8{KG?S4nE(lM+;Eb4nT3XV;7gcAxUi5m)`k5tv}cPy()8ZR3TLW3I- zAS^}cq-IJvL7a4RgR!yk@~RT%$lA7{L5ES*hyx)M4(yxI$Ub(4f)K|^v1>zvwQY!_ zIrWw8q9GS^!Dp~}+?mbnB6jDF8mVlbQ!jFKDY;w=7;XO{9bq7>LXGK24WA`;rL)_Z z)&j}pbV(;6gY;VMhbxgvn`X;6x}VUEE-7 z%)7j-%t8S=ZL3yc)HbXDAqJZvBTPoiW_A-+a8m3_Z?v{DN7Tnr#O_VUMT0UBt$;p` zDh6JbGHN8JJ*JN%y2%msb97@_S>9!%Egwk;?PEkU9ntz&3uR}%Fj5d$JHQbQb3}a{ zSzFT^#n=VInPpcAS}CNxj?_ zVscANk5Cfz(51EI1pz};AWWb|kgbYNb4wCEGUn3+eMUMV?1-{=I4TlmLJMot@rd07 zZuo2hk1ccu{YmGkcYdWAVdk{Z4Nm?^cTD&}jGm+Q1SYIXMwmG*oO*83&#>l%nbR`G zhh=lZ%xIb7kU3#;TBbfECrnC9P=-XpL|TG2BoZdj61*XiFbW8?1Z_wp%#;>${SUIy V$8qr;L*)Pf002ovPDHLkV1hYLS~36t literal 0 HcmV?d00001 diff --git a/static/leaflet/images/layers.png b/static/leaflet/images/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72e5784b2b456eac5d7670738db80697af3377 GIT binary patch literal 696 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 e-I|>x8~*?ZhF3snGbtJX0000cOl4 literal 0 HcmV?d00001 diff --git a/static/leaflet/images/marker-icon.png b/static/leaflet/images/marker-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..950edf24677ded147df13b26f91baa2b0fa70513 GIT binary patch literal 1466 zcmV;r1x5OaP)P001cn1^@s6z>|W`000GnNklGNuHDcIX17Zdjl&3`L?0sTjIws<{((Dh&g-s0<@jYQyl?D*X^?%13;ml^gy> ziMrY_^1WI=(g@LMizu=zCoA>C`6|QEq1eV92k*7m>G65*&@&6)aC&e}G zI)pf-Za|N`DT&Cn1J|o`19mumxW~hiKiKyc-P`S@q)rdTo84@QI@;0yXrG%9uhI>A zG5QHb6s4=<6xy{1 z@NMxEkryp{LS44%z$3lP^cX!9+2-;CTt3wM4(k*#C{aiIiLuB>jJj;KPhPzIC00bL zU3a#;aJld94lCW=`4&aAy8M7PY=HQ>O%$YEP4c4UY#CRxfgbE~(|uiI=YS8q;O9y6 zmIkXzR`}p7ti|PrM3a}WMnR=3NVnWdAAR>b9X@)DKL6=YsvmH%?I24wdq?Gh54_;# z$?_LvgjEdspdQlft#4CQ z`2Zyvy?*)N1Ftw|{_hakhG9WjS?Az@I@+IZ8JbWewR!XUK4&6346+d#~gsE0SY(LX8&JfY>Aj)RxGy96nwhs2rv zzW6pTnMpFkDSkT*a*6Dx|u@ds6ISVn0@^RmIsKZ5Y;bazbc;tTSq(kg(=481ODrPyNB6n z-$+U}(w$m6U6H$w17Bw+wDaFIe~GvNMYvnw31MpY0eQKT9l>SU``8k7w4)z!GZKMI z#_cEKq7k~i%nlK@6c-K?+R;B#5$?T#YpKD`t_4bAs^#E+@5QW$@OX3*`;(#{U^d-vY)&xEE>n5lYl&T?Amke9$Lam@{1K@O ze*LXqlKQHiv=gx+V^Cbb2?z@ISBQ*3amF;9UJ3SBg(N|710TLamQmYZ&Qjn2LuO<* zCZlB4n%@pc&7NNnY1}x+NWpHlq`OJEo|`aYN9<`RBUB+79g;>dgb6YlfN#kGL?lO_ z!6~M^7sOnbsUkKk<@Ysie&`G>ruxH&Mgy&8;i=A zB9OO!xR{AyODw>DS-q5YM{0ExFEAzt zm>RdS+ssW(-8|?xr0(?$vBVB*%(xDLtq3Hf0I5yFm<_g=W2`QWAax{1rWVH=I!VrP zs(rTFX@W#t$hXNvbgX`gK&^w_YD;CQ!B@e0QbLIWaKAXQe2-kkloo;{iF#6}z!4=W zi$giRj1{ zt;2w`VSCF#WE&*ev7jpsC=6175@(~nTE2;7M-L((0bH@yG}-TB$R~WXd?tA$s3|%y zA`9$sA(>F%J3ioz<-LJl*^o1|w84l>HBR`>3l9c8$5Xr@xCiIQ7{x$fMCzOk_-M=% z+{a_Q#;42`#KfUte@$NT77uaTz?b-fBe)1s5XE$yA79fm?KqM^VgLXD07*qoM6N<$ Ef<_J(9smFU literal 0 HcmV?d00001 diff --git a/static/leaflet/leaflet-rotate.js b/static/leaflet/leaflet-rotate.js new file mode 100644 index 0000000..6038648 --- /dev/null +++ b/static/leaflet/leaflet-rotate.js @@ -0,0 +1,1940 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + /** + * @external L.DomUtil + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/dom/DomUtil.js + */ + + const domUtilProto = L.extend({}, L.DomUtil); + + L.extend(L.DomUtil, { + + /** + * Resets the 3D CSS transform of `el` so it is + * translated by `offset` pixels and optionally + * scaled by `scale`. Does not have an effect if + * the browser doesn't support 3D CSS transforms. + * + * @param {HTMLElement} el + * @param {L.Point} offset + * @param {Number} scale + * @param {Number} bearing + * @param {L.Point} pivot + */ + setTransform: function(el, offset, scale, bearing, pivot) { + var pos = offset || new L.Point(0, 0); + + if (!bearing) { + offset = pos._round(); + return domUtilProto.setTransform.apply(this, arguments); + } + + pos = pos.rotateFrom(bearing, pivot); + + el.style[L.DomUtil.TRANSFORM] = + 'translate3d(' + pos.x + 'px,' + pos.y + 'px' + ',0)' + + (scale ? ' scale(' + scale + ')' : '') + + ' rotate(' + bearing + 'rad)'; + }, + + /** + * Sets the position of `el` to coordinates specified by + * `position`, using CSS translate or top/left positioning + * depending on the browser (used by Leaflet internally + * to position its layers). + * + * @param {HTMLElement} el + * @param {L.Point} point + * @param {Number} bearing + * @param {L.Point} pivot + * @param {Number} scale + */ + setPosition: function(el, point, bearing, pivot, scale) { + if (!bearing) { + return domUtilProto.setPosition.apply(this, arguments); + } + + /*eslint-disable */ + el._leaflet_pos = point; + /*eslint-enable */ + + if (L.Browser.any3d) { + L.DomUtil.setTransform(el, point, scale, bearing, pivot); + } else { + el.style.left = point.x + 'px'; + el.style.top = point.y + 'px'; + } + }, + + /** + * @constant radians = degrees × π/180° + */ + DEG_TO_RAD: Math.PI / 180, + + /** + * @constant degrees = radians × 180°/π + */ + RAD_TO_DEG: 180 / Math.PI, + + }); + + /** + * @external L.Draggable + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/dom/Draggable.js + */ + + /** + * A class for making DOM elements draggable (including touch support). + * Used internally for map and marker dragging. Only works for elements + * that were positioned with [`L.DomUtil.setPosition`](#domutil-setposition). + */ + + L.Draggable.include({ + + /** @TODO */ + // updateMapBearing: function(mapBearing) { + // this._mapBearing = mapBearing; + // }, + + }); + + /** + * @external L.Point + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/geometry/Point.js + */ + + L.extend(L.Point.prototype, { + + /** + * Rotate around (0,0) by applying the 2D rotation matrix: + * + * ⎡ x' ⎤ = ⎡ cos θ -sin θ ⎤ ⎡ x ⎤ + * ⎣ y' ⎦ ⎣ sin θ cos θ ⎦ ⎣ y ⎦ + * + * @param theta must be given in radians. + */ + rotate: function(theta) { + return this.rotateFrom(theta, new L.Point(0,0)) + }, + + /** + * Rotate around (pivot.x, pivot.y) by: + * + * 1. subtract (pivot.x, pivot.y) + * 2. rotate around (0, 0) + * 3. add (pivot.x, pivot.y) back + * + * same as `this.subtract(pivot).rotate(theta).add(pivot)` + * + * @param {Number} theta + * @param {L.Point} pivot + * + * @returns {L.Point} + */ + rotateFrom: function(theta, pivot) { + if (!theta) { return this; } + var sinTheta = Math.sin(theta); + var cosTheta = Math.cos(theta); + var cx = pivot.x, + cy = pivot.y; + var x = this.x - cx, + y = this.y - cy; + + return new L.Point( + x * cosTheta - y * sinTheta + cx, + x * sinTheta + y * cosTheta + cy + ); + }, + + }); + + /** + * @external L.DivOverlay + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/DivOverlay.js + */ + + const divOverlayProto = L.extend({}, L.DivOverlay.prototype); + + L.DivOverlay.include({ + + /** + * Update L.Popup and L.Tooltip anchor positions after + * the map is moved by calling `map.setBearing(theta)` + * + * @listens L.Map~rotate + */ + getEvents: function() { + return L.extend(divOverlayProto.getEvents.apply(this, arguments), { rotate: this._updatePosition }); + }, + + /** + * 0. update element anchor point (divOverlayProto v1.9.3) + * 1. rotate around anchor point (subtract anchor -> rotate point -> add anchor) + */ + _updatePosition: function() { + if (!this._map) { return; } + divOverlayProto._updatePosition.apply(this, arguments); + if (this._map && this._map._rotate && this._zoomAnimated) { + var anchor = this._getAnchor(); + var pos = L.DomUtil.getPosition(this._container).subtract(anchor); + L.DomUtil.setPosition(this._container, this._map.rotatedPointToMapPanePoint(pos).add(anchor)); + } + + }, + + }); + + /** + * @external L.Popup + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/Popup.js + */ + + const popupProto = L.extend({}, L.Popup.prototype); + + L.Popup.include({ + + /** + * 0. update element anchor point (popupProto v1.9.3) + * 1. rotate around anchor point (subtract anchor -> rotate point -> add anchor) + */ + _animateZoom: function(e) { + popupProto._animateZoom.apply(this, arguments); + if (this._map && this._map._rotate) { + var anchor = this._getAnchor(); + var pos = L.DomUtil.getPosition(this._container).subtract(anchor); + L.DomUtil.setPosition(this._container, this._map.rotatedPointToMapPanePoint(pos).add(anchor)); + } + }, + + /** + * Fix for L.popup({ keepInView = true }) + * + * @see https://github.com/fnicollet/Leaflet/pull/21 + */ + _adjustPan: function() { + if (!this.options.autoPan || (this._map._panAnim && this._map._panAnim._inProgress)) { return; } + + // We can endlessly recurse if keepInView is set and the view resets. + // Let's guard against that by exiting early if we're responding to our own autopan. + if (this._autopanning) { + this._autopanning = false; + return; + } + + var map = this._map, + marginBottom = parseInt(L.DomUtil.getStyle(this._container, 'marginBottom'), 10) || 0, + containerHeight = this._container.offsetHeight + marginBottom, + containerWidth = this._containerWidth, + layerPos = new L.Point(this._containerLeft, -containerHeight - this._containerBottom); + + layerPos._add(L.DomUtil.getPosition(this._container)); + + /** @TODO use popupProto._adjustPan */ + // var containerPos = map.layerPointToContainerPoint(layerPos); + var containerPos = layerPos._add(this._map._getMapPanePos()), + padding = L.point(this.options.autoPanPadding), + paddingTL = L.point(this.options.autoPanPaddingTopLeft || padding), + paddingBR = L.point(this.options.autoPanPaddingBottomRight || padding), + size = map.getSize(), + dx = 0, + dy = 0; + + if (containerPos.x + containerWidth + paddingBR.x > size.x) { // right + dx = containerPos.x + containerWidth - size.x + paddingBR.x; + } + if (containerPos.x - dx - paddingTL.x < 0) { // left + dx = containerPos.x - paddingTL.x; + } + if (containerPos.y + containerHeight + paddingBR.y > size.y) { // bottom + dy = containerPos.y + containerHeight - size.y + paddingBR.y; + } + if (containerPos.y - dy - paddingTL.y < 0) { // top + dy = containerPos.y - paddingTL.y; + } + + // @namespace Map + // @section Popup events + // @event autopanstart: Event + // Fired when the map starts autopanning when opening a popup. + if (dx || dy) { + // Track that we're autopanning, as this function will be re-ran on moveend + if (this.options.keepInView) { + this._autopanning = true; + } + map + .fire('autopanstart') + .panBy([dx, dy]); + } + }, + + }); + + /** + * @external L.Tooltip + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/Tooltip.js + */ + + const tooltipProto = L.extend({}, L.Tooltip.prototype); + + L.Tooltip.include({ + + _animateZoom: function(e) { + if (!this._map._rotate) { + return tooltipProto._animateZoom.apply(this, arguments); + } + var pos = this._map._latLngToNewLayerPoint(this._latlng, e.zoom, e.center); + + pos = this._map.rotatedPointToMapPanePoint(pos); + this._setPosition(pos); + }, + + _updatePosition: function() { + if (!this._map._rotate) { + return tooltipProto._updatePosition.apply(this, arguments); + } + var pos = this._map.latLngToLayerPoint(this._latlng); + + pos = this._map.rotatedPointToMapPanePoint(pos); + this._setPosition(pos); + }, + + }); + + /** + * @external L.Icon + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/marker/Icon.js + */ + + L.extend({}, L.Icon.prototype); + + L.Icon.include({ + + _setIconStyles: function(img, name) { + var options = this.options; + var sizeOption = options[name + 'Size']; + + if (typeof sizeOption === 'number') { + sizeOption = [sizeOption, sizeOption]; + } + + var size = L.point(sizeOption), + anchor = L.point(name === 'shadow' && options.shadowAnchor || options.iconAnchor || + size && size.divideBy(2, true)); + + img.className = 'leaflet-marker-' + name + ' ' + (options.className || ''); + + if (anchor) { + img.style.marginLeft = (-anchor.x) + 'px'; + img.style.marginTop = (-anchor.y) + 'px'; + /** @TODO use iconProto._setIconStyles */ + img.style[L.DomUtil.TRANSFORM + "Origin"] = anchor.x + "px " + anchor.y + "px 0px"; + } + + if (size) { + img.style.width = size.x + 'px'; + img.style.height = size.y + 'px'; + } + }, + + }); + + /** + * @external L.Marker + * @external L.Handler.MarkerDrag + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/marker/Marker.js + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/marker/Marker.Drag.js + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/dom/Draggable.js + */ + + const markerProto = L.extend({}, L.Marker.prototype); + + L.Marker.mergeOptions({ + + /** + * Rotation of this marker in rad + * + * @type {Number} + */ + rotation: 0, + + /** + * Rotate this marker when map rotates + * + * @type {Boolean} + */ + rotateWithView: false, + + /** + * Scale of the marker icon + * + * @type {Number} + */ + scale: undefined, + + }); + + var markerDragProto; // retrived at runtime (see below: L.Marker::_initInteraction()) + + var MarkerDrag = { + + // _onDragStart: function() { + // if (!this._marker._map._rotate) { + // return markerDragProto._onDragStart.apply(this, arguments); + // } + // this._draggable.updateMapBearing(this._marker._map._bearing); + // }, + + _onDrag: function(e) { + var marker = this._marker, + /** @TODO use markerDragProto._onDrag */ + rotated_marker = marker.options.rotation || marker.options.rotateWithView, + shadow = marker._shadow, + iconPos = L.DomUtil.getPosition(marker._icon); + + /** @TODO use markerDragProto._onDrag */ + // update shadow position + if (!rotated_marker && shadow) { + L.DomUtil.setPosition(shadow, iconPos); + } + + /** @TODO use markerDragProto._onDrag */ + if (marker._map._rotate) { + // Reverse calculation from mapPane coordinates to rotatePane coordinates + iconPos = marker._map.mapPanePointToRotatedPoint(iconPos); + } + var latlng = marker._map.layerPointToLatLng(iconPos); + + marker._latlng = latlng; + e.latlng = latlng; + e.oldLatLng = this._oldLatLng; + + /** @TODO use markerDragProto._onDrag */ + if (rotated_marker) marker.setLatLng(latlng); // use `setLatLng` to presisit rotation. low efficiency + else marker.fire('move', e); // `setLatLng` will trig 'move' event. we imitate here. + + // @event drag: Event + // Fired repeatedly while the user drags the marker. + marker + .fire('drag', e); + }, + + _onDragEnd: function(e) { + if (this._marker._map._rotate) { + this._marker.update(); + } + markerDragProto._onDragEnd.apply(this, arguments); + }, + + }; + + L.Marker.include({ + + /** + * Update L.Marker anchor position after the map + * is moved by calling `map.setBearing(theta)` + * + * @listens L.Map~rotate + */ + getEvents: function() { + return L.extend(markerProto.getEvents.apply(this, arguments), { rotate: this.update }); + }, + + _initInteraction: function() { + var ret = markerProto._initInteraction.apply(this, arguments); + if (this.dragging && this.dragging.enabled() && this._map && this._map._rotate) { + // L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable + markerDragProto = markerDragProto || Object.getPrototypeOf(this.dragging); + this.dragging.disable(); + Object.assign(this.dragging, { + // _onDragStart: MarkerDrag._onDragStart.bind(this.dragging), + _onDrag: MarkerDrag._onDrag.bind(this.dragging), + _onDragEnd: MarkerDrag._onDragEnd.bind(this.dragging), + }); + this.dragging.enable(); + } + return ret; + }, + + _setPos: function(pos) { + + /** @TODO use markerProto._setPos */ + if (this._map._rotate) { + pos = this._map.rotatedPointToMapPanePoint(pos); + } + + /** @TODO use markerProto._setPos */ + var bearing = this.options.rotation || 0; + if (this.options.rotateWithView) { + bearing += this._map._bearing; + } + + /** @TODO use markerProto._setPos */ + if (this._icon) { + L.DomUtil.setPosition(this._icon, pos, bearing, pos, this.options.scale); + } + + /** @TODO use markerProto._setPos */ + if (this._shadow) { + L.DomUtil.setPosition(this._shadow, pos, bearing, pos, this.options.scale); + } + + this._zIndex = pos.y + this.options.zIndexOffset; + + this._resetZIndex(); + }, + + // _updateZIndex: function(offset) { + // if (!this._map._rotate) { + // return markerProto._updateZIndex.apply(this, arguments); + // } + // this._icon.style.zIndex = Math.round(this._zIndex + offset); + // }, + + setRotation: function(rotation) { + this.options.rotation = rotation; + this.update(); + }, + + }); + + /** + * @external L.GridLayer + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/tile/GridLayer.js + */ + + const gridLayerProto = L.extend({}, L.GridLayer.prototype); + + L.GridLayer.include({ + + /** + * Redraw L.TileLayer bounds after the map is + * moved by just calling `map.setBearing(theta)` + * + * @listens L.Map~rotate + */ + getEvents: function() { + var events = gridLayerProto.getEvents.apply(this, arguments); + if (this._map._rotate && !this.options.updateWhenIdle) { + if (!this._onRotate) { + this._onRotate = L.Util.throttle(this._onMoveEnd, this.options.updateInterval, this); + } + events.rotate = this._onRotate; + } + return events; + }, + + _getTiledPixelBounds: function(center) { + if (!this._map._rotate) { + return gridLayerProto._getTiledPixelBounds.apply(this, arguments); + } + + return this._map._getNewPixelBounds(center, this._tileZoom); + }, + + }); + + /** + * @external L.Renderer + * + * @see https://github.com/Leaflet/Leaflet/tree/v1.9.3/src/layer/vector/Renderer.js + */ + + const rendererProto = L.extend({}, L.Renderer.prototype); + + L.Renderer.include({ + + /** + * Redraw L.Canvas and L.SVG renderer bounds after the + * map is moved by just calling `map.setBearing(theta)` + * + * @listens L.Map~rotate + */ + getEvents: function() { + return L.extend(rendererProto.getEvents.apply(this, arguments), { rotate: this._update }); + }, + + /** + * Fix for `map.flyTo()` when `false === map.options.zoomAnimation` + * + * @see https://github.com/Leaflet/Leaflet/pull/8794 + */ + onAdd: function() { + rendererProto.onAdd.apply(this, arguments); + if (L.version <= "1.9.3") { + // always keep transform-origin as 0 0 + this._container.classList.add('leaflet-zoom-animated'); + } + }, + + /** + * @FIXME layer drifts on `map.setZoom()` (eg. zoom during animation) + * + * the main cause seems to be related to `this._updateTransform(path._center, path._zoom))` + * and `this._topLeft = this._map.layerPointToLatLng(this._bounds.min);` + * + * @example + * map.setZoom(2); + * path._renderer._update(); + * path._renderer._updateTransform(path._renderer._center, path._renderer._zoom); + * + * @see https://github.com/Leaflet/Leaflet/pull/8794 + * @see https://github.com/Leaflet/Leaflet/pull/8103 + * @see https://github.com/Leaflet/Leaflet/issues/7466 + * + * @TODO rechek this changes from leaflet@v1.9.3 + * + * @see https://github.com/Leaflet/Leaflet/compare/v1.7.0...v1.9.3 + */ + _updateTransform: function(center, zoom) { + if (!this._map._rotate) { + return rendererProto._updateTransform.apply(this, arguments); + } + /** + * @FIXME see path._renderer._reset(); + */ + var scale = this._map.getZoomScale(zoom, this._zoom), + offset = this._map._latLngToNewLayerPoint(this._topLeft, zoom, center); + + L.DomUtil.setTransform(this._container, offset, scale); + + }, + + // getEvents() { + // const events = { + // viewreset: this._reset, + // zoom: this._onZoom, + // moveend: this._update, + // zoomend: this._onZoomEnd + // }; + // if (this._zoomAnimated) { + // events.zoomanim = this._onAnimZoom; + // } + // return events; + // }, + + // _onAnimZoom(ev) { + // this._updateTransform(ev.center, ev.zoom); + // }, + + // _onZoom() { + // this._updateTransform(this._map.getCenter(), this._map.getZoom()); + // }, + + // _onZoomEnd() { + // for (const id in this._layers) { + // this._layers[id]._project(); + // } + // }, + + // _reset() { + // this._update(); + // this._updateTransform(this._center, this._zoom); + + // for (const id in this._layers) { + // this._layers[id]._reset(); + // } + // }, + + // _updatePaths() { + // for (const id in this._layers) { + // this._layers[id]._update(); + // } + // }, + + _update: function() { + if (!this._map._rotate) { + return rendererProto._update.apply(this, arguments); + } + // Update pixel bounds of renderer container (for positioning/sizing/clipping later) + // Subclasses are responsible of firing the 'update' event. + this._bounds = this._map._getPaddedPixelBounds(this.options.padding); + this._topLeft = this._map.layerPointToLatLng(this._bounds.min); + this._center = this._map.getCenter(); + this._zoom = this._map.getZoom(); + }, + + }); + + /** + * @external L.Map + * + * @see https://github.com/Leaflet/Leaflet/blob/v1.9.3/src/map/Map.js + */ + + const mapProto = L.extend({}, L.Map.prototype); + + L.Map.mergeOptions({ rotate: false, bearing: 0, }); + + L.Map.include({ + + /** + * @param {(HTMLElement|String)} id html selector + * @param {Object} [options={}] leaflet map options + */ + initialize: function(id, options) { + if (options.rotate) { + this._rotate = true; + this._bearing = 0; + } + mapProto.initialize.apply(this, arguments); + if(this.options.rotate){ + this.setBearing(this.options.bearing); + } + }, + + /** + * Given a pixel coordinate relative to the map container, + * returns the corresponding pixel coordinate relative to + * the [origin pixel](#map-getpixelorigin). + * + * @param {L.Point} point pixel screen coordinates + * @returns {L.Point} transformed pixel point + */ + containerPointToLayerPoint: function(point) { + if (!this._rotate) { + return mapProto.containerPointToLayerPoint.apply(this, arguments); + } + return L.point(point) + .subtract(this._getMapPanePos()) + .rotateFrom(-this._bearing, this._getRotatePanePos()) + .subtract(this._getRotatePanePos()); + }, + + /** + * Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin), + * returns the corresponding pixel coordinate relative to the map container. + * + * @param {L.Point} point pixel screen coordinates + * @returns {L.Point} transformed pixel point + */ + layerPointToContainerPoint: function(point) { + if (!this._rotate) { + return mapProto.layerPointToContainerPoint.apply(this, arguments); + } + return L.point(point) + .add(this._getRotatePanePos()) + .rotateFrom(this._bearing, this._getRotatePanePos()) + .add(this._getMapPanePos()); + }, + + /** + * Converts a coordinate from the rotated pane reference system + * to the reference system of the not rotated map pane. + * + * (rotatePane) --> (mapPane) + * (rotatePane) --> (norotatePane) + * + * @param {L.Point} point pixel screen coordinates + * @returns {L.Point} + * + * @since leaflet-rotate (v0.1) + */ + rotatedPointToMapPanePoint: function(point) { + return L.point(point) + .rotate(this._bearing) + ._add(this._getRotatePanePos()); + }, + + /** + * Converts a coordinate from the not rotated map pane reference system + * to the reference system of the rotated pane. + * + * (mapPane) --> (rotatePane) + * (norotatePane) --> (rotatePane) + * + * @param {L.Point} point pixel screen coordinates + * + * @since leaflet-rotate (v0.1) + */ + mapPanePointToRotatedPoint: function(point) { + return L.point(point) + ._subtract(this._getRotatePanePos()) + .rotate(-this._bearing); + }, + + // latLngToLayerPoint: function (latlng) { + // var projectedPoint = this.project(L.latLng(latlng))._round(); + // return projectedPoint._subtract(this.getPixelOrigin()); + // }, + + // latLngToContainerPoint: function (latlng) { + // return this.layerPointToContainerPoint(this.latLngToLayerPoint(toLatLng(latlng))); + // }, + + /** + * Given latlng bounds, returns the bounds in projected pixel + * relative to the map container. + * + * @see https://github.com/ronikar/Leaflet/blob/5c480ef959b947c3beed7065425a5a36c486262b/src/map/Map.js#L1114-L1135 + * + * @param {L.LatLngBounds} bounds + * @returns {L.Bounds} + * + * @since leaflet-rotate (v0.2) + */ + mapBoundsToContainerBounds: function (bounds) { + if (!this._rotate && mapProto.mapBoundsToContainerBounds) { + return mapProto.mapBoundsToContainerBounds.apply(this, arguments); + } + + // const nw = this.latLngToContainerPoint(bounds.getNorthWest()), + // ne = this.latLngToContainerPoint(bounds.getNorthEast()), + // sw = this.latLngToContainerPoint(bounds.getSouthWest()), + // se = this.latLngToContainerPoint(bounds.getSouthEast()); + + // same as `this.latLngToContainerPoint(latlng)` but with floating point precision + const origin = this.getPixelOrigin(); + const nw = this.layerPointToContainerPoint(this.project(bounds.getNorthWest())._subtract(origin)), + ne = this.layerPointToContainerPoint(this.project(bounds.getNorthEast())._subtract(origin)), + sw = this.layerPointToContainerPoint(this.project(bounds.getSouthWest())._subtract(origin)), + se = this.layerPointToContainerPoint(this.project(bounds.getSouthEast())._subtract(origin)); + + return L.bounds([ + L.point(Math.min(nw.x, ne.x, se.x, sw.x), Math.min(nw.y, ne.y, se.y, sw.y)), // [ minX, minY ] + L.point(Math.max(nw.x, ne.x, se.x, sw.x), Math.max(nw.y, ne.y, se.y, sw.y)) // [ maxX, maxY ] + ]); + }, + + /** + * Returns geographical bounds visible in the current map view + * + * @TODO find out if map bounds calculated by `L.Map::getBounds()` + * function should match the `rotatePane` or `norotatePane` bounds + * + * @see https://github.com/fnicollet/Leaflet/issues/7 + * + * @returns {L.LatLngBounds} + */ + getBounds: function() { + if (!this._rotate) { + return mapProto.getBounds.apply(this, arguments); + } + + // SEE: https://github.com/fnicollet/Leaflet/pull/22 + // + // var bounds = this.getPixelBounds(), + // sw = this.unproject(bounds.getBottomLeft()), + // ne = this.unproject(bounds.getTopRight()); + // return new LatLngBounds(sw, ne); + // + + // LatLngBounds' constructor automatically + // extends the bounds to fit the passed points + var size = this.getSize(); + return new L.LatLngBounds([ + this.containerPointToLatLng([0, 0]), // topleft + this.containerPointToLatLng([size.x, 0]), // topright + this.containerPointToLatLng([size.x, size.y]), // bottomright + this.containerPointToLatLng([0, size.y]), // bottomleft + ]); + }, + + /** + * Returns the bounds of the current map view in projected pixel + * coordinates (sometimes useful in layer and overlay implementations). + * + * @TODO find out if map bounds calculated by `L.Map::getPixelBounds()` + * function should match the `rotatePane` or `norotatePane` bounds + * + * @see https://github.com/fnicollet/Leaflet/issues/7 + * + * @returns {L.Bounds} + */ + // getPixelBounds(center, zoom) { + // // const topLeftPoint = map.containerPointToLayerPoint(this._getTopLeftPoint()); + // const topLeftPoint = this._getTopLeftPoint(center, zoom); + // return new L.Bounds(topLeftPoint, topLeftPoint.add(this.getSize())); + // }, + + /** + * Change map rotation + * + * @param {number} theta map degrees + * + * @since leaflet-rotate (v0.1) + */ + setBearing: function(theta) { + if (!L.Browser.any3d || !this._rotate) { return; } + + var bearing = L.Util.wrapNum(theta, [0, 360]) * L.DomUtil.DEG_TO_RAD, + center = this._getPixelCenter(), + oldPos = this._getRotatePanePos().rotateFrom(-this._bearing, center), + newPos = oldPos.rotateFrom(bearing, center); + + // CSS transform + L.DomUtil.setPosition(this._rotatePane, oldPos, bearing, center); + + this._pivot = center; + this._bearing = bearing; + this._rotatePanePos = newPos; + + this.fire('rotate'); + }, + + /** + * Get current map rotation + * + * @returns {number} theta map degrees + * + * @since leaflet-rotate (v0.1) + */ + getBearing: function() { + return this._bearing * L.DomUtil.RAD_TO_DEG; + }, + + /** + * Creates a new [map pane](#map-pane) with the given name if it doesn't + * exist already, then returns it. The pane is created as a child of + * `container`, or as a child of the main map pane if not set. + * + * @param {String} name leaflet pane + * @param {HTMLElement} [container] parent element + * @returns {HTMLElement} pane container + */ + // createPane: function(name, container) { + // if (!this._rotate || name == 'mapPane') { + // return mapProto.createPane.apply(this, arguments); + // } + // // init "rotatePane" + // if (!this._rotatePane) { + // // this._pivot = this.getSize().divideBy(2); + // this._rotatePane = mapProto.createPane.call(this, 'rotatePane', this._mapPane); + // L.DomUtil.setPosition(this._rotatePane, new L.Point(0, 0), this._bearing, this._pivot); + // } + // return mapProto.createPane.call(this, name, container || this._rotatePane); + // }, + + /** + * Panes are DOM elements used to control the ordering of layers on + * the map. You can access panes with [`map.getPane`](#map-getpane) + * or [`map.getPanes`](#map-getpanes) methods. New panes can be created + * with the [`map.createPane`](#map-createpane) method. + * + * Every map has the following default panes that differ only in zIndex: + * + * - mapPane [HTMLElement = 'auto'] - Pane that contains all other map panes + * - tilePane [HTMLElement = 2] - Pane for tile layers + * - overlayPane [HTMLElement = 4] - Pane for overlays like polylines and polygons + * - shadowPane [HTMLElement = 5] - Pane for overlay shadows (e.g. marker shadows) + * - markerPane [HTMLElement = 6] - Pane for marker icons + * - tooltipPane [HTMLElement = 650] - Pane for tooltips. + * - popupPane [HTMLElement = 700] - Pane for popups. + */ + _initPanes: function() { + var panes = this._panes = {}; + this._paneRenderers = {}; + + this._mapPane = this.createPane('mapPane', this._container); + L.DomUtil.setPosition(this._mapPane, new L.Point(0, 0)); + + if (this._rotate) { + this._rotatePane = this.createPane('rotatePane', this._mapPane); + this._norotatePane = this.createPane('norotatePane', this._mapPane); + // rotatePane + this.createPane('tilePane', this._rotatePane); + this.createPane('overlayPane', this._rotatePane); + // norotatePane + this.createPane('shadowPane', this._norotatePane); + this.createPane('markerPane', this._norotatePane); + this.createPane('tooltipPane', this._norotatePane); + this.createPane('popupPane', this._norotatePane); + } else { + this.createPane('tilePane'); + this.createPane('overlayPane'); + this.createPane('shadowPane'); + this.createPane('markerPane'); + this.createPane('tooltipPane'); + this.createPane('popupPane'); + } + + if (!this.options.markerZoomAnimation) { + L.DomUtil.addClass(panes.markerPane, 'leaflet-zoom-hide'); + L.DomUtil.addClass(panes.shadowPane, 'leaflet-zoom-hide'); + } + }, + + /** + * Pans the map the minimum amount to make the `latlng` visible. Use + * padding options to fit the display to more restricted bounds. + * If `latlng` is already within the (optionally padded) display bounds, + * the map will not be panned. + * + * @see https://github.com/Raruto/leaflet-rotate/issues/18 + * + * @param {L.LatLng} latlng coordinates + * @param {Object} [options={}] padding options + * + * @returns {L.Map} current map instance + */ + panInside(latlng, options) { + if (!this._rotate || Math.abs(this._bearing).toFixed(1) < 0.1) { + return mapProto.panInside.apply(this, arguments); + } + + options = options || {}; + + const paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]), + paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]), + /** @TODO use mapProto.panInside */ + // pixelPoint = this.project(latlng), + // pixelBounds = this.getPixelBounds(), + // pixelCenter = this.project(this.getCenter()), + rect = this._container.getBoundingClientRect(), + pixelPoint = this.latLngToContainerPoint(latlng), + pixelBounds = L.bounds([ L.point(rect), L.point(rect).add(this.getSize()) ]), + pixelCenter = pixelBounds.getCenter(), + // + paddedBounds = L.bounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]), + paddedSize = paddedBounds.getSize(); + + if (!paddedBounds.contains(pixelPoint)) { + this._enforcingBounds = true; + const centerOffset = pixelPoint.subtract(paddedBounds.getCenter()); + const offset = paddedBounds.extend(pixelPoint).getSize().subtract(paddedSize); + pixelCenter.x += centerOffset.x < 0 ? -offset.x : offset.x; + pixelCenter.y += centerOffset.y < 0 ? -offset.y : offset.y; + /** @TODO use mapProto.panInside */ + // this.panTo(this.unproject(pixelCenter), options); + this.panTo(this.containerPointToLatLng(pixelCenter), options); + // + this._enforcingBounds = false; + } + return this; + }, + + /** + * Pans the map to the closest view that would lie inside the given bounds + * (if it's not already), controlling the animation using the options specific, + * if any. + * + * @TODO check if map bounds calculated by `L.Map::panInsideBounds()` + * function should match the `rotatePane` or `norotatePane` bounds + * + * @see https://github.com/fnicollet/Leaflet/issues/7 + * + * @param {L.LatLngBounds} bounds coordinates + * @param {Object} [options] pan options + * @returns {L.Map} current map instance + */ + // panInsideBounds: function (bounds, options) { + // this._enforcingBounds = true; + // var center = this.getCenter(), + // newCenter = this._limitCenter(center, this._zoom, L.latLngBounds(bounds)); + // + // if (!center.equals(newCenter)) { + // this.panTo(newCenter, options); + // } + // + // this._enforcingBounds = false; + // return this; + // }, + + // adjust center for view to get inside bounds + // _limitCenter(center, zoom, bounds) { + // + // if (!bounds) { return center; } + // + // const centerPoint = this.project(center, zoom), + // viewHalf = this.getSize().divideBy(2), + // viewBounds = new Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)), + // offset = this._getBoundsOffset(viewBounds, bounds, zoom); + // + // // If offset is less than a pixel, ignore. + // // This prevents unstable projections from getting into + // // an infinite loop of tiny offsets. + // if (Math.abs(offset.x) <= 1 && Math.abs(offset.y) <= 1) { + // return center; + // } + // + // return this.unproject(centerPoint.add(offset), zoom); + // }, + + // @method flyToBounds(bounds: LatLngBounds, options?: fitBounds options): this + // Sets the view of the map with a smooth animation like [`flyTo`](#map-flyto), + // but takes a bounds parameter like [`fitBounds`](#map-fitbounds). + // flyToBounds(bounds, options) { + // const target = this._getBoundsCenterZoom(bounds, options); + // return this.flyTo(target.center, target.zoom, options); + // }, + + // _getBoundsCenterZoom(bounds, options) { + // + // options = options || {}; + // bounds = bounds.getBounds ? bounds.getBounds() : toLatLngBounds(bounds); + // + // const paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]), + // paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]); + // + // let zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)); + // + // zoom = (typeof options.maxZoom === 'number') ? Math.min(options.maxZoom, zoom) : zoom; + // + // if (zoom === Infinity) { + // return { center: bounds.getCenter(), zoom }; + // } + // + // return { center, zoom }; + // + // }, + + /** + * Returns the maximum zoom level on which the given bounds fit to the map + * view in its entirety. If `inside` (optional) is set to `true`, the method + * instead returns the minimum zoom level on which the map view fits into + * the given bounds in its entirety. + * + * @param {L.LatLngBounds} bounds + * @param {Boolean} [inside=false] + * @param {L.Point} [padding=[0,0]] + * + * @returns {Number} zoom level + */ + getBoundsZoom(bounds, inside, padding) { + if (!this._rotate || Math.abs(this._bearing).toFixed(1) < 0.1) { + return mapProto.getBoundsZoom.apply(this, arguments); + } + + bounds = L.latLngBounds(bounds); + padding = L.point(padding || [0, 0]); + + let zoom = this.getZoom() || 0; + const min = this.getMinZoom(), + max = this.getMaxZoom(), + /** @TODO use mapProto.getBoundsZoom */ + // nw = bounds.getNorthWest(), + // se = bounds.getSouthEast(), + // size = this.getSize().subtract(padding), + // boundsSize = L.bounds(this.project(se, zoom), this.project(nw, zoom)).getSize(), + size = this.getSize().subtract(padding), + boundsSize = this.mapBoundsToContainerBounds(bounds).getSize(), + snap = this.options.zoomSnap, + scalex = size.x / boundsSize.x, + scaley = size.y / boundsSize.y, + scale = inside ? Math.max(scalex, scaley) : Math.min(scalex, scaley); + + zoom = this.getScaleZoom(scale, zoom); + + if (snap) { + zoom = Math.round(zoom / (snap / 100)) * (snap / 100); // don't jump if within 1% of a snap level + zoom = inside ? Math.ceil(zoom / snap) * snap : Math.floor(zoom / snap) * snap; + } + + return Math.max(min, Math.min(max, zoom)); + }, + + /** + * Layer point of the current center + * + * @returns {L.Point} layer center + */ + // _getCenterLayerPoint: function () { + // return this.containerPointToLayerPoint(this.getSize()._divideBy(2)); + // }, + + /** + * Offset of the specified place to the current center in pixels + * + * @param {L.LatLng} latlng map coordinates + */ + _getCenterOffset: function(latlng) { + var centerOffset = mapProto._getCenterOffset.apply(this, arguments); + if (this._rotate) { + centerOffset = centerOffset.rotate(this._bearing); + } + return centerOffset; + }, + + /** + * @since leaflet-rotate (v0.1) + */ + _getRotatePanePos: function() { + return this._rotatePanePos || new L.Point(0, 0); + // return L.DomUtil.getPosition(this._rotatePane) || new L.Point(0, 0); + }, + + // _latLngToNewLayerPoint(latlng, zoom, center) { + // const topLeft = this._getNewPixelOrigin(center, zoom); + // return this.project(latlng, zoom)._subtract(topLeft); + //}, + + _getNewPixelOrigin: function(center, zoom) { + if (!this._rotate) { + return mapProto._getNewPixelOrigin.apply(this, arguments); + } + var viewHalf = this.getSize()._divideBy(2); + return this.project(center, zoom) + .rotate(this._bearing) + ._subtract(viewHalf) + ._add(this._getMapPanePos()) + ._add(this._getRotatePanePos()) + .rotate(-this._bearing) + ._round(); + }, + + /** + * @since leaflet-rotate (v0.2) + * + * @see src\layer\tile\GridLayer::_getTiledPixelBounds() + */ + _getNewPixelBounds: function(center, zoom) { + center = center || this.getCenter(); + zoom = zoom || this.getZoom(); + if (!this._rotate && mapProto._getNewPixelBounds) { + return mapProto._getNewPixelBounds.apply(this, arguments); + } + var mapZoom = this._animatingZoom ? Math.max(this._animateToZoom, this.getZoom()) : this.getZoom(), + scale = this.getZoomScale(mapZoom, zoom), + pixelCenter = this.project(center, zoom).floor(), + size = this.getSize(), + halfSize = new L.Bounds([ + this.containerPointToLayerPoint([0, 0]).floor(), + this.containerPointToLayerPoint([size.x, 0]).floor(), + this.containerPointToLayerPoint([0, size.y]).floor(), + this.containerPointToLayerPoint([size.x, size.y]).floor() + ]).getSize().divideBy(scale * 2); + + return new L.Bounds(pixelCenter.subtract(halfSize), pixelCenter.add(halfSize)); + }, + + /** + * @since leaflet-rotate (v0.2) + * + * @return {L.Point} map pivot point (center) + */ + _getPixelCenter: function() { + if (!this._rotate && mapProto._getPixelCenter) { + return mapProto._getPixelCenter.apply(this, arguments); + } + return this.getSize()._divideBy(2)._subtract(this._getMapPanePos()); + }, + + /** + * @since leaflet-rotate (v0.2) + * + * @see src\layer\vector\Renderer::_update() + */ + _getPaddedPixelBounds: function(padding) { + if (!this._rotate && mapProto._getPaddedPixelBounds) { + return mapProto._getPaddedPixelBounds.apply(this, arguments); + } + var p = padding, + size = this.getSize(), + padMin = size.multiplyBy(-p), + padMax = size.multiplyBy(1 + p); + //min = this.containerPointToLayerPoint(size.multiplyBy(-p)).round(); + + return new L.Bounds([ + this.containerPointToLayerPoint([padMin.x, padMin.y]).floor(), + this.containerPointToLayerPoint([padMin.x, padMax.y]).floor(), + this.containerPointToLayerPoint([padMax.x, padMin.y]).floor(), + this.containerPointToLayerPoint([padMax.x, padMax.y]).floor() + ]); + }, + + _handleGeolocationResponse: function(pos) { + if (!this._container._leaflet_id) { return; } + + var lat = pos.coords.latitude, + lng = pos.coords.longitude, + /** @TODO use mapProto._handleGeolocationResponse */ + hdg = pos.coords.heading, + latlng = new L.LatLng(lat, lng), + bounds = latlng.toBounds(pos.coords.accuracy), + options = this._locateOptions; + + if (options.setView) { + var zoom = this.getBoundsZoom(bounds); + this.setView(latlng, options.maxZoom ? Math.min(zoom, options.maxZoom) : zoom); + } + + var data = { + latlng: latlng, + bounds: bounds, + timestamp: pos.timestamp, + /** @TODO use mapProto._handleGeolocationResponse */ + heading: hdg + }; + + for (var i in pos.coords) { + if (typeof pos.coords[i] === 'number') { + data[i] = pos.coords[i]; + } + } + + // @event locationfound: LocationEvent + // Fired when geolocation (using the [`locate`](#map-locate) method) + // went successfully. + this.fire('locationfound', data); + }, + + /** + * @see https://github.com/ronikar/Leaflet/blob/5c480ef959b947c3beed7065425a5a36c486262b/src/geo/LatLngBounds.js#L253-L264 + * + * @param {L.Bounds} points + * @returns {L.Bounds} + */ + // toCircumscribedBounds(points) { + // var minX = points.reduce(function (pv, v) { return Math.min(pv, v.x); }, points[0].x), + // maxX = points.reduce(function (pv, v) { return Math.max(pv, v.x); }, points[0].x), + // minY = points.reduce(function (pv, v) { return Math.min(pv, v.y); }, points[0].y), + // maxY = points.reduce(function (pv, v) { return Math.max(pv, v.y); }, points[0].y); + // + // return L.bounds(L.point(minX, minY), L.point(maxX, maxY)); + // }, + + }); + + /** + * Rotates the map according to a smartphone's compass. + * + * @typedef L.Map.CompassBearing + */ + + L.Map.CompassBearing = L.Handler.extend({ + + initialize: function(map) { + this._map = map; + /** @see https://caniuse.com/?search=DeviceOrientation */ + if ('ondeviceorientationabsolute' in window) { + this.__deviceOrientationEvent = 'deviceorientationabsolute'; + } else if('ondeviceorientation' in window) { + this.__deviceOrientationEvent = 'deviceorientation'; + } + this._throttled = L.Util.throttle(this._onDeviceOrientation, 100, this); + }, + + addHooks: function() { + if (this._map._rotate && this.__deviceOrientationEvent) { + L.DomEvent.on(window, this.__deviceOrientationEvent, this._throttled, this); + } else { + // L.Map.CompassBearing handler will be automatically + // disabled if device orientation is not supported. + this.disable(); + } + }, + + removeHooks: function() { + if (this._map._rotate && this.__deviceOrientationEvent) { + L.DomEvent.off(window, this.__deviceOrientationEvent, this._throttled, this); + } + }, + + /** + * `DeviceOrientationEvent.absolute` - Indicates whether the device is providing absolute + * orientation values (relatives to Magnetic North) or + * using some arbitrary frame determined by the device. + * + * `DeviceOrientationEvent.alpha` - Returns the rotation of the device around the Z axis; + * that is, the number of degrees by which the device is + * being twisted around the center of the screen. + * + * `window.orientation` - Returns the screen orientation in degrees (in 90-degree increments) + * of the viewport relative to the device's natural orientation. + * Its only possible values are -90, 0, 90, and 180. Positive + * values are counterclockwise; negative values are clockwise. + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent/absolute + * @see https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent/alpha + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/orientation + */ + _onDeviceOrientation: function(e) { + var angle = e.webkitCompassHeading || e.alpha; + var deviceOrientation = 0; + + // Safari iOS + if (!e.absolute && e.webkitCompassHeading) { + angle = 360 - angle; + } + + // Older browsers + if (!e.absolute && 'undefined' !== typeof window.orientation) { + deviceOrientation = window.orientation; + } + + this._map.setBearing(angle - deviceOrientation); + }, + + }); + + /** + * Add Compass bearing handler to L.Map (disabled unless `window.DeviceOrientationEvent` is set). + * + * @property {L.Map.CompassBearing} compassBearing + */ + L.Map.addInitHook('addHandler', 'compassBearing', L.Map.CompassBearing); + + /** + * Triggers `invalidateResize` when the map's DOM container mutates. + * + * @typedef L.Map.ContainerMutation + */ + + /** + * @TODO check again this file after leaflet v1.9.3 (eg. L.Browser.mutation). + * Mutation Observer support will likely be added by default in next releases. + */ + + L.Map.mergeOptions({ + + /** + * Whether the map uses mutation observers to + * detect changes in its container and trigger + * `invalidateSize`. Disabled by default due to + * support not being available in all web browsers. + * + * @type {Boolean} + * + * @see https://developer.mozilla.org/docs/Web/API/MutationObserver + */ + trackContainerMutation: false + + }); + + L.Map.ContainerMutation = L.Handler.extend({ + + addHooks: function() { + // if (!L.Browser.mutation) { return; } + if (!this._observer) { + this._observer = new MutationObserver(L.Util.bind(this._map.invalidateSize, this._map)); + } + this._observer.observe(this._map.getContainer(), { + childList: false, + attributes: true, + characterData: false, + subtree: false, + attributeFilter: ['style'] + }); + }, + + removeHooks: function() { + // if (!L.Browser.mutation) { return; } + this._observer.disconnect(); + }, + + }); + + /** + * Add Container mutation handler to L.Map (disabled unless `trackContainerMutation` is set). + * + * @property {L.Map.ContainerMutation} trackContainerMutation + */ + L.Map.addInitHook('addHandler', 'trackContainerMutation', L.Map.ContainerMutation); + + /** + * TouchGestures is both TouchZoom plus TouchRotate + * + * @see https://github.com/fnicollet/Leaflet/commit/a77af51a6b10f308d1b9a16552091d1d0aee8834 + * @see https://github.com/Leaflet/Leaflet/blob/v1.9.3/src/map/handler/Map.TouchZoom.js + * + * @typedef L.Map.TouchGestures + */ + + L.Map.mergeOptions({ + + /** + * Set it to false if you don't want the map to + * zoom beyond min/max zoom and then bounce back + * when pinch-zooming. + * + * @type {Boolean} + */ + bounceAtZoomLimits: true, + + }); + + L.Map.TouchGestures = L.Handler.extend({ + + initialize: function(map) { + this._map = map; + this.rotate = !!this._map.options.touchRotate; + this.zoom = !!this._map.options.touchZoom; + }, + + addHooks: function() { + L.DomEvent.on(this._map._container, 'touchstart', this._onTouchStart, this); + }, + + removeHooks: function() { + L.DomEvent.off(this._map._container, 'touchstart', this._onTouchStart, this); + }, + + _onTouchStart: function(e) { + var map = this._map; + + if (!e.touches || e.touches.length !== 2 || map._animatingZoom || this._zooming || this._rotating) { return; } + + var p1 = map.mouseEventToContainerPoint(e.touches[0]), + p2 = map.mouseEventToContainerPoint(e.touches[1]), + vector = p1.subtract(p2); + + this._centerPoint = map.getSize()._divideBy(2); + this._startLatLng = map.containerPointToLatLng(this._centerPoint); + + if (this.zoom) { + if (map.options.touchZoom !== 'center') { + this._pinchStartLatLng = map.containerPointToLatLng(p1.add(p2)._divideBy(2)); + } + this._startDist = p1.distanceTo(p2); + this._startZoom = map.getZoom(); + this._zooming = true; + } else { + this._zooming = false; + } + + if (this.rotate) { + this._startTheta = Math.atan(vector.x / vector.y); + this._startBearing = map.getBearing(); + if (vector.y < 0) { this._startBearing += 180; } + this._rotating = true; + } else { + this._rotating = false; + } + + this._moved = false; + + map._stop(); + + L.DomEvent + .on(document, 'touchmove', this._onTouchMove, this) + .on(document, 'touchend touchcancel', this._onTouchEnd, this); + + L.DomEvent.preventDefault(e); + }, + + _onTouchMove: function(e) { + if (!e.touches || e.touches.length !== 2 || !(this._zooming || this._rotating)) { return; } + + var map = this._map, + p1 = map.mouseEventToContainerPoint(e.touches[0]), + p2 = map.mouseEventToContainerPoint(e.touches[1]), + vector = p1.subtract(p2), + scale = p1.distanceTo(p2) / this._startDist, + delta; + + if (this._rotating) { + var theta = Math.atan(vector.x / vector.y); + var bearingDelta = (theta - this._startTheta) * L.DomUtil.RAD_TO_DEG; + if (vector.y < 0) { bearingDelta += 180; } + if (bearingDelta) { + /** + * @TODO the pivot should be the last touch point, + * but zoomAnimation manages to overwrite the rotate + * pane position. Maybe related to #3529. + * + * @see https://github.com/Leaflet/Leaflet/pull/3529 + * @see https://github.com/fnicollet/Leaflet/commit/a77af51a6b10f308d1b9a16552091d1d0aee8834 + */ + map.setBearing(this._startBearing - bearingDelta); + } + } + + if (this._zooming) { + this._zoom = map.getScaleZoom(scale, this._startZoom); + + if (!map.options.bounceAtZoomLimits && ( + (this._zoom < map.getMinZoom() && scale < 1) || + (this._zoom > map.getMaxZoom() && scale > 1))) { + this._zoom = map._limitZoom(this._zoom); + } + + if (map.options.touchZoom === 'center') { + this._center = this._startLatLng; + if (scale === 1) { return; } + } else { + // Get delta from pinch to center, so centerLatLng is delta applied to initial pinchLatLng + delta = p1._add(p2)._divideBy(2)._subtract(this._centerPoint); + if (scale === 1 && delta.x === 0 && delta.y === 0) { return; } + + var alpha = -map.getBearing() * L.DomUtil.DEG_TO_RAD; + + this._center = map.unproject(map.project(this._pinchStartLatLng).subtract(delta.rotate(alpha))); + } + + } + + if (!this._moved) { + map._moveStart(true, false); + this._moved = true; + } + + L.Util.cancelAnimFrame(this._animRequest); + + var moveFn = map._move.bind(map, this._center, this._zoom, { pinch: true, round: false }, undefined); + this._animRequest = L.Util.requestAnimFrame(moveFn, this, true); + + L.DomEvent.preventDefault(e); + }, + + _onTouchEnd: function() { + if (!this._moved || !(this._zooming || this._rotating)) { + this._zooming = false; + return; + } + + this._zooming = false; + this._rotating = false; + L.Util.cancelAnimFrame(this._animRequest); + + L.DomEvent + .off(document, 'touchmove', this._onTouchMove, this) + .off(document, 'touchend touchcancel', this._onTouchEnd, this); + + if (this.zoom) { + // Pinch updates GridLayers' levels only when zoomSnap is off, so zoomSnap becomes noUpdate. + if (this._map.options.zoomAnimation) { + this._map._animateZoom(this._center, this._map._limitZoom(this._zoom), true, this._map.options.zoomSnap); + } else { + this._map._resetView(this._center, this._map._limitZoom(this._zoom)); + } + } + }, + + }); + + /** + * Add Touch Gestures handler (enabled unless `touchGestures` is unset). + * + * @property {L.Map.TouchGestures} touchGestures + */ + L.Map.addInitHook('addHandler', 'touchGestures', L.Map.TouchGestures); + + /** + * Rotates the map on two-finger (touch devices). + * + * @typedef L.Map.TouchRotate + */ + + L.Map.mergeOptions({ + + /** + * Whether the map can be rotated with a two-finger rotation gesture + * + * @type {Boolean} + */ + touchRotate: false, + + }); + + L.Map.TouchRotate = L.Handler.extend({ + + addHooks: function() { + this._map.touchGestures.enable(); + this._map.touchGestures.rotate = true; + }, + + removeHooks: function() { + this._map.touchGestures.rotate = false; + }, + + }); + + /** + * Add Touch Rotate handler (disabled unless `touchGestures` is set). + * + * @property {L.Map.TouchGestures} touchGestures + */ + L.Map.addInitHook('addHandler', 'touchRotate', L.Map.TouchRotate); + + /** + * Rotates the map on shift key + mousewheel scrolling (desktop). + * + * @typedef L.Map.ShiftKeyRotate + */ + + L.Map.mergeOptions({ + + /** + * Whether the map can be rotated with shift + wheel scroll + * @type {Boolean} + */ + shiftKeyRotate: true, + + }); + + L.Map.ShiftKeyRotate = L.Handler.extend({ + + addHooks: function() { + L.DomEvent.on(this._map._container, "wheel", this._handleShiftScroll, this); + // this._map.shiftKeyRotate.enable(); + this._map.shiftKeyRotate.rotate = true; + }, + + removeHooks: function() { + L.DomEvent.off(this._map._container, "wheel", this._handleShiftScroll, this); + this._map.shiftKeyRotate.rotate = false; + }, + + _handleShiftScroll: function(e) { + if (e.shiftKey) { + e.preventDefault(); + this._map.scrollWheelZoom.disable(); + this._map.setBearing((this._map._bearing * L.DomUtil.RAD_TO_DEG) + Math.sign(e.deltaY) * 5); + } else { + this._map.scrollWheelZoom.enable(); + } + }, + + }); + + /** + * Add ShiftKey handler to L.Map (enabled unless `shiftKeyRotate` is unset). + * + * @property {L.Map.ShiftKeyRotate} shiftKeyRotate + */ + L.Map.addInitHook('addHandler', 'shiftKeyRotate', L.Map.ShiftKeyRotate); + + // decrease `scrollWheelZoom` handler priority over `shiftKeyRotate` handler + L.Map.addInitHook(function() { + if (this.scrollWheelZoom.enabled() && this.shiftKeyRotate.enabled()) { + this.scrollWheelZoom.disable(); + this.scrollWheelZoom.enable(); + } + }); + + /** + * Adds pinch zoom rotation on mobile browsers + * + * @see https://github.com/Leaflet/Leaflet/blob/v1.9.3/src/map/handler/Map.TouchZoom.js + * + * @external L.Map.TouchZoom + */ + + L.Map.mergeOptions({ + + /** + * Whether the map can be zoomed by touch-dragging + * with two fingers. If passed `'center'`, it will + * zoom to the center of the view regardless of + * where the touch events (fingers) were. Enabled + * for touch-capable web browsers. + * + * @type {(Boolean|String)} + */ + touchZoom: L.Browser.touch, + + /** + * @TODO check if this is a duplicate of `L.Map.TouchGestures::bounceAtZoomLimits` + * + * Set it to false if you don't want the map to + * zoom beyond min/max zoom and then bounce back + * when pinch-zooming. + * + * @type {Boolean} + */ + bounceAtZoomLimits: false, + + }); + + L.Map.TouchZoom = L.Handler.extend({ + + addHooks: function() { + L.DomUtil.addClass(this._map._container, 'leaflet-touch-zoom'); + this._map.touchGestures.enable(); + this._map.touchGestures.zoom = true; + }, + + removeHooks: function() { + L.DomUtil.removeClass(this._map._container, 'leaflet-touch-zoom'); + this._map.touchGestures.zoom = false; + }, + + }); + + /** + * Add Touch Zoom handler (disabled unless `L.Browser.touch` is set). + * + * @property {L.Map.TouchGestures} touchGestures + */ + L.Map.addInitHook('addHandler', 'touchZoom', L.Map.TouchZoom); + + /** + * A tri-state control for map rotation, states are: + * + * - Locked (default) + * - Unlocked (user can pinch-rotate) + * - Follow (rotation follows device orientation, if available) + * + * @typedef L.Control.Rotate + */ + + L.Control.Rotate = L.Control.extend({ + + options: { + position: 'topleft', + closeOnZeroBearing: true + }, + + onAdd: function(map) { + var container = this._container = L.DomUtil.create('div', 'leaflet-control-rotate leaflet-bar'); + + // this.button = L.Control.Zoom.prototype._createButton.call(this, 'R', 'leaflet-control-rotate', 'leaflet-control-rotate', container, this._toggleLock); + + var arrow = this._arrow = L.DomUtil.create('span', 'leaflet-control-rotate-arrow'); + + arrow.style.backgroundImage = `url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")`; + arrow.style.cursor = 'grab'; + arrow.style.display = 'block'; + arrow.style.width = '100%'; + arrow.style.height = '100%'; + arrow.style.backgroundRepeat = 'no-repeat'; + arrow.style.backgroundPosition = '50%'; + + // Copy-pasted from L.Control.Zoom + var link = this._link = L.DomUtil.create('a', 'leaflet-control-rotate-toggle', container); + link.appendChild(arrow); + link.href = '#'; + link.title = 'Rotate map'; + + L.DomEvent + .on(link, 'dblclick', L.DomEvent.stopPropagation) + .on(link, 'mousedown', this._handleMouseDown, this) + .on(link, 'click', L.DomEvent.stop) + .on(link, 'click', this._cycleState, this) + .on(link, 'click', this._refocusOnMap, this); + + if (!L.Browser.any3d) { + L.DomUtil.addClass(link, 'leaflet-disabled'); + } + + this._restyle(); + + map.on('rotate', this._restyle, this); + + // State flag + this._follow = false; + this._canFollow = false; + + if (this.options.closeOnZeroBearing && map.getBearing() === 0) { + container.style.display = 'none'; + } + + return container; + }, + + onRemove: function(map) { + map.off('rotate', this._restyle, this); + }, + + _handleMouseDown: function(e) { + L.DomEvent.stop(e); + this.dragging = true; + this.dragstartX = e.pageX; + this.dragstartY = e.pageY; + L.DomEvent + .on(document, 'mousemove', this._handleMouseDrag, this) + .on(document, 'mouseup', this._handleMouseUp, this); + }, + + _handleMouseUp: function(e) { + L.DomEvent.stop(e); + this.dragging = false; + + L.DomEvent + .off(document, 'mousemove', this._handleMouseDrag, this) + .off(document, 'mouseup', this._handleMouseUp, this); + }, + + _handleMouseDrag: function(e) { + if (!this.dragging) { return; } + var deltaX = e.clientX - this.dragstartX; + this._map.setBearing(deltaX); + }, + + _cycleState: function(ev) { + if (!this._map) { + return; + } + + var map = this._map; + + // Touch mode + if (!map.touchRotate.enabled() && !map.compassBearing.enabled()) { + map.touchRotate.enable(); + } + + // Compass mode + else if (!map.compassBearing.enabled()) { + map.touchRotate.disable(); + ( + DeviceOrientationEvent && DeviceOrientationEvent.requestPermission + ? DeviceOrientationEvent.requestPermission() // iOS compass + : Promise.resolve('granted') // others + ).then(state => "granted" === state && map.compassBearing.enable()); + } + + // Locked mode + else { + map.compassBearing.disable(); + map.setBearing(0); + if (this.options.closeOnZeroBearing) { + map.touchRotate.enable(); + } + } + this._restyle(); + }, + + _restyle: function() { + if (!this._map.options.rotate) { + L.DomUtil.addClass(this._link, 'leaflet-disabled'); + } else { + var map = this._map; + var bearing = map.getBearing(); + + this._arrow.style.transform = 'rotate(' + bearing + 'deg)'; + + if (bearing && this.options.closeOnZeroBearing) { + this._container.style.display = 'block'; + } + + // Compass mode + if (map.compassBearing.enabled()) { + this._link.style.backgroundColor = 'orange'; + } + + // Touch mode + else if (map.touchRotate.enabled()) { + this._link.style.backgroundColor = null; + } + + // Locked mode + else { + this._link.style.backgroundColor = 'grey'; + if (0 === bearing && this.options.closeOnZeroBearing) { + this._container.style.display = 'none'; + } + } + } + }, + + }); + + L.control.rotate = function(options) { + return new L.Control.Rotate(options); + }; + + L.Map.mergeOptions({ + rotateControl: true, + }); + + L.Map.addInitHook(function() { + if (this.options.rotateControl) { + var options = typeof this.options.rotateControl === 'object' ? this.options.rotateControl : {}; + this.rotateControl = L.control.rotate(options); + this.addControl(this.rotateControl); + } + }); + +})); +//# sourceMappingURL=leaflet-rotate-src.js.map diff --git a/static/leaflet/leaflet.css b/static/leaflet/leaflet.css new file mode 100644 index 0000000..9ade8dc --- /dev/null +++ b/static/leaflet/leaflet.css @@ -0,0 +1,661 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; + } +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + width: auto; + padding: 0; + } + +.leaflet-container img.leaflet-tile { + /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ + mix-blend-mode: plus-lighter; +} + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +svg.leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline-offset: 1px; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + font-size: 0.75rem; + line-height: 1.5; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover, +.leaflet-bar a:focus { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + font-size: 13px; + font-size: 1.08333em; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.8); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + line-height: 1.4; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover, +.leaflet-control-attribution a:focus { + text-decoration: underline; + } +.leaflet-attribution-flag { + display: inline !important; + vertical-align: baseline !important; + width: 1em; + height: 0.6669em; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + -moz-box-sizing: border-box; + box-sizing: border-box; + background: rgba(255, 255, 255, 0.8); + text-shadow: 1px 1px #fff; + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 24px 13px 20px; + line-height: 1.3; + font-size: 13px; + font-size: 1.08333em; + min-height: 1px; + } +.leaflet-popup-content p { + margin: 17px 0; + margin: 1.3em 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-top: -1px; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + pointer-events: auto; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + border: none; + text-align: center; + width: 24px; + height: 24px; + font: 16px/24px Tahoma, Verdana, sans-serif; + color: #757575; + text-decoration: none; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover, +.leaflet-container a.leaflet-popup-close-button:focus { + color: #585858; + } +.leaflet-popup-scrolled { + overflow: auto; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-interactive { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } + +/* Printing */ + +@media print { + /* Prevent printers from removing background-images of controls. */ + .leaflet-control { + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + } diff --git a/static/leaflet/leaflet.js b/static/leaflet/leaflet.js new file mode 100644 index 0000000..1a3c8ed --- /dev/null +++ b/static/leaflet/leaflet.js @@ -0,0 +1,5 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1 { + self.skipWaiting(); +}); + +self.addEventListener('activate', (event) => { + event.waitUntil((async () => { + const keys = await caches.keys(); + await Promise.all( + keys + .filter((k) => ![TILE_CACHE, ASSET_CACHE, APP_CACHE].includes(k)) + .map((k) => caches.delete(k)) + ); + await self.clients.claim(); + })()); +}); + +function isTileRequest(url) { + return url.pathname.startsWith('/tiles/') || url.pathname.startsWith('/vtiles/'); +} + +function isLongLivedAsset(url) { + if (url.pathname.startsWith('/static/leaflet/')) return true; + if (url.pathname.startsWith('/static/xterm/')) return true; + if (url.pathname.startsWith('/svg/')) return true; + return false; +} + +function isAppShell(url) { + if (url.pathname === '/' || url.pathname === '/cert') return true; + if (url.pathname.startsWith('/static/js/')) return true; + if (url.pathname.startsWith('/static/css/')) return true; + return false; +} + +function isApiRequest(url) { + return url.pathname.startsWith('/api/') || url.pathname === '/ws' || url.pathname.startsWith('/ws/'); +} + +async function trimCache(cacheName, max) { + try { + const cache = await caches.open(cacheName); + const keys = await cache.keys(); + if (keys.length <= max) return; + const excess = keys.length - max; + for (let i = 0; i < excess; i += 1) { + await cache.delete(keys[i]); + } + } catch (e) {} +} + +// Cache-first с фоновым обновлением: отдаём из кеша если есть, в фоне освежаем. +async function cacheFirstWithRefresh(request, cacheName) { + const cache = await caches.open(cacheName); + const cached = await cache.match(request); + const fetchAndUpdate = fetch(request) + .then((resp) => { + if (resp && resp.ok) { + cache.put(request, resp.clone()).catch(() => {}); + if (cacheName === TILE_CACHE) { + trimCache(TILE_CACHE, TILE_CACHE_MAX); + } + } + return resp; + }) + .catch(() => null); + if (cached) { + // Обновление в фоне, клиенту отдаём кеш немедленно. + fetchAndUpdate.catch(() => {}); + return cached; + } + const fresh = await fetchAndUpdate; + if (fresh) return fresh; + return new Response('', { status: 504, statusText: 'Gateway Timeout (offline)' }); +} + +// Stale-while-revalidate: мгновенно из кеша, параллельно обновляем кеш. +async function staleWhileRevalidate(request, cacheName) { + const cache = await caches.open(cacheName); + const cached = await cache.match(request); + const networkFetch = fetch(request) + .then((resp) => { + if (resp && resp.ok) { + cache.put(request, resp.clone()).catch(() => {}); + } + return resp; + }) + .catch(() => null); + if (cached) { + networkFetch.catch(() => {}); + return cached; + } + const fresh = await networkFetch; + if (fresh) return fresh; + return new Response('', { status: 504, statusText: 'Gateway Timeout (offline)' }); +} + +self.addEventListener('fetch', (event) => { + const req = event.request; + if (req.method !== 'GET') return; + + let url; + try { + url = new URL(req.url); + } catch (e) { + return; + } + + // Не трогаем кросс-оригинальные запросы (OSM, CARTO и т.п.) — пусть идут напрямую. + if (url.origin !== self.location.origin) return; + + // API и WebSocket — без кеша. WebSocket вообще не проходит через fetch, но на всякий случай. + if (isApiRequest(url)) return; + + if (isTileRequest(url)) { + event.respondWith(cacheFirstWithRefresh(req, TILE_CACHE)); + return; + } + + if (isLongLivedAsset(url)) { + event.respondWith(cacheFirstWithRefresh(req, ASSET_CACHE)); + return; + } + + if (isAppShell(url)) { + event.respondWith(staleWhileRevalidate(req, APP_CACHE)); + return; + } +}); + +// Принудительный сброс кешей по команде со страницы. +self.addEventListener('message', (event) => { + if (!event.data || typeof event.data !== 'object') return; + if (event.data.type === 'aismap:clear-caches') { + event.waitUntil((async () => { + const keys = await caches.keys(); + await Promise.all(keys.map((k) => caches.delete(k))); + })()); + } +}); diff --git a/static/tiles/1/1/0.png b/static/tiles/1/1/0.png new file mode 100644 index 0000000000000000000000000000000000000000..622b3ee83705b79265a6c5e5532c35fb9a44b265 GIT binary patch literal 9509 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 literal 0 HcmV?d00001 diff --git a/static/tiles/10/618/318.png b/static/tiles/10/618/318.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf24e33b38ee538c9e0a015d1f75f4f79b1058f GIT binary patch literal 37519 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 literal 0 HcmV?d00001 diff --git a/static/tiles/10/618/319.png b/static/tiles/10/618/319.png new file mode 100644 index 0000000000000000000000000000000000000000..16260f5b27f9c65dc5b8e91c6d83b8525d29e09e GIT binary patch literal 46674 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 DV5sab literal 0 HcmV?d00001 diff --git a/static/tiles/10/619/319.png b/static/tiles/10/619/319.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f684d70f672a93f64b2a0438ce524451b3de3e GIT binary patch literal 41698 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 O0000wKb z=Dvf%tGnl`mb<&NytBK?xTuw{>d~vT#l)$$zQ3l(#`LR|_O*$W#@pDor}V>qx6-Y{ zxVyc*y}ZV@+`^lV#pmj?o$bVl^TmU%)4aXZvGT@>^vH+xw3@}lyT`c2)ws94!^PRf zsH?};z1p$0*S+enrwsI|$}$;QRT%Ej}|mBZY) zy4c3Nm<;l0m%hbu^ywu9dw%FV4 z)2Y+b#Ix4o%h<@&-n{hHr_y5!f(<;C{Mx5(Jp>(;o^+|1MC z#M;}%)YQ}3*303`(%Iw1+S<+1*4owE)7jP4)aA_e&cfI3!Svg=$mZI~+~m~S+uPLI z)#B6I+tu3S%<0+4&GO9D>do2N+1c*I+TGdJ>eATp$n)X7%HrnS+uPgZ)YRqM+S}jU z?9AQT-QC>V^x4PS-QLXf*y-iU+v?Qb-rd&g+1%sX;^Wof-rV8w&f?+T?Bmnj>)Ye( z)a2ab_T*MG0+Ue%x>g?U!_u=*F*WBy! zgDd^?D6y6?Ca~~?(yjL=JM|8^YZEQ?D6XK^Y!)fV|?ve004jhNklr`zeON~nA=Ao3|mCN&N2+G!tASLUq3PRm@2;{EOBEP%$`d0eU zCSjhDnb=lo(ra)=8kPn$I%^9d3AL?77DHNzn3fR&4cN!yh!$D5v1yBOBU_Ts3bY4} zY22%xq2KrQ46N68ciTqj�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%0AK&|%P;eX8aMqG4|Gjkyx8^J_AL#-6rKfd026`` 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

sAs}eYyEtDblBpZIU5`c+H6EHhM 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 YA7KYHk}GA<=>Px#07*qoM6N<$f}AxgE&u=k literal 0 HcmV?d00001 diff --git a/static/tiles/11/1236/638.png b/static/tiles/11/1236/638.png new file mode 100644 index 0000000000000000000000000000000000000000..7899d44e675b719896c2001eac9d9cccbff9ab48 GIT binary patch literal 35228 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ℑMt_v%dlCg4j>X%DbN>4tta-{^qFJ1Yc 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%0A|pB6p&mxk6qf( zB+>xT4B$15AiyWk!WW69srl<5lrCMd0g)W sKjEn0LY~F85`aKH#r&2&+tc&^04aKjjAON#r2qf`07*qoM6N<$f_1eXj{pDw literal 0 HcmV?d00001 diff --git a/static/tiles/11/1236/639.png b/static/tiles/11/1236/639.png new file mode 100644 index 0000000000000000000000000000000000000000..154356a8e073a830f51aadeced813f4a8dd07d4b GIT binary patch literal 36114 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 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1236/641.png b/static/tiles/11/1236/641.png new file mode 100644 index 0000000000000000000000000000000000000000..b4809d7bbf117fc755d18511319d4843f1de80a2 GIT binary patch literal 34066 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 Uq*Yr_wg3PC07*qoM6N<$f{}e>Q~&?~ literal 0 HcmV?d00001 diff --git a/static/tiles/11/1237/637.png b/static/tiles/11/1237/637.png new file mode 100644 index 0000000000000000000000000000000000000000..608e18d273f9ace910ced445e93b54d120df5f0a GIT binary patch literal 26558 zcmV)6K*+y|P)C}djEatujF69xk&}*`e43Yul(LC>!+(5@o1U1MmZ^xQoTQk|kbG*P�K2 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

C4Fsv!lE09L1Zle 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 BT^s-a literal 0 HcmV?d00001 diff --git a/static/tiles/11/1237/638.png b/static/tiles/11/1237/638.png new file mode 100644 index 0000000000000000000000000000000000000000..cc24cfa87f2352cb21cbbf7dedf31921b4a5a00e GIT binary patch literal 34116 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 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1237/640.png b/static/tiles/11/1237/640.png new file mode 100644 index 0000000000000000000000000000000000000000..50716f34ef099fa78c2f3305874b7daa7f50b369 GIT binary patch literal 43512 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 IM6N<$f-zR1oB#j- literal 0 HcmV?d00001 diff --git a/static/tiles/11/1237/641.png b/static/tiles/11/1237/641.png new file mode 100644 index 0000000000000000000000000000000000000000..938762cfe751c4463c707333bbfa1d53a831883a GIT binary patch literal 34841 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 Vy~*v#i7Eg9002ovPDHLkV1fnl<#Yf5 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1237/642.png b/static/tiles/11/1237/642.png new file mode 100644 index 0000000000000000000000000000000000000000..2f972b0ded567401875564aaa2d4a2161e97467e GIT binary patch literal 36290 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 !T@1stE6z$`0;}k%E@iLS;h?V8$alpm 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 b(@Xz93#oByNR=d100000NkvXXu0mjfgCwhE literal 0 HcmV?d00001 diff --git a/static/tiles/11/1238/640.png b/static/tiles/11/1238/640.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd61518f0b274001bc42fbdb86a651f635a8b20 GIT binary patch literal 40713 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 RPR;-T002ovPDHLkV1jgCt^EK1 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1238/641.png b/static/tiles/11/1238/641.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb9eb92eba51365dd430305fc2f84636c654fb8 GIT binary patch literal 37396 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 V8gXE&pNs$i002ovPDHLkV1jVf+adq} literal 0 HcmV?d00001 diff --git a/static/tiles/11/1239/637.png b/static/tiles/11/1239/637.png new file mode 100644 index 0000000000000000000000000000000000000000..6d5870becf987e49a60c87f7f2eaeecdbcc46e5c GIT binary patch literal 28988 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 Km9CLA3;iE~pN820 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1239/639.png b/static/tiles/11/1239/639.png new file mode 100644 index 0000000000000000000000000000000000000000..729a7459f4bad2e38b4451488e8af2a0adbfac3e GIT binary patch literal 28789 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 TS{e7f00000NkvXXu0mjfeiw+0 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1239/640.png b/static/tiles/11/1239/640.png new file mode 100644 index 0000000000000000000000000000000000000000..a8edb4b6e993d849efe0a3e8089a3c463d2db1de GIT binary patch literal 37878 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 literal 0 HcmV?d00001 diff --git a/static/tiles/11/1239/641.png b/static/tiles/11/1239/641.png new file mode 100644 index 0000000000000000000000000000000000000000..1b1af0a75f0cdd97f67091a7a633ab1a3acfb88c GIT binary patch literal 30331 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 eqm@8e1O6XXYhXYXpeS?z0000_q+lE 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%0D@91dCmcf=j7b_=)7-CAo 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 IM6N<$f@w{RVgLXD literal 0 HcmV?d00001 diff --git a/static/tiles/12/2472/1279.png b/static/tiles/12/2472/1279.png new file mode 100644 index 0000000000000000000000000000000000000000..ef99158c0d9e55fe065d558d690c5cabbc9cfa31 GIT binary patch literal 28892 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 literal 0 HcmV?d00001 diff --git a/static/tiles/12/2472/1280.png b/static/tiles/12/2472/1280.png new file mode 100644 index 0000000000000000000000000000000000000000..ece7a6f12e53021626299d9638c12ef558d4d879 GIT binary patch literal 21985 zcmWh!WmFYR6W$xZr7zMT-GTxVA_`m@0qKU95(NPX1!=i-mvjo!DGibrkOpb#ZUyPC z&+pgnIeX5Ync1D$XXcp=QB#p8#G}Cj01&=VkkJ4D@^1>9 zrle=2qhnyCXJlezX5ipr=i%jh#LvU`nD@!kC*o29N?MepL3Cm$l#&|X{ctvg7xD(? zTq>H%>N+Zq;)Qf{b*${48krkBPm?k>H<$V%Z)30i+VZuvqot*tgKD0Zhp(!&<9kPE z8%IaSk8VzWA-cvTrtTijE?%EJJw04Lp}qXv(B9tO{sB)?>w>~v?Q0x^f&*XXm4?L! zie>zC^C^#xiU|H3m*SZmnHdz96rS#zoK)zVl#~$A5>%h)kx&?(SL_kl_Q|s;F*iCr zH8(NrM@VvIL_vwaUrVxAQ+7~CVth~FT�`T~K=6=jK9mQCv}YRY_V(O+i7rM&VJ~ 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