Android offline map app for stray cyclists and roaming vagabonds.
Not on F-Droid or Play Store yet. Download the latest APK.
- Vector maps (mapsforge) and XML render styles: OpenAndroMaps
- Raster overview maps (MBtiles): OpenAndroMaps general maps
- Digital elevation models (hgt, 3 arc-second): viewfinderpanoramas.org
Straymap is Free Software (source code):
“Free software” means that the users have the freedom to run, copy, distribute, study, change and improve the software. It's a matter of liberty, not price.
Straymap is gratis, non-commercial, not intended for profit. If you can afford to pay for it, you're free to do so. Otherwise, just use it.
- Report issues and bugs
- Ask questions or suggest features in discussions
- Fork the repo and open pull requests against the
developmentbranch - Help translate the app — improve existing translations or contribute a new language. If you don't want to touch code, start a discussion on GitHub.
- Respect homeless people! If someone is squatting in your backyard, don't call the police, offer help instead. It might be the author of the app.
Straymap contains no trackers of any kind. All data stays on-device — nothing is collected, uploaded, or shared.
The app works entirely offline, with one exception: the online-raster-xyz map layer, which requests raster tiles from an online source you choose yourself.
For a detailed explanation of permissions and data handling, see PRIVACY.md.
Note: Complete the React Native environment setup first.
git clone [email protected]:jhotadhari/straymap.git
git checkout development
yarn start # Start Metro bundler
yarn android # Build & run (in a second terminal)The default branch for PRs is development. The main branch contains only tagged, versioned releases.
Core parts of Straymap are published as standalone, reusable packages — anyone can pick them up and use them in their own projects.
- react-native-mapsforge-vtm — React Native wrapper for mapsforge's vtm map rendering engine
- react-native-mapsforge-vtm-ext-path-color-ramp — Extension for map path color-ramp styling
- react-native-brouter — React Native wrapper for the BRouter offline routing engine
- @jhotadhari/release-kit — Release automation toolkit
- react-native-hardwarekey-event — Hardware key event handling for React Native
-
Built around mapsforge's vtm via react-native-mapsforge-vtm
-
Framework: React · React Native · TypeScript · Babel
-
State & data: Redux Toolkit · React Query · drizzle-orm · op-sqlite · SpatiaLite
-
UI: react-native-paper · react-native-paper-dates · react-native-reanimated & react-native-worklets · react-native-gesture-handler · react-native-svg · react-native-sortables · FlashList · @react-native-vector-icons · Font-GIS · react-native-safe-area-context · @react-native-community/blur
-
Maps & geo: Turf.js · @tmcw/togeojson
-
i18n: i18next · react-i18next · intl-pluralrules
-
Utilities: lodash-es · array-move · dayjs · formatcoords · slugify · sprintf-js · semver-compare · @ungap/structured-clone · defaults · react-native-fs · react-native-uuid · react-native-default-preference · react-native-scoped-storage · react-native-popover-view · @klarna/react-native-vector-drawable · react-native-markdown-display
-
Logo: foreground based on hotpot.ai/logo-generator, background based on World PNGs by Vecteezy