Integrating’ localization is now easier than ever!

Nick Stein, 

Indoor localization – easy to integrate


Integrating indoors localization is now easier than ever. It’s a matter of a few lines of codes and one single .jar file you have to include in your project’s classpath.

What’s your Plan?

There is a plan for every need:


Free users get one jar consisting of our secret indoor localization source and our own map rendering engine. This should get you started in a matter of minutes and allow you to explore our services.


If you are not happy with our map rendering engine and want to tweak or completely replace it with your own engine, this is the perfect plan for you. You get access to the complete source code of our map rendering engine and we provide you with the rest of our localization code as a jar.


Our Pro plan is for real pros. It allows you to customize our map rendering engine and all the functions provided by our IndoorsViewer whitelabel app – both provided as plain source code to you! IndoorsViewer adds several features to indoor localization, like routing, zone searching, map controls and more! Of course, this gives you access to our beautifully crafted user interface too. 🙂


This is next level kind of stuff. Here you get the benefit of the professional plan with the benefit of managing multiple sites and also have on site hosting as well.

Let’s find

As of our latest SDK release, integrating our service into your app is as easy as that: sample code

See? All you have to do to make this code work is sign up at and download our SDK (a single .jar), which you copy into your project’s libs/ folder.

If you don’t want to waste time creating a new project, you can get kick-started by downloading the MyFirstIndoorsApp sample, which is a completely configured project for Eclipse.


The beauty of this new approach is that the IndoorsSurfaceFragment manages the underlying localization process according to the Fragment’s lifecycle. So, if you remove the Fragment from your Activity or your app is closed by the user, the localization process will stop too.

Moreover, you do not have to display the map front and foremost as a standalone activity any longer. Instead, thanks to the flexibility of Fragments, you can show the user’s position wherever you want. Of course it makes sense to show a big part of the map, but especially on tablets it might be more reasonable to cover only half of the screen with the map – the rest could be used for guiding the user to new rooms, for example.

indoor localization

Make it yours

Despite the short base configuration mentioned above, we offer plenty of ways to customize the experience for your users. Most importantly, you can change the colors and shapes used to display the map and the associated metadata. This is done using the setSurfacePainterConfiguration method of IndoorsSurfaceFactory.Builder. Take a look at the SurfacePainterConfiguration class for more information about the different options.

One thing most people might want to configure from the beginning is the handling of errors, or more generally speaking, how the localization process interacts with the user. You can use the setUserInteractionListener method of IndoorsFactory.Builder for this.

If you don’t want to distribute the app with the map included right away, you might want to give setCloudBuildingId of IndoorsFactory.Builder a try. It automatically downloads the building with the given ID from our server and displays it. Of course, we handle the caching for you.

In some cases it might make sense to increase the rate at which the user’s position is pushed to the server – for example if you want to track employees across your office building in near-realtime. In order to do so, use setLocalizationParameters of IndoorsFactory.Builder.

Users who want to take full control of the localization and rendering process might want to use the old-fashioned way of accessing our service, which is still in use for our whitelabel IndoorsViewer app. You can take a deep dive into our code by purchasing the Pro plan.

That’s it for now. If there’s anything you’d like to know please don’t hesitate to ask questions in the comments or over at!