A professional-grade demonstration of the Expo Spatial Layer Engine, a high-performance native library for rendering and interacting with massive geospatial datasets in React Native.
Visualizing millions of points on a mobile map without lag or synchronization issues is a major challenge. This project showcases a solution that combines a C++ QuadTree Engine with Google Maps Native Tiles to achieve desktop-class performance on mobile devices.
- 1,000,000+ Points: Smoothly handle massive datasets with sub-millisecond query times.
-
QuadTree Spatial Indexing:
$O(\log n)$ performance for rendering and picking. - Zero-Latency Interaction: Instant point selection through JSI-bridged C++ logic.
- Agnostic Styling: Configure point colors and categories dynamically from JavaScript.
-
Binary Zero-Copy: Direct
Float32Arraytransfer to native memory for instant loading.
modules/expo-spatial-layer/: The core high-performance engine.app/spatial-test.tsx: Industrial-grade demo showing picking, memory monitoring, and dynamic styles.convert_csv.py: Utility to transform raw CSV/Parquet data into efficient binary format.
- Node.js & npm/yarn
- Android Studio/SDK (for Android builds)
- Python 3 (for data conversion)
The app uses a binary format for extreme speed. Convert the sample taxi data:
python3 convert_csv.pyThis generates taxi-data.bin in the assets/ folder.
npm install
npx expo run:androidFor advanced technical details, check the internal module docs:
- Technical Architecture - How JSI and QuadTree work.
- API Reference - Props and methods for the engine.
Check our ROADMAP.md for future plans including iOS support, clustering, and heatmaps.
Built with ❤️ by the Geospatial Community.
