@@ -63,8 +63,22 @@ An interactive web-based map visualization tool for exploring South Australian c
6363- ** Search by Address/Suburb** : Find crashes near any SA location
6464- ** Radius Filtering** : Set custom search radius (1-50km)
6565
66+ #### Interactive Data Table
67+ - ** Sortable Columns** : Click any column header to sort data (Year, Date/Time, Suburb, LGA, Severity, Type, Speed, Casualties)
68+ - ** Flexible Pagination** : Choose to display 10, 25, 50, 100, 250, or 500 rows per page
69+ - ** Quick Navigation** : Jump directly to any page number or use Previous/Next buttons
70+ - ** Real-time Search** : Filter table data instantly by typing in the search box - searches across all columns
71+ - ** Column Management** : Show or hide specific columns using the column picker
72+ - ** Resizable Columns** : Drag column borders to adjust widths to your preference
73+ - ** Click to Explore** : Click any row to zoom to that crash location on the map and view full details
74+ - ** Map Sync** : Hover over rows to highlight corresponding markers on the map
75+ - ** Maximize View** : Expand table to full screen for detailed analysis
76+ - ** Data Export** : Export current page or all filtered data to CSV format
77+ - ** Persistent Settings** : Your table preferences (page size, column visibility, sort order) are saved automatically
78+
6679#### Data Export
67- - ** CSV Export** : Export filtered crash data to CSV format
80+ - ** CSV Export** : Export filtered crash data to CSV format from Statistics panel or directly from the data table
81+ - ** Export Options** : Choose to export all filtered data or just the current page view
6882- ** Summary Statistics** : Includes totals for crashes, casualties, and injuries
6983- ** Filter Documentation** : Active filters are documented in the export
7084- ** Comprehensive Data** : Includes crash details, location, casualties, and units involved
@@ -117,7 +131,25 @@ Click on any marker to see comprehensive crash information:
117131- ** Units Involved** : All units in the crash including vehicles (with type, year, occupants), pedestrians, and fixed objects struck
118132- ** DUI Involvement** : Clearly marked if alcohol was involved
119133
120- ### 5. ** Share & Bookmark**
134+ ### 5. ** Use the Data Table**
135+ 1 . Click "View Data Table" button in the Statistics panel
136+ 2 . Use the search box to filter results across all columns
137+ 3 . Click column headers to sort data
138+ 4 . Adjust page size (10-500 rows) based on your preference
139+ 5 . Click any row to jump to that crash on the map
140+ 6 . Hover over rows to see markers highlighted on the map
141+ 7 . Use the column picker (⚙️) to show/hide specific columns
142+ 8 . Export current page or all data to CSV
143+
144+ ** Keyboard Shortcuts (when table is open):**
145+ - ` Ctrl/Cmd + ← ` - Previous page
146+ - ` Ctrl/Cmd + → ` - Next page
147+ - ` Ctrl/Cmd + Home ` - First page
148+ - ` Ctrl/Cmd + End ` - Last page
149+ - ` / ` - Focus search box
150+ - ` Escape ` - Close table or column picker
151+
152+ ### 6. ** Share & Bookmark**
121153- Filters are encoded in URL - copy the URL to share your exact view
122154- Bookmark specific filter combinations
123155- Send filtered views to colleagues/friends
@@ -155,12 +187,15 @@ LGA assignments are pre-computed using Python geospatial scripts (`scripts/add_l
155187** Coverage:** 98% of crashes (187,017 out of 190,910) have pre-assigned LGAs.
156188
157189### Performance Optimizations
158- - ** Progressive Marker Loading** : 190K+ markers loaded in chunks of 2000 with progress indicator
190+ - ** Progressive Marker Loading** : 190K+ markers loaded in chunks of 20,000 with progress indicator
159191- ** Icon Caching** : Reuses marker icons instead of creating duplicates
160192- ** Batch Processing** : Adds markers to cluster in batches for faster rendering
161193- ** Dynamic Clustering** : More aggressive clustering at lower zoom levels
162194- ** Lazy Popup Generation** : Crash details only generated when popup is opened
163195- ** Service Worker Caching** : Caches 200MB+ of data files for offline access
196+ - ** Efficient Table Rendering** : Data table uses virtual pagination and only renders visible rows
197+ - ** Filter Result Caching** : Previously used filter combinations are cached for instant re-application
198+ - ** Client-side Persistence** : User preferences (table settings, theme) stored locally for instant restoration
164199
165200## Development
166201
0 commit comments