Recce is a Map Planning and Navigation app for Android. It supports 6 commonly-used geographic/projected coordinate systems (see Supported GCS/PCS) and offers coordinate transformations in real-time.
Recce uses the Google Maps SDK (see Libraries) to display a map for pinpointing and navigating. The Map lets you find the coordinate of any location in 6 different coordinate systems (see Supported GCS/PCS) down to 1m precision.
There are 3 map types available: Normal, Satellite and Hybrid. The Map also allows you to save points and plot routes and regions.
The points, routes, and areas saved from the Map can be grouped, sorted and coloured to help organise your collection of points-of-interests.
The GPS page gives you convenient access to the coordinates of your current location, as well as a 3D compass with pitch, yaw, and roll for orientation.
Saved points and routes can be added to the Ruler to compute cumulative and point-to-point direction and distance.
Share Code allows conveninent exporting and importing of points, routes and areas for sharing or backing up.
Recce offers the following GCS/PCS for displaying and inputting grids:
- WGS 84 (EPSG:4326). As used by Google Maps for coordinates.
- Universal Traverse Mercator (UTM). Automatic zone/band detection and conversion.
- Military Grid Reference System (MGRS). Only for UTM coverage, does not include UPS. Automatic zone, band, row letter and column letter detection and conversion.
- Kertau 1948. Used in West Malaysia and Singapore.
- British National Grid (EPSG:27700). 2 grid letters and 10 grid digits.
- Maidenhead Locator System (QTH Locator). Up to 8 digits.
Since Recce uses Proj4J
, new systems can be added easily in the future (see Libraries)
The most convenient method to install and start using Recce is by installing from the Google Play Store.
Google Play and the Google Play logo are trademarks of Google LLC.
You can clone this repository and import into Android Studio.
git clone https://github.com/nujiak/recce.git
Alternatively, you can create a new project directly in Android Studio by going to File > New > Project from Version Control... and using https://github.com/nujiak/recce.git
as the URL.
You can also use the debug version of the app from releases. You can install this version in parallel with the release version from Google Play.
You will need to provide a Google Maps API Key in order to use the Google Maps SDK. Follow the instructions on Using API Keys under the section Creating API keys to obtain an API key.
Create a string entry in app/src/main/res/values/secrets.xml
with the name google_maps_api_key
. You may have to create the file if it does not exist. Your secrets.xml
should look like the following:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="google_maps_api_key">YOUR_API_KEY_HERE</string>
</resources>
YOUR_API_KEY_HERE
should be replaced with your API key obtained from Google Cloud Console.
You can contribute to Recce through the following workflow:
- Fork this repo
- Create your feature branch (
git checkout -b new-feature
) - Commit your changes (
git commit -m ...
) - (Optional) Run Mega Linter to ensure code quality
- Push your branch (
git push origin new-feature
) - Open a Pull Request and make sure that it passes all checks.
Recce uses the following libraries:
Proj4J
for coordinate transformations.Google Maps SDK
for map display and pin plotting.Dagger Hilt
for dependency injection.Room
for database abstraction.
Other libraries are also used that are not stated here. The full list of dependencies can be found in app/build.gradle
.