Sameh Khamis
93942d0dbe
Show only the CCTV cameras in view, thinned to one per ground cell when zoomed out
...
The CCTV layer kept every loaded camera live: each view change touched every
icon, every notification rebuilt every camera's state, and the picker listed
the whole catalog. With the default 4,000 cameras, a continental drag ran at
152-179 fps with 18-24 frames over 30 ms (worst 112 ms). It now runs at
235 fps with none. The layer now:
- shows icons only on or near the screen, and when zoomed out keeps one camera
per world-anchored cell (healthy feeds first), so panning keeps the same
cameras;
- grounds and draws coverage only for the cameras in view, the active camera
and its coverage neighbours, retrying a camera at most twice per view regime;
- reruns the view pass while the camera moves, paced by its own cost, and
projects with one matrix per pass instead of a Cesium call per camera;
- keeps the billboard buffer-usage hint fixed, so showing or hiding a few
icons no longer rewrites the vertex data of every billboard;
- lists the cameras in view (active camera first) in the picker, closing with
the count of cameras outside the view, and builds the full camera list in
the UI state only when it is read.
2026-10-29 21:31:59 -07:00
..
2026-09-28 19:07:57 -05:00
2026-10-22 19:01:09 -07:00
2026-10-22 19:00:40 -07:00
2026-09-28 19:07:57 -05:00
2026-10-14 17:43:13 +02:00
2026-08-24 17:02:16 -05:00
2026-10-16 21:00:28 +04:00
2026-08-24 17:02:16 -05:00
2026-10-16 21:00:28 +04:00
2026-10-14 17:43:13 +02:00
2026-10-14 17:43:13 +02:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-10-25 08:08:43 -07:00
2026-10-25 08:08:43 -07:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-10-14 17:43:13 +02:00
2026-10-14 17:43:13 +02:00
2026-10-03 23:10:32 -07:00
2026-10-03 23:10:32 -07:00
2026-10-28 15:15:50 +00:00
2026-10-22 19:00:40 -07:00
2026-08-31 17:49:45 -05:00
2026-10-24 21:29:21 -07:00
2026-10-22 19:00:40 -07:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-09-28 19:07:57 -05:00
2026-10-18 15:22:31 +07:00
2026-10-14 20:14:54 -04:00
2026-10-22 19:00:40 -07:00
2026-10-19 11:01:18 +05:30
2026-10-16 15:01:29 -07:00
2026-10-29 19:36:02 +04:00
2026-09-15 23:54:07 +05:30
2026-10-21 12:52:34 +04:00
2026-09-16 12:14:15 +05:30
2026-10-16 21:00:28 +04:00
2026-10-16 21:00:28 +04:00
2026-09-15 19:48:11 +05:30
2026-09-15 08:29:01 -07:00
2026-10-22 19:00:40 -07:00
2026-10-28 14:30:45 +00:00
2026-09-15 08:29:01 -07:00
2026-09-15 19:48:11 +05:30
2026-10-22 19:00:40 -07:00
2026-08-24 17:02:16 -05:00
2026-10-02 21:08:11 -07:00
2026-10-02 21:08:11 -07:00
2026-09-28 19:07:57 -05:00
2026-10-15 04:10:41 +02:00
2026-09-15 05:18:30 -05:00
2026-10-29 21:31:59 -07:00
2026-10-29 21:31:59 -07:00
2026-09-27 12:20:45 +00:00
2026-09-15 07:26:32 -07:00
2026-08-31 17:49:45 -05:00
2026-10-19 17:02:06 +01:00
2026-10-15 15:21:34 -07:00
2026-09-13 21:48:33 -05:00
2026-10-15 16:17:22 -07:00
2026-10-19 23:15:43 +01:00
2026-09-13 21:48:33 -05:00
2026-10-19 14:32:58 +01:00
2026-10-22 19:00:40 -07:00
2026-09-13 21:48:33 -05:00
2026-10-22 18:09:40 -07:00
2026-08-31 17:49:45 -05:00
2026-09-13 21:48:33 -05:00
2026-10-20 14:40:01 +01:00
2026-09-22 17:45:39 -05:00
2026-10-15 15:17:11 -07:00
2026-10-15 15:17:31 -07:00
2026-10-22 19:00:40 -07:00
2026-09-15 18:07:40 +02:00
2026-10-21 15:43:29 -07:00
2026-09-20 20:38:59 -07:00
2026-10-16 00:27:41 +00:00
2026-09-13 21:48:33 -05:00
2026-10-14 11:44:25 +01:00
2026-10-21 15:07:20 -07:00
2026-10-21 15:43:29 -07:00
2026-10-20 14:51:48 +01:00
2026-10-13 18:54:59 -04:00
2026-09-13 21:48:33 -05:00
2026-10-19 17:03:50 +01:00
2026-09-15 07:26:32 -07:00
2026-08-31 17:49:45 -05:00
2026-10-29 21:31:59 -07:00
2026-09-13 21:48:33 -05:00
2026-10-15 15:17:59 -07:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-10-22 18:09:37 -07:00
2026-10-22 18:09:37 -07:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-10-22 19:07:46 -07:00
2026-09-15 05:18:30 -05:00
2026-09-15 13:26:41 -05:00
2026-09-15 12:29:18 -07:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-10-24 00:21:05 -04:00
2026-10-26 16:25:49 +01:00
2026-10-19 13:53:46 +04:00
2026-10-22 18:09:37 -07:00
2026-10-22 19:00:40 -07:00
2026-08-24 17:02:16 -05:00
2026-10-15 23:49:52 +04:00
2026-10-15 23:49:52 +04:00
2026-10-16 19:28:59 +04:00
2026-10-22 19:00:40 -07:00
2026-09-23 20:31:56 -07:00
2026-09-15 07:26:32 -07:00
2026-09-15 07:26:32 -07:00
2026-09-15 07:26:32 -07:00
2026-09-23 20:31:56 -07:00
2026-09-23 20:31:56 -07:00
2026-10-22 19:00:40 -07:00
2026-10-29 19:47:54 +04:00
2026-10-14 20:14:54 -04:00
2026-08-31 17:49:45 -05:00
2026-10-22 19:00:40 -07:00
2026-09-13 12:14:44 -07:00
2026-09-16 11:52:26 -07:00
2026-09-13 12:48:26 -07:00
2026-08-31 17:49:45 -05:00
2026-09-23 21:21:52 -05:00
2026-10-14 20:12:29 -04:00
2026-10-14 19:21:57 -07:00
2026-10-23 19:08:55 -04:00
2026-10-23 19:08:55 -04:00
2026-10-24 00:23:11 -04:00
2026-10-15 14:48:43 +01:00
2026-09-23 21:21:52 -05:00
2026-09-14 21:12:01 -07:00
2026-09-28 21:19:23 -05:00
2026-08-24 17:02:16 -05:00
2026-10-18 15:22:31 +07:00
2026-10-24 00:23:11 -04:00
2026-10-24 00:23:11 -04:00
2026-09-23 21:21:52 -05:00
2026-10-03 23:10:32 -07:00
2026-10-16 08:39:10 +07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-08-24 17:02:16 -05:00
2026-09-30 13:01:45 -05:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-10-21 15:07:20 -07:00
2026-09-27 22:32:36 +07:00
2026-10-16 10:54:58 +02:00
2026-10-26 16:25:49 +01:00
2026-10-23 12:30:32 +01:00
2026-09-15 07:26:32 -07:00
2026-08-31 17:49:45 -05:00
2026-10-22 19:00:40 -07:00
2026-10-15 04:10:41 +02:00
2026-10-14 17:43:13 +02:00
2026-09-15 07:26:32 -07:00
2026-10-16 16:48:37 +05:30
2026-09-15 07:26:32 -07:00
2026-10-22 19:00:40 -07:00
2026-09-15 05:18:30 -05:00
2026-09-15 05:18:30 -05:00
2026-09-15 05:18:30 -05:00
2026-10-09 19:09:30 -07:00
2026-10-03 18:47:31 -07:00
2026-10-01 13:34:26 -07:00
2026-09-28 19:07:57 -05:00
2026-09-14 19:59:26 -05:00
2026-10-23 15:05:23 -07:00
2026-10-16 21:00:28 +04:00
2026-09-28 19:07:57 -05:00
2026-10-16 21:00:28 +04:00
2026-10-15 10:48:38 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-08-24 17:02:16 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-10-26 15:31:51 -07:00
2026-10-26 14:07:58 -07:00
2026-10-26 14:07:58 -07:00
2026-10-20 16:24:53 -04:00
2026-10-20 16:24:53 -04:00
2026-10-26 14:07:58 -07:00
2026-10-25 17:21:41 -07:00
2026-10-25 17:21:41 -07:00
2026-10-01 13:34:26 -07:00
2026-10-25 17:21:41 -07:00
2026-10-25 17:21:41 -07:00
2026-09-11 08:59:32 -07:00
2026-09-23 16:00:53 -05:00
2026-10-20 01:25:40 +01:00
2026-10-23 12:22:42 +01:00
2026-09-15 07:26:32 -07:00
2026-10-16 16:48:37 +05:30
2026-09-14 14:20:01 -07:00
2026-10-25 11:32:19 -04:00
2026-10-17 07:32:21 +07:00
2026-10-17 07:32:21 +07:00
2026-10-03 23:10:32 -07:00
2026-10-16 08:39:10 +07:00
2026-10-16 21:00:28 +04:00
2026-09-05 03:30:55 -05:00
2026-09-28 19:07:57 -05:00
2026-10-22 18:09:37 -07:00
2026-10-22 19:00:40 -07:00
2026-10-02 15:21:36 -07:00
2026-10-03 23:10:32 -07:00
2026-08-24 17:02:16 -05:00
2026-09-23 16:00:53 -05:00
2026-09-23 16:00:53 -05:00
2026-08-24 17:02:16 -05:00
2026-09-13 10:23:13 -07:00
2026-09-15 07:26:32 -07:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-10-20 06:31:50 +05:30
2026-10-20 06:31:50 +05:30
2026-08-24 17:02:16 -05:00
2026-10-02 21:08:11 -07:00
2026-08-24 17:02:16 -05:00
2026-10-23 12:33:05 +01:00
2026-09-28 21:19:23 -05:00
2026-09-28 21:19:23 -05:00
2026-10-23 15:05:23 -07:00
2026-10-23 15:05:23 -07:00
2026-10-24 08:19:21 -07:00
2026-10-16 21:00:28 +04:00
2026-10-22 19:07:46 -07:00
2026-10-23 12:39:56 +01:00
2026-10-22 19:00:40 -07:00
2026-09-13 17:28:35 -07:00
2026-10-23 12:39:56 +01:00
2026-10-14 20:13:34 -04:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-10-17 11:42:58 -07:00
2026-10-19 13:11:58 +01:00
2026-09-15 07:26:32 -07:00
2026-08-31 17:49:45 -05:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-09-14 21:12:01 -07:00
2026-10-16 23:19:12 -04:00
2026-10-14 14:17:52 -04:00
2026-10-20 03:22:18 -04:00
2026-09-16 08:48:31 -04:00
2026-10-20 03:22:18 -04:00
2026-10-25 16:28:09 -07:00
2026-10-25 16:28:09 -07:00
2026-10-16 21:00:28 +04:00
2026-08-24 17:02:16 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-10-15 23:49:52 +04:00
2026-08-24 17:02:16 -05:00
2026-10-13 15:10:58 +01:00
2026-10-08 02:59:51 +01:00
2026-10-09 17:42:00 -07:00
2026-10-19 13:11:58 +01:00
2026-09-15 07:26:32 -07:00
2026-09-13 12:48:26 -07:00
2026-09-14 14:49:04 -07:00
2026-09-22 19:22:55 -05:00
2026-09-22 19:22:55 -05:00
2026-10-22 19:00:40 -07:00
2026-09-14 14:20:01 -07:00
2026-09-15 07:26:32 -07:00
2026-09-12 14:04:08 -07:00
2026-10-28 14:09:12 +00:00
2026-10-28 14:09:12 +00:00
2026-10-25 17:21:41 -07:00
2026-09-11 21:57:51 -07:00
2026-09-15 07:26:32 -07:00
2026-10-03 23:10:32 -07:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-10-16 21:00:28 +04:00
2026-09-15 07:26:32 -07:00
2026-10-22 19:08:10 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-09-15 07:26:32 -07:00
2026-10-22 18:09:37 -07:00
2026-10-25 19:42:49 -07:00
2026-10-25 19:42:49 -07:00
2026-10-17 11:42:58 -07:00
2026-10-17 11:42:58 -07:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-10-29 11:20:49 +00:00
2026-10-29 11:20:49 +00:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-09-28 19:07:57 -05:00
2026-09-15 07:26:32 -07:00
2026-08-24 17:02:16 -05:00
2026-09-15 05:18:30 -05:00
2026-09-15 05:18:30 -05:00
2026-10-17 11:42:58 -07:00
2026-10-15 19:09:27 -07:00
2026-09-15 13:26:41 -05:00
2026-09-15 13:26:41 -05:00
2026-10-29 11:20:49 +00:00
2026-10-29 11:20:49 +00:00
2026-09-15 07:41:56 -07:00
2026-09-15 05:18:30 -05:00
2026-10-17 15:49:02 -07:00
2026-10-19 14:29:11 +01:00
2026-10-16 21:00:28 +04:00
2026-10-19 14:29:11 +01:00
2026-10-14 14:17:48 -04:00
2026-09-22 17:45:39 -05:00
2026-10-22 19:00:40 -07:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00