Add indoor positioning
This tutorial describes how to add indoor positioning for use with HERE Indoor Map in an Android or iOS app.
Indoor positioning is provided as a separate SDK. Conceptually, an indoor positioning SDK provides location updates, and your application code can then visualize the location dot on the HERE Indoor Map using HERE SDK. For answers to frequently asked questions about indoor positioning, see the Indoor positioning FAQ.
To have indoor positioning added to your subsciption and to have access to the tools, SDKs and code examples, please contact HERE through the HERE platform.
Indoor positioning with HERE Indoor Map integration is available upon request. The prerequisites for indoor positioning are onboarding to the HERE Indoor Map and ordering an indoor map for the structure to be covered with indoor positioning.
The process of getting indoor positioning added is as follows:
- Your organization must be onboarded to HERE Indoor Map. For more information, see Prepare to use indoor maps.
- A HERE indoor map must be ordered for the building. For more information, see Order and update indoor maps.
- Your organization contract must have indoor positioning or must be extended to include indoor positioning. Upon signing, a HERE representative will provide your organization with the Android and iOS indoor positioning SDKs and tools.
Indoor positioning SDKs
The indoor positioning SDKs use the OAuth 2.0 credentials from your organization on the HERE platform. You must have a
KEY ID and
KEY SECRET that has been issued for the Default Collection App.
To create these credentials, follow these steps:
- Sign in to the HERE platform using your HERE account.
- Open the Access Manager from the launcher.
- Select the Apps tab.
- Select show All apps and locate the Default Collection App.
- Create the OAuth2 credentials for this App. You must be an Org Admin with management rights enabled for all apps and resources.
Indoor positioning deployment
Indoor positioning deployment consists of the following three steps:
Deploying the radio infrastructure
- This step is not required if you choose to use Wi-Fi for indoor positioning.
- If Bluetooth™ beacons are used, these must be ordered and installed.
Performing a radio survey
- Terms such as radio mapping or radio calibration are often used to describe this step.
- In a radio survey, a map of radio signal strengths throughout the building is created.
- In a radio survey, a person walks inside the building covering all the areas where indoor positioning will be required. The surveyor carries an Android device with a Signal Collection App running. Occasionally, the surveyor is required to pinpoint their location on the indoor map for georeference. Between these locations, the app uses pedestrian dead reckoning to understand the surveyor's location.
- The areas to be covered with indoor positioning must be covered multiple times to fully learn the radio environment.
- Multiple surveyors can perform the radio survey simultaneously to speed up the process.
- Testing is performed with the Signal Ops App for Android and Signal Ops App for iOS.
- Qualitative testing is performed by walking around the building with the Ops App running and observing any indoor positioning anomalies.
- Tools provide heatmap views to understand areas that lack enough Wi-Fi/Bluetooth™ signals, or those that have an inadequate number of walks.
- HERE recommends surveying more radio data in areas where indoor positioning issues are detected.
Indoor positioning information
Indoor positioning has the following features:
- SDKs for Android and iOS.
- High accuracy indoor positioning with building and floor detection using Wi-Fi and Bluetooth™ radios.
- Automatic radiomap management - the latest indoor positioning data is downloaded to the device automatically when accessing location information.
- Positioning without network connectivity through the caching of radio maps in the device. As soon as the radio map resides in the device, the device can position itself without network connectivity. The position calculation takes places in the device reducing latencies, improving the positioning accuracy, and keeping the location information private within the device.
- Tooling to perform the radio survey (available for Android only).
- Tooling to test the positioning performance (available for Android and iOS).
- Training material covering the tooling and Bluetooth™ beacon deployment, as necessary.
- Example codes and projects to kick start your development.
Indoor positioning is based on standard radio technologies. The supporting radio signals can either be Wi-Fi or Bluetooth™.
Radio technology limitations
- Using Bluetooth™ for indoor positioning is supported for both Android and iOS without limitations. The location update rate is once per 1-2 seconds.
- Using Wi-Fi for indoor positioning with iOS devices is not supported due to iOS platform limitations.
- Using Wi-Fi for indoor positioning is supported with Android devices. However, the location update rate is once per 30 seconds due to Android platform limitations. This also results in delays in reacting to floor changes.
Using the existing Wi-Fi infrastructure to support indoor positioning is recommended, especially when you are doing your first quick test. Because the Wi-Fi infrastructure is already set up, you are ready to start testing without any additional work.
However, Wi-Fi network coverage may have gaps, and the deployment is optimized for connectivity, not for positioning. Because of this, the positioning performance may vary significantly at different parts of the building.
If you plan to use an existing Wi-Fi infrastructure, make sure that the Wi-Fi coverage is found throughout your building, with preferably more than five physical Wi-Fi access points observable at high signal strength throughout the building, or at least in the areas where you want indoor positioning to provide high quality location information.
Having more than ten Wi-Fi Acess Points (APs) is preferred for optimal system performance. The higher the number of Wi-Fi APs, the better the system performance
Indoor positioning is compatible with beacons transmitting according to Eddystone or iBeacon™ specifications.
Eddystone specification has the advantage of also transmitting health status (telemetry) for monitoring purposes.
iBeacon is a trademark of Apple Inc., registered in the U.S. and other countries.
The use of Bluetooth™ beacons is mandatory if iOS support is required, as Wi-Fi cannot be used with iOS devices. Typically, Bluetooth™ beacons can provide better performance, because Bluetooth™ beacons are specifically installed for positioning purposes.
A number of beacon models are available in the market. To be compatible with indoor positioning, certain characteristics and configuration requirements must be met. The following are key hardware requirements:
- The true radiated power on different Bluetooth™ advertisement channels must be approximately the same.
- The true radiated power must not decrease as the battery wears out, but a beacon is expected to stop transmitting when the configured Tx power level cannot be sustained anymore.
- The radiated Tx power temperature-dependency must be limited.
- The true radiated power is expected to be within a few dB of the configured power level.
- The antenna is expected to radiate in a well-defined pattern with good gain towards the front of the beacon.
The key configurations parameters for Eddystone include the following:
- UID Advertisement every 1 s at 0-dBm power.
- TLM Advertisement every 60 s at +5-dBm power.
Number of beacons:
The number of beacons required depends on the type of building, with more structures and walls requiring more beacons. A beacon covers 40-100 square meters. In open spaces max 100m2 per a beacon and in more complex environments, such as office buildings, the coverage per a beacon is typically much less.
Setting the beacon identifiers:
- Bluetooth™ beacons have configurable IDs - Eddystone uses namespace and instance ID, and iBeacon™ uses proximity UUID, major ID and minor ID.
- For Eddystone, (1) all of the beacons in all your deployed buildings shall share a common namespace ID and (2) each of your beacons shall have a unique instance ID (e.g. a running number).
- For iBeacon™, (1) all of the beacons in all your deployed buildings shall share a common proximity UUID and (2) each of the beacons shall have a unique combination of major ID and minor ID (e.g. single major ID per building and a running number for minor ID within a building).
- Note that by default the system uses all the Bluetooth™ beacons within the building, but if there are any issues, the system can be limited to use only your beacons (based on the Eddystone namespace or iBeacon™ UUID).