As you've perhaps already seen, Ground Truth (GT) i.e. marking your real location during testing positioning is a powerful feature for:

  •  Documenting the positioning performance in a site
  •  Reporting positioning issues


Although storing just TraceId and reviewing the test walk through Session Viewer gives some insight into problems, it's much much easier to diagnose issues when you can see both:

  • The real user location
  • The estimated user position 


In the screenshot below, Red dot shows the GT (real location) and Blue dot shows the position estimate.



Implementing Ground Truth In Your App using IndoorAtlas SDK


Because you probably want your customer's end users to use your app for all testing, it's very useful to support Ground Truth in your app as well.

For Android, use this snippet:

IALocation gt = new IALocation.Builder("com.indooratlas.android.sdk.intent.extras.groundTruth")
                        .withLatitude(gtLatitude)
                        .withLongitude(gtLongitude)
                        .withAccuracy(2f)
                        .withFloorLevel(gtFloorLevel).build();

mIALocationManager().setLocation(gt);




Implementation guidelines:

  1. Note that because sometimes the blue dot may appear on the wrong floor, your app must allow the user to select the correct floor number. This can be implemented e.g. as a floor selector, which changes the showed floor plan and shows the blue dot in the different floor as dimmed.
  2. We've used two ways to implement GT on UI: a) UI shows a marker that users can drag & drop to their current location, then click the marker to "check-in. b) Long-touch the screen to add waypoint, then confirm by touching a button.