Building Mobile Indoor Navigation and Positioning Apps

While mobile outdoor navigation with the GPS is no longer a surprise, indoor navigation is still quite an innovation. Nevertheless, a classic GPS-based navigation system has one big drawback – poor accuracy.

While mobile outdoor navigation with the GPS is no longer a surprise, indoor navigation is still quite an innovation. Nevertheless, a classic GPS-based navigation system has one big drawback – poor accuracy. In practice it results in showing the approximate user location in a venue. Quite often, however, high accuracy is required to determine the current location and the route to the desired points, for example, supermarkets, parking lots, museums, and airports. Obviously, with the GPS you can get into a building, but you won’t be able to find your way inside. To solve this issue, indoor positioning systems are widely applied.

Today, mobile platforms allow building stunning apps that help to find the way inside large buildings. Let’s take look at how these technologies work and go deeper into how they are realized in mobile development.


Here are some basic technologies used for indoor positioning applications.

Wi-Fi positioning systems (WPS)
This system has become widespread because the Wi-Fi technology has gained a rapid growth in urban areas. The system helps to determine the current location of the device using various algorithms based on the connections available at a certain Wi-Fi hotspot and the intensity of the signal. Now it’s hard to find a smartphone without a Wi-Fi module, so the idea behind WPS lies at the heart of the vast majority of IPS (indoor positioning system) implementations.

Magnetic positioning systems
Magnetic positioning systems are based on magnetic field anomalies inside buildings. Magnetic field sensors in smartphones are not adapted to these anomalies. They are more likely to react to the difference in the magnetic field perturbation when moving between two places in the building, thus distinguishing them in space.

Inertial positioning systems (IPS)
Inertial positioning systems are built based on pedometer readings. The positioning error in this case depends on the positioning system itself and on step detection accuracy.

Positioning systems based on visual markers
Such systems have recently gained popularity due to a breakthrough in the development of artificial intelligence and, in particular, computer vision. With a camera on, the system scans images from devices and searches for visual marks. The markers are located in certain places throughout the entire positioning area. Each marker is uniquely aligned with the location coordinates: latitude, longitude, and height. Measuring the angle of view from the device to the marker helps to estimate the device’s coordinates.

How the technologies are realized

With indoor positioning systems you can build apps that allow adding floors to the building as well as easily create routes for user navigation inside. Such applications don’t need a GPS sensor. However, this sensor helps to find the necessary building on the map and proceed directly to IPS.

Here are the main functions that most apps of this kind can perform.

Create a building model
The app can add a new building to any point on Google Maps through the web interface. Then the user can upload an image (.jpg, .png) with a diagram for any floor and map the points of interest, for example, entrances, rooms and elevators. To create the route the user needs to interconnect these places.

Positioning system training
Before the position inside the building is determined, the app has to be trained. For this purpose, the user should be inside the building with the app installed on the smartphone. It’s required to turn on the Wi-Fi module for the device to be able to capture the frequency and level of all Wi-Fi networks available. But it isn’t necessary to connect to any network except for the cases when you need to send the results to the server at the end of the measurements. To carry out the measurements, the user needs to activate the logging mode in the mobile application. Move along long straight lines, e.g. corridors, 2-3 times in order to increase the accuracy of measurements and determine the future position. The logger measures the power of Wi-Fi. Bear in mind that the accuracy of measurements depends on the number of Wi-Fi hotspots. After you log in, you need to send the information about the measurements (RSS Log) to the server. Several users can simultaneously measure and send data to the server, and thus use a common database of all the measurements inside the building.

Location saving
To save the location, the user needs to place the device in some location and specify its name. It’s recommended that the user should keep the phone still for 3-5 minutes. After the current point is saved, the user can proceed to the next one. When all the necessary points are saved, the user can switch to the positioning mode.

Location detection
To detect the location, it’s necessary to turn on the Tracking mode. The app determines the Wi-Fi signal strength and compares it with the saved database of signal sources. Each Wi-Fi signal source can be assigned to a GPS coordinate or to a location name (the line with the saved point name). For example, if you put a device in the area that was previously saved under the name “Location1”, the application recognizes it.

Selecting the scale of the grid of saved points
The meaningful points should be saved. For example, if there’s a hallway linking two entrances to the rooms, it’s enough to remember 2 points: “entrance_1” and “entrance_2”. You can also create a “hallway” point, while moving along the hallway during the measurement. Thus, when moving from the first room to the second one along the corridor, the application will always show the user’s location, without unknown areas. It might look like this: entrance 1 -> hallway -> entrance_2.

How it is implemented
During the training process the application saves all the available Wi-Fi signal sources. Whenever the user marks a new position in the logging mode, the saved signal sources are mapped to GPS coordinates which lie between two consecutive user-specified points on the map. It results in the collection of the sources with the corresponding GPS coordinates. At the end of the training process the collection is sent to the server and added to the existing collection of Wi-Fi signal sources for this floor of the building.

When the user enables the positioning and navigation mode, the application requests the entire collection of all the prints from the server and caches it to the file. When the user moves, the application maps the current state of Wi-Fi networks to the cached list. Using the algorithm chosen by the user the application selects the most suitable point from the list and returns the GPS coordinates.


Indoor navigation is a new word in navigation technologies. With such an app on your smartphone you’ll never lose your way again in a shopping mall and easily find the necessary gate at the airport. These apps come extremely handy for trips, when you don’t know a foreign language and can misunderstand/misinterpret the signs. Although it may be a challenge for any Android developer, building a great indoor navigation and positioning application is an exciting and obviously rewarding experience.

In Softvelopers, we have relevant expertise to address your current needs and provide your business with excellent indoor navigation and positioning apps.

Leave a Reply

Your email address will not be published. Required fields are marked *