Outdoor Fingerprinting to Enable Reliable Outdoor-Indoor-Outdoor Transitions

IndoorAtlas supports reliable transition between GPS and indoor positioning, if beacons have been deployed into a venue. Support for improved outdoor/indoor detection requires IndoorAtlas SDK 3.3.x or above.

How to get robust Indoor-Outdoor Detection?

If you need indoor-outdoor detection i.e. the app is used both indoors and outdoors, you should use IA's SDK's method lockIndoors(false):

1) If you have good beacon coverage in the venue, the recommended solution for indoor-outdoor is using our beacon-based indoor-outdoor detection, which requires a light fingerprint around the venue. Read more below.

2) If you don't have beacon coverage, our SDK does its best trying to determine indoor vs. outdoor fusing platform location and radio signals when available. But since platform/GPS can be sometimes wildly inaccurate, accuracy of indoor/outdoor detection with this method varies across venues.

In general, note that indoor here means "indoor fingerprinted area" and outdoors means "non-fingerprinted area". That is, you can use IndoorAtlas (and indoor/outdoor aka mapped vs. non-mapped-area detection) similarly for deployments that are completely outdoors.

When you have lockIndoors(false), IA SDK outputs always outputs either platform location with the best accuracy or indoor position estimates calculated by IA SDK.

Setting up Indoor-Outdoor Detection: Outdoor Fingerprinting 

Enabling reliable outdoor-indoor-outdoor detection requires creating a separate outdoor floor plan(s), where you collect outdoor data, see section "Add floor plans" below. This outdoor floor plan must not include indoor paths.

A) The Blue area indicates the fingerprinted indoor area on the 1st floor.
B) The Orange paths marks outdoor fingerprinting around the venue, at approximately 5m-15m distance from the venue.

Note that the paths are drawn loosely to indicate that you don't need to perform accurate check-ins or follow an exact route when doing the outdoor fingerprinting (as opposed to indoor fingerprinting). What matters is that you walk at a distance of 5m to 15m from the walls, which typically equals 5m to 15m from the indoor fingerprinted area.

At minimum, you should cover those outdoor areas near the venue where the visitors can walk and where there is some covered indoor area roughly next to it. Obviously if there are outdoor areas where people very seldom walk and where you can't walk - you don't need to cover those. Areas around entrances and any major walking paths near/around the venue are the most important areas.

With the Outdoor fingerprinting setup, the expected performance of Indoor/Outdoor is roughly:

  • When approaching a venue, you should get enterRegion (TYPE_FLOORPLAN) between 10m before entering the venue and 10m after entering the venue (in more detail: walking on the fingerprinted area).

  • You should get exitRegion-event (TYPE_FLOORPLAN) once you've walked about 10m to 30m from the venue walls (in more detail: from closest fingerprinted area in the venue).

Follow these steps:

1. Use a floor plan image that includes at least 20 m of the outdoor area around the venue (or enough white space around the venue, as in the example image below). Add the image to the venue on your IndoorAtlas Account. Mark it as an Outdoor floor plan, as highlighted in the image below.

Note that the SDK does not trigger enter floor plan event for the outdoor floor plans, and they are not intended to be shown by apps! When IndoorAtlas SDK detects outdoors, typically the app switches to showing GPS/platform location of the device. Of course, GPS/platform location can be either accurate or wildly off, depending on the venue and area in the world. 

If this is an issue for your use case, you can consider deploying weatherproof beacons outdoors  (for Android not always needed if enough WiFi APs are heard outdoors) and fingerprint the outdoor paths around the venue like they were indoors. This way, IndoorAtlas can be used for outdoor positioning similarly as for indoors.

2. Walk to the outdoors. Open MapCreator app and open the outdoor floor plan. 

3. Select a starting point at around 10m distance from the building/venue and place a waypoint there. Plan where you are going to walk and place another waypoint there.

4. Record a path from the starting waypoint to the end waypoint and store the path.

5. Continue to save paths around the venue, as shown in the above image (Orange path).

6. Trigger map generation for the outdoor floor plan.

7. Wait until generation is finished and you are ready to test the Outdoor-Indoor detection.

Note that sometimes it may be more difficult to find good exact places for waypoints, because outdoor floor plans are often not as accurate as indoor. However, the outdoor waypoints and check-ins don't need to be exact to the last meter (as opposed to indoor mapping). It's ok to use only start waypoint and end waypoint when fingerprinting outdoors and record e.g. 50m to 100m long paths.

Read more about using Outdoor-Indoor-Outdoor transition feature with IndoorAtlas SDKs.