How nextcloud/maps works
Nextcloud Maps presents interactive personal and shared maps with favorites, photos, contacts, devices, tracks, custom-map files, and route planning. The principal workflow is a user opening the map, whose Vue application loads options and map-domain data through network requests to Nextcloud controllers; the map renders selectable layers and supports edits, imports, exports, and sharing. Backend services handle domain operations and persist data in Nextcloud files or the favorites database. README capabilities guide inclusion; some wiring and implementations are unsampled, so links below are limited to documented routes or source-supported calls.
Main entry points: routes.php HTTP routes · network.js API client · App.vue Maps application · FavoritesController.php Favorites endpoints
Components 22
Map experience
- Maps application
src/views/App.vue - Map rendering
src/components/Map.vue - Map preferences
src/optionsController.js - Route planning
src/components/map/routing/RoutingMachine.vue - API client
src/network.js
Nextcloud endpoints
- HTTP routes
appinfo/routes.php - Favorites endpoints
lib/Controller/FavoritesController.php - Contacts endpoints
lib/Controller/ContactsController.php - Photo endpoints
lib/Controller/PhotosController.php - Track endpoints
lib/Controller/TracksController.php - Device endpoints
lib/Controller/DevicesController.php - Custom maps
lib/Controller/MyMapsController.php
Map domains
- Favorites operations
lib/Service/FavoritesService.php - Photo indexing
lib/Service/PhotofilesService.php - Track operations
lib/Service/TracksService.php - Device operations
lib/Service/DevicesService.php - Geophoto operations
lib/Service/GeophotoService.php
Persistence
- Favorite records
lib/DB/FavoriteShareMapper.php - Photo records
lib/DB/GeophotoMapper.php - Nextcloud files
Other components
- Nextcloud user
- Routing providers
Connections 25
- Nextcloud user → Maps application: opens
- Maps application → Map rendering: renders
- Maps application → API client: requests data
- Map preferences → API client: loads preferences
- Route planning → API client: exports route
- API client → HTTP routes: HTTP requests
- HTTP routes → Favorites endpoints: dispatches
- HTTP routes → Contacts endpoints: dispatches
- HTTP routes → Photo endpoints: dispatches
- HTTP routes → Track endpoints: dispatches
- HTTP routes → Device endpoints: dispatches
- HTTP routes → Custom maps: dispatches
- Favorites endpoints → Favorites operations: calls
- Favorites operations → Favorite records: reads/writes
- Favorites endpoints → Nextcloud files: reads/writes
- Contacts endpoints → Nextcloud files: reads/writes
- Photo endpoints → Photo indexing: calls
- Photo indexing → Geophoto operations: uses
- Geophoto operations → Photo records: reads/writes
- Track endpoints → Track operations: calls
- Track operations → Nextcloud files: reads/writes
- Device endpoints → Device operations: calls
- Device operations → Nextcloud files: imports/exports
- Custom maps → Nextcloud files: manages maps
- Route planning → Routing providers: requests routes