GPSTest allows you to measure the GNSS accuracy of your device. For more details, see the article "Measuring GNSS Accuracy on Android devices".
You can set the ground truth location (i.e., your actual position) for tests in GPSTest several ways.
Note that the input should always be in WGS84 to match GNSS data. If you have location information in an alternate datum (e.g., NAD83, NAVD88), it needs to be converted to WGS84 first.
See the GPS World article "Datums, feet and GNSS vectors: The 2022 NGS upgrade" for more information about conversions.
- Type in a latitude, longitude, and altitude (optional)
- Tap on the map to set latitude and longitude
GPSTest also supports receiving a ground truth location from another Android app such as BenchMap, an application that allows searching and viewing of National Geodetic Survey / NGS survey stations on an interactive map.
You can scan a QR code that has a location embedded in the Geo URI format (RFC 5870), which looks like:
geo:37.786971,-122.399677
Please note that altitude is not yet supported as RFC 5870 requires altitude to be othrometric, or height above the WGS-84 reference geoid. Support for geoid offset is discussed more in #296 and #530.
You can use the ZXing QR Code Generator website to create your own QR Codes.
Follow these steps:
- Download and install BenchMap
- Tap on any marker on the map
- Tap on the popup balloon that appears above the marker
- Tap on the 3 dots in the upper right corner ("overflow menu") and choose "Track To"
GPSTest will open to a new test with the ground truth location set to the location of the marker from BenchMap.
Currently only latitude and longitude are supported by BenchMap (no altitude data).
GPSTest can receive a ground truth location from any app that implements the following features.
The com.google.android.radar.SHOW_RADAR
intent.
For example, if you add this code to your Android app, it will set the ground truth location in GPSTest:
public void startShowRadar(double lat, double lon, float alt) {
Intent intent = new Intent("com.google.android.radar.SHOW_RADAR");
intent.putExtra("latitude", lat); // double, in decimal degrees
intent.putExtra("longitude", lon); // double, in decimal degrees
intent.putExtra("altitude", alt); // float or double, in meters above the WGS84 ellipsoid
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
An intent using ACTION_VIEW
along with a data URI in the geo:
scheme.
For example:
geo:latitude,longitude
Please note that altitude is not yet supported as RFC 5870 requires altitude to be othrometric, or height above the WGS-84 reference geoid. Support for geoid offset is discussed more in #296 and #530.
For example, if you add this code to your Android app, it will set the ground truth location in GPSTest:
public void startGeoUri(Uri geoUri) {
Intent intent = new Intent(ACTION_VIEW);
intent.setData(geoUri);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}