How junjunguo/pocketmaps works
PocketMaps is an Android offline-mapping app built around local map selection, map display, routing, and on-device navigation. Its documented capabilities also include map downloads, address and coordinate search, turn-by-turn directions, tracking and sport analysis, and importing/exporting data. The excerpts show activity launches, route calculation, settings state, and parts of download and export behavior; links for unsampled subsystems are therefore limited to documented product flow rather than presumed internal calls.
Main entry points: MainActivity.java Map selection · MapHandler.java Map and routing · GeocodeActivity.java Address search · Tracking.java Activity tracking
Components 21
App and maps
- Map selection
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/activities/MainActivity.java - Map downloads
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/activities/DownloadMapActivity.java - Map installation
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/downloader/MapDownloadUnzip.java - Map screen
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/activities/MapActivity.java - Map and routing
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/map/MapHandler.java - Local map files
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/model/MyMap.java
Search and routing
- Address search
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/activities/GeocodeActivity.java - Local geocoder
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/geocoding/GeocoderLocal.java - Global geocoder
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/geocoding/GeocoderGlobal.java - Route destination
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/map/Destination.java
Navigation and tracking
- Navigation control
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/map/Navigator.java - Turn guidance
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/navigator/NaviEngine.java - Activity tracking
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/map/Tracking.java
Persistence and transfer
- Track records
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/db/DBtrackingPoints.java - GPX export
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/util/GenerateGPX.java - Import and export
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/activities/ExportActivity.java - Archive import
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/downloader/MapUnzip.java - Bluetooth transfer
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/bluetooth/BluetoothService.java - App settings state
PocketMaps/app/src/main/java/com/junjunguo/pocketmaps/util/Variable.java
Other components
- Map user
- GraphHopper engine
Connections 19
- Map user → Map selection: selects maps
- Map selection → Map screen: opens map
- Map selection → Map downloads: opens downloads
- Map downloads → Map installation: installs maps
- Map screen → Map and routing: displays map
- Map and routing → GraphHopper engine: calculates route
- Map user → Address search: searches address
- Address search → Local geocoder: queries local
- Address search → Global geocoder: queries global
- Map user → Navigation control: starts guidance
- Navigation control → Turn guidance: controls guidance
- Map user → Activity tracking: records activity
- Activity tracking → Track records: stores points
- Activity tracking → GPX export: exports track
- Map user → Import and export: transfers data
- Import and export → Archive import: imports archive
- Import and export → Bluetooth transfer: transmits data
- Map selection → App settings state: uses settings
- Map and routing → Local map files: uses local maps