A Django-based geospatial platform for extended reality (XR) applications with integrated GIS capabilities, machine learning support, and real-time data processing.
- Geospatial Processing: Built on GDAL/OGR with support for various spatial data formats
- Tile Server Integration: Built-in MapTiler tile server for high-performance map serving
- Machine Learning Ready: Includes PyTorch and scikit-image for ML/AI processing
- Real-time Processing: Celery integration for asynchronous task processing
- REST API: Full REST API support through Django REST framework
- Cross-Origin Support: Configured CORS headers for web and mobile clients
- Spatial Database: SQLite with SpatiaLite extension for spatial data storage
The application consists of two main services:
-
Web Service
- Django application (Port 8090)
- Handles API requests, data processing, and ML tasks
- Serves static and media files
- Manages user authentication and data access
-
Tile Server
- MapTiler TileServer-GL (Port 8091)
- Serves vector and raster tiles
- Supports multiple tile formats (MVT, PNG, JPEG, WebP)
- CORS-enabled for cross-origin requests
- Docker and Docker Compose
- GDAL 3.0+ (installed automatically in container)
- Python 3.9+
- 4GB+ RAM recommended
- SSD storage recommended for tile serving
-
Clone the repository:
git clone https://github.com/your-org/deepgis-xr.git cd deepgis-xr
-
Build and start the services:
docker-compose up --build
-
Access the services:
- Web Application: http://localhost:8060
- Tile Server: http://localhost:8091
deepgis-xr/
├── data/ # Tile server data directory
├── deepgis_xr/ # Django project directory
├── media/ # User uploaded files
├── static/ # Static files
├── staticfiles/ # Collected static files
├── Dockerfile # Web service container definition
├── docker-compose.yml # Service orchestration
├── requirements.txt # Python dependencies
└── config.json # Tile server configuration
- Set in
deepgis_xr/settings.py
- Override using environment variables
- Debug mode controlled via
DEBUG
environment variable
- Configuration in
config.json
- Supports custom styles and data sources
- CORS enabled by default for development
-
Start services in development mode:
docker-compose up
-
Run migrations:
docker-compose exec web python manage.py migrate
-
Create superuser:
docker-compose exec web python manage.py createsuperuser
The REST API provides endpoints for:
- Spatial data upload and processing
- Tile generation and serving
- Machine learning model inference
- User management and authentication
Detailed API documentation available at /api/docs/
when running the server.
- Django 3.2.24
- Django REST Framework 3.12.4
- GDAL/OGR (via system packages)
- Celery 5.2+ with Redis
- Rasterio 1.3.0
- Shapely 1.8.0
- Fiona 1.9.1
- GeoPandas 0.12.0
- PyProj 3.5.0
- PyTorch
- TorchVision
- scikit-image
For production deployment:
- Update
config.json
with production domains - Set appropriate environment variables:
DEBUG=False DJANGO_SETTINGS_MODULE=deepgis_xr.settings
- Use proper SSL/TLS certificates
- Configure proper authentication
- Set up monitoring and logging
- Fork the repository
- Create a feature branch
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Open an issue in the repository
- Contact the maintainers
- Check the documentation in the
/docs
directory