Android offline map app for stray cyclists and roaming vagabonds.
It's not on F-Droid or Play Store yet.
Download the latest version and install the apk.
Vector maps in mapsforge V5 format and xml render styles https://www.openandromaps.org/en/downloads.
Raster overview maps in MBtiles format https://www.openandromaps.org/en/downloads/general-maps.
Digital elevation Models, elevation data in hgt format at 3 arc second resolution https://viewfinderpanoramas.org/dem3.html
Straymap is Free Software (source code)
What is Free Software? https://www.gnu.org/philosophy/free-sw.en.html
“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer.”
Straymap is gratis, it's free of charge. It's non-commercial. It's not intended for commercial advantage or monetary compensation. It is not intended for profit.
If you want and if you can afford to pay for it, your are free to do so. Otherwise, it's OK, just use it.
Straymap and other map apps are fundamentally based on the mapsforge programming library. And the free maps that OpenAndroMaps makes available to us. If you have a little money to spare, it's in good hands there.
- You can report issues and bugs.
- Ask questions, suggest new features, just start a discussion.
- Help me coding. This project is free open source software. Checkout the repository, fork it and make pull requests for the
developmentbranch.
Straymap respects the users privacy. It does not contain any kind of trackers. Nothing external, nothing internal. The entire data stays on the device. Nothing gets collected, uploaded or shared with no one no where never.
Straymap works, with one exception, entirely offline, no other requests* to any kind of servers are done. The exceptions is:
- The
online-raster-xyzmap layer. This map layer requests raster images from an online source. The online source that you choose by yourself.
* A request to a server, transmits personal data (the users IP address). This is technically necessary.
Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.
Clone the repository
git clone git@github.com:jhotadhari/straymap.gitCheckout and pull the development branch
git checkout development
git pullNote: The development branch is called
development. This should be the pull request base.
Start the Metro Server, the JavaScript bundler that ships with React Native. Run the following command from the root of the project:
yarn startStart your Application. Open a new terminal from the root of the project. Run the following command to start the app:
yarn androidIf everything is set up correctly, you should see the app running in your Android Emulator or your connected physical device.
This is one way to run your app — you can also run it directly from within Android Studio, if the Metro Server is running.
- It's build around Mapsforges fork of vtm.
- To use mapsforge/vtm with react-native I build a library: react-native-mapsforge-vtm
- react; react-native; typescript; babel.
- Translation libraries: i18next; intl-pluralrules; react-i18next
- lodash; @klarna/react-native-vector-drawable; @react-native-community/blur; dayjs; formatcoords; react-native-default-preference; react-native-draggable-grid; react-native-fs; react-native-markdown-display; react-native-paper; react-native-safe-area-context; react-native-scoped-storage; react-native-svg; react-native-uuid; react-native-vector-icons; react-native-wheel-color-picker; semver-compare; slugify; sprintf-js; use-deep-compare-effect; defaults; @ungap/structured-clone; Keep a Changelog
- Dependencies of vtm: AndroidSVG; Simple Logging Facade for Java; OkHttp; Okio; Protocol Buffers - Google's data interchange format; MapBox Vector Tile - Java
- Dependencies and sources of react-native-mapsforge-vtm: JTS Topology Suite; To retrieve the elevation for certain coordinates, most code is copied from mapsforge and JOSM-Elevation-Plugin by Harald Hetzner and Java OpenStreetMap Editor - Plugins - ElevationProfile by Oliver Wieland; Android GPX Parser; Simplification of a 2D-polyline or a 3D-polyline; Savitzky–Golay filter in Java; queue-promise; create-react-native-library
- Font for some headings: Jangly Walk copyright (c) Jakob Fischer at www.pizzadude.dk
- The logo foreground is based on an image generated by hotpot.ai/logo-generator and the background is based on World PNGs by Vecteezy