DEV Community

Cover image for A Guide to Developing Augmented Reality Indoor Navigation Applications
Andrew Makarov
Andrew Makarov

Posted on • Originally published at

A Guide to Developing Augmented Reality Indoor Navigation Applications

With the demand growing for more complex and higher quality AR software products, many established organizations are shifting toward more specialized solutions to suit their business needs, and AR navigation is one of them.

The guide that follows is not another exciting review of the potential of AR navigation, however. Instead, we will share with you the real possibilities of this technology as well as implementation challenges and ways to overcome them. Please keep in mind that this is not an off-the-shelf solution, but is instead our approach and expertise related to building indoor navigation apps that you can use to create a custom AR navigation system for your business or as the basis for building an AR navigation SDK you can share with your clients.

If this is exactly what you were looking for, let’s get started.

Overview of Indoor Navigation Technologies

Before we can get into augmented reality navigation, let’s talk first about some key indoor navigation technologies. Each technology has benefits and drawbacks depending on whether it is used for indoor or outdoor navigation.

Indoor Navigation Technologies


GPS is great if you need to show something on a large scale. For example, showing a supermarket building in AR. In this case, even if the AR object is located 50 meters away, it will still be fine at this scale. But this is not the case for indoor navigation where such accuracy is not satisfactory. Therefore, GPS is only suitable for outdoor navigation. If we need to determine someone’s position inside a building or in an exact position in a dense downtown area, GPS can only do so much to support AR navigation. For example, it can only define a building and preload data for it.

That leaves three other options for indoor navigation: beacons, visual positioning systems, and visual markers.


Indoor positioning system beacons help devices locate their positions within buildings by measuring signals from these beacons. These provide more accuracy than GPS, but you need to purchase and physically place them in the building, as well as store the location of each beacon to calculate user location. The accuracy can be within 5 meters, which is enough, for example, to navigate the user to the gate at the airport.


Visual positioning systems and visual markers are approaches that don’t require expensive new hardware. However, they require additional labor to configure and set up.

Just as we search for landmarks with our eyes, visual positioning systems (VPS) can use your smartphone’s camera to analyze your surroundings and determine your location. One of the most notable applications of VPS is used in Google Maps. By comparing camera data with extensive Street View databases, Google can determine your location and give you on-screen directions. Similar technology is also available for iOS, but for a limited number of cities. You can find the list here.

Google's Visual Positioning system

However, things aren’t so easy indoors. You’ll need to create your own datasets and train artificial intelligence models to recognize those environments. You may face challenges if remodeling is done or if the furniture is moved frequently. But VPS can be used as a supplement to GPS or Beacons.


A visual marker is an image that the system can recognize. It must be unique so that the computer does not confuse it with something else and asymmetric so that the system understands from which side it is viewing the marker.

Visual markers don’t require expensive AI training, making them a potentially more cost-effective solution. Also, they provide the highest level of accuracy of all indoor navigation options available today. But you should keep in mind that users are required to scan a marker to start navigation, which does not provide as seamless an experience as the GPS we are used to. The further we go from the starting point, the more imprecise the navigation becomes. Therefore, this solution requires periodic rescanning. Marker maintenance is also important, as the markers need to be unobstructed and clean for best recognition.

AR Navigation: How It Works

Augmented reality navigation is an innovative solution that incorporates the above-mentioned technologies for indoor and outdoor navigation. The primary goal of this technology is to provide directions to users onscreen, overlaid on top of real environments seen through the camera of a device like a smartphone or headset. This alleviates the challenge of comparing the real world against a reference like a map, which is more difficult for users to use while navigating.

Thus, there are two parts to AR navigation, the first being the actual navigation and localization, and then the display of AR directions such as text, arrows, and paths on the screen. This second step is actually the easiest part of the whole process, with the more challenging element being identifying the user’s position.

Find insights on how AR navigation works and other promising cases of using AR technology in business in the video below.

Current Limitations of AR Indoor Navigation Technology

AR navigation is a truly exciting technology, but it has limitations that need to be considered. AR indoor navigation can lead us in the right direction. It can tell us which way to get to the right department of a store. It can help us get into the general vicinity of a ward of a hospital, or help get us going in the direction of a particular area of an airport. However, at this stage of indoor positioning technology development, it can’t lead us directly to a certain product on a shelf, or to a particular book at the library. Here we’d need centimeter-accuracy, and that’s just not possible yet. You should take this into account when planning your project.


Types of Navigation

When choosing the technologies you want to use for your AR indoor navigation system, aim for high performance and high precision. Mobile devices need precise positioning data and a lot of processing power to make augmented reality and navigation systems work properly. You’ll need to be willing to make the appropriate investment in the technology needed to make your office, airport, hospital, or other location navigable.

Mobile AR Indoor Navigation: ARCore and ARKit

If getting your customers and teams moving in the right direction with indoor navigation is still a challenge you want to take on given these limitations, you’ll now need to consider the platforms that the client will run on, which are Android (ARCore) and iOS (ARKit) smartphones.

Regardless of how you proceed from here, remember that the mobile platforms available primarily differ in their capability to render and display AR directions. The navigation data and routing information can be handled exactly the same across both platforms.


ARKit is backed up by much more reliable hardware and software compared to ARCore. Apple has full control over the production and design of its iPhone and iPad hardware as well as the OS software. Because of this, ARKit’s performance is more optimized. It’s more reliable because there is very little diversity in performance among iPhones and iPads.


ARKit 4 introduced location anchors in 2020. This technology utilizes VPS to identify landmarks such as buildings and compares them against Apple Maps Look Around images which are similar to Google Street View pictures. This feature allows developers to affix objects to specific locations rather than in arbitrary locations. This can help users identify landmarks around them with AR navigation and this solution operates with higher accuracy than simply using GPS data on its own. Most interestingly, location matching occurs locally, which is good news for users concerned about privacy.

Another key feature that puts iPhones above Android devices in the AR arena is the LiDAR sensor. This hardware can make AR navigation easier due to its superior depth-sensing capabilities, enabling ARKit to analyze depth in a scene at unprecedented speeds.

Check out our demo to see how ARKit-based AR navigation can be implemented.


Meanwhile, ARCore devices on Android phones are much more inconsistent because there is a great deal of hardware and software diversity from one Android phone to another. Since there are multiple manufacturers, it is more challenging for Google to come up with a consistent, reliable experience.

Although ARCore may not be as powerful as ARKit due to current hardware limitations and inconsistencies, it is still an incredibly valuable platform. In 2022 there were 133,4 million Android users in the USA, roughly a third of the population. Developing AR navigation solutions for this audience is crucial for remaining competitive.

Our ARCore indoor navigation demo video shows how users can be navigated throughout a building using on-screen AR instructions.

How to Develop an AR Navigation Application

In most cases, AR navigation solutions can be implemented into existing applications. Therefore, what follows will focus more on the navigation model. We’ll discuss a few different approaches and their limitations that will enable you to support your customers and staff. We’ll also discuss developing an SDK to sell to your customers for their own mapping solutions.


Since we don’t have the luxury of using Google, Apple, or open-source mapping solutions to download or call via APIs, you’ll need to accurately map the environment you want to navigate. Quality and scalability are important factors that can determine the success of your map.

Map Creation for AR Navigation App

Now that we have a detailed map, it must be populated with metadata to define corridors and rooms. This is called the navigation graph. Only then can we begin analyzing the environment to add visual markers.

Mapping with Visual Markers

It’s important to ensure that the map matches the real world. If you are using visual markers, they need to be placed at specific points marked on the map. If they do not perfectly match, then positioning may be inaccurate.

Overcoming Challenges of Indoor Positioning

The most challenging part of AR indoor navigation development is determining the user’s location. Let’s talk about two approaches to indoor positioning.


Visual markers are helpful for ensuring IPS (indoor positioning system) accuracy. Each marker has its own unique ID. When a marker is seen, it is compared against the entire list of markers to find a match. The markers used for this system include data about the user’s position in 3D space. This includes what floor the user is on and where they are on that floor, as each floor can be determined by a user’s vertical coordinates.

Once implemented, the user will need to scan a marker to calibrate the application for navigation. How close the user’s camera should be to the barcode depends on the quality of the marker and the surface where it’s placed. In most cases, this should only be a few centimeters, but not too close to make it impossible for the barcode to be recognized.

Visual Markers for AR Indoor Navigation


The visual marker approach is great for relative cost-effectiveness. However, this does sacrifice some convenience for the end user. Having to scan a barcode to initiate each navigation session can be a little tedious for users. If you’re looking for greater convenience, you should explore a method involving beacons. With beacons, seamless positioning can be used without further action from the user. However, the visual marker approach can, in many cases, provide greater precision than beacons can. When properly calibrated, scanning a visual marker will give your device its exact coordinates.


Another problem to consider is scale. Every marker exists in a database used by the app. The more markers there are, the larger the dataset. The larger the dataset, the more processing time is needed to compare the captured image against that dataset to find a match. If the same app is used across multiple locations with thousands of markers, you have a few options to approach degraded performance.

One potential solution is to use different databases for each location. You can use the same marker style across multiple locations with this strategy. The user can select their location manually or may be able to obtain the location information from the local network.


QR codes can work for this purpose instead of a custom marker design. However, custom markers have better performance when used with ARKit and ARCore applications. The main reason for this is that custom markers allow the program to take into account the orientation of the camera to the marker. This enables greater accuracy than using data from a QR code alone.


For the marker system to work, the owners of the building will need to approve their placement and appearance. If there are strict design standards in a building, visual markers may be challenging to implement. This is closely related to the following considerations:

  • The more complexity a visual marker has, the easier it will be for the AR app to recognize it.
  • Every marker must be unique, otherwise, the program may mistake one marker for another.
  • Asymmetry will tell the program which side of the marker the user is on.


We believe that visual markers are one of the best solutions for indoor navigation available now. However, combining approaches together is also another potential solution for various use cases.

For example, let’s imagine that you want to create an indoor navigation system for an airport. You may run into some problems with visual markers. Launching into AR navigation requires the user to scan one of these markers. However, this might cause a problem if a marker is not immediately nearby.

If adding additional markers is not possible, VPS might be a better alternative. By using the environment around instead of markers, the user will be able to initiate AR navigation from anywhere in the building. If various parts of your building, like airport terminals, look very similar, then the system may need more information.

In this case, it may be wise to include beacons. The VPS system may be able to recognize the environment, but a nearby beacon may be able to help the system recognize where it is in the building.


In order to use beacons in a building, you’ll need to obtain permission from the building owner. If you don’t have permission to install and maintain beacons or visual markers, you’ll need to use an alternative technology like VPS that won’t be so accurate.

Drawing Routes for Indoor AR Navigation

Rendering the route is the easy part compared to the challenges of understanding the user’s position in a building. However, there are some important considerations to keep in mind. Using graph theory to create directions with lines or arrows, developers can create visuals to direct users to their destination.

One of the main obstacles to overcome is occlusion. The AR 3D layer content is placed on top of the real world on the user’s screen in most contexts. However, this could be confusing to look at if the lines are drawn on top of or through walls. It’s important to consider occlusion so that users can be guided to their destinations more naturally.

Rendering Route in AR Indoor Navigation App

Understanding size and distance is also a vital part of the process. Objects that are farther away appear smaller from the perspective of the user. The most important virtual object for this process is the destination pin. When the user can see the destination pin on their screen, it should appear larger when near and smaller when farther away.

Challenges Rendering Route in AR Indoor Navigation App

AR Navigation SDK Development

If you’re looking to create an SDK to monetize the finished navigation solution, the project becomes a bit more complicated. In addition to navigation, you will have to think about how to ensure platform compatibility. The bare minimum for compatibility would be Android and iOS. Ideally, you would also be able to support Flutter, React, Native Script, and other platforms.

To do this, much of your attention will need to be spent on writing documentation that will help your customers to conveniently adopt your solution. Other considerations include license keys and payment. In our experience, a project of this scale can take 1.5 to 2 years of development. However, you can start with a proof of concept to make sure that the idea is feasible. In addition, you’ll need experienced developers to work on the project. Creating an AR navigation SDK requires many years of expertise.

Future of Indoor Navigation: Increasing Accuracy and Detail

It’s important to set your expectations correctly when it comes to AR indoor navigation. As it stands right now, modern technology doesn’t have the precision to make indoor navigation work as it does in science fiction. However, that doesn’t have to be the case forever. New technologies and innovations are on the horizon, and the field will continue to advance. We should look forward to what lies ahead, but we must approach indoor navigation realistically if we are to succeed.


For example, Ultra-Wideband beacons will help provide more accurate coordinates for devices. However, they use more power than other technologies and their signals cannot penetrate walls. Once their APIs are made available, they may serve well in open indoor environments like airports, where beacons might be mounted on ceilings for better connectivity.


Room scanning technologies are already making it easier for indoor locations to be mapped in 3D space, meaning that it may only be a matter of time before more accessible visual positioning solutions are possible for businesses.

Top comments (0)