SDK 2.3 GA Release information



Positioning Service

We have built the positioning service (IPS) from the ground up. This new service and its algorithms provide faster first fix, more accurate tracking, and generally more robustness for challenging environments. IndoorAtlas SDK 2.3 has this new service enabled.

This is our biggest update to the positioning service itself and we are very excited that we can share it with you. We’d be also very grateful if you could share your experiences with us via

Beacon Support

SDK 2.3 now supports BLE beacons. Although not required for positioning to work, beacons can shorten the time to first fix and improve the positioning experience - this is especially true with iOS which cannot utilize Wi-Fi information. Venues mapped with MapCreator 2 will have their beacons automatically enabled in positioning. Initially only iBeacons are supported but Eddystone and other standards are added as server updates. No remapping is required.

Context Information

In this version, we have taken first measures to make transition from outdoor to indoor service easier for the developer to handle. The SDK triggers an event as user moves to near proximity of a venue and another event as the user enters mapped area. Previous versions would trigger the event only when user approached venue and it was hard to decide when the user actually was on mapped area. Similarly the SDK triggers exit events for both floor plan and venue. In addition, the location estimates now also include a floor plan certainty estimate which can be used to check when the positioning algorithm has locked in on a floor plan.

Demo session from Kamppi, Helsinki

Notes for Android

Context Information

Floor certainty estimates are accessed with new methods IALocation#hasFloorCertainty and IALocation#getFloorCertainty.

Entering and exiting a venue triggers calls to IARegion.Listener#onEnterRegion and IARegion.Listener#onExitRegion respectively. In these cases IARegion#getType will return IARegion.TYPE_VENUE.


To take advantage of BLE beacons, the application needs to be given bluetooth permissions. The following permissions needs to be added to AndroidManifest.xml.

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

User will also need to have Bluetooth service enable for the SDK to to utilize beacon information.

Documentation & Installation

The API documentation is found in:

Configure Gradle to look dependencies from IndoorAtlas alpha repository:

repositories {
    maven {
        url  ""

Add the following dependency to your build.gradle:

  compile ''

Notes for iOS

Context Information

New IALocation property floorCertainty exposes vertical certainty in multi-level buildings.

Event for entering/exiting a venue is triggered as didEnterRegion and didExitRegionEvent. Type of IARegion is kIARegionTypeVenue for venues.


Add CoreBluetooth.framework to your project. No new application permissions are required. If bluetooth is turned off, an alert: Turn On Bluetooth to Allow to Connect to accessories. will be shown. It is possible to suppress this alert by setting app plist key:


If you suppress the pop up, remember to instruct users to turn on bluetooth for better positioning performance.


HTTP proxy support. Proxy settings will be picked up from iOS settings. To use proxy with basic authentication, following keys must be set in the application’s plist ‘IAProxyUsername’ and ‘IAProxyPassword’. The SDK can’t read authentication information from iOS settings.

Known Issues

If setting floor plan id alone is not enough to start location updates in some building, try also setting the center coordinate of the floor plan with an accuracy radius covering the whole floor. This will be fixed on server side before general access release.

Documentation & Installation

The API documentation is found in:

Download link: