Book a meeting

Developers Hub | Indoor Positioning & Navigation Software

Developer hub by Navigine gives developers access to the indoor positioning and heatmaps software.

Get Started

3 steps to start

  1. 1.

    Add location

    As the first step, you need to create a digital map of the target location. Sign up for your account at Navigine website and create a new location. Using indoor map creator add sublocation and upload the floor plan.

  2. 2.

    Setup infrastructure

    In order to start implementation, you need to get approximately 10 Bluetooth beacons per 1000 sq m of your location. These beacons have to be evenly deployed and linked to places on the floor plan via indoor map maker.

  3. 3.

    Integrate indoor navigation SDK

    Once the equipment is deployed, the map is uploaded, and both are interlinked, you can start developing your indoor navigation apps. You can use Navigine SDK for iOS/Android platforms to add indoor navigation, push notifications, and tracking functions.

Create your indoor navigation app with Navigine tools using navigation softwares by Navigine

Our easy-to-use SDK and API empower developers to integrate indoor navigation, push notifications and motion analytics functions into their location-aware apps in a matter of days. Take advantage of the high-accuracy positioning capabilities for your iOS and Android apps.


Our platform is designed to support development of powerful iOS applications leveraging iBeacon technology

Android SDK

Enhance your Android app with state-of-the-art indoor positioning solutions.

Easy integrations and implementation, open source API and great SDK

Read more in Dev Community

Get Started

// your personal security key in the profile
NSString *userHash = @"0000-0000-0000-0000";

// your API server
NSString *server = @"";

NavigineCore *navigineCore = [[NavigineCore alloc] initWithUserHash:userHash server:server];

 // location id from web site
NSInteger locationId = 1;
BOOL forced = YES;

// If YES, the content data would be loaded even if the same version has been downloaded already earlier.
// If NO, the download process compares the current downloaded version with the last version on the server.
// If server version equals to the current downloaded version, the re-downloading is not done.

[navigineCore downloadLocationById:locationId forceReload:forced processBlock:^(NSInteger loadProcess) {
} successBlock:^(NSDictionary *userInfo) {
		[navigineCore startNavigine];
} failBlock:^(NSError *error) {
Show full code

// Initializing Navigation library (USER_HASH is your personal security key)
if (!NavigineSDK.initialize(getApplicationContext(), USER_HASH, null)) Toast.makeText(this, "Unable to initialize Navigation library!", Toast.LENGTH_LONG).show();

// Download a location archive from the server
class LoadTask extends AsyncTask<Void, Void, Boolean>
  @Override protected Boolean doInBackground(Void... params)
    return NavigineSDK.loadLocation(LOCATION_ID, 30) ?
           Boolean.TRUE : Boolean.FALSE;
  @Override protected void onPostExecute(Boolean result)
    if (result.booleanValue())
      // Location is successully loaded
      // Do whatever you want here, e.g. you can start navigation
      NavigationThread navigation = NavigineSDK.getNavigation();
      if (navigation != null)
      // Error downloading location
      // Try again later or contact technical support
      Log.d(TAG, "Error downloading location!");
(new LoadTask()).execute();
Show full code


Demo free

  • 1 location
  • Unlimited number of users
  • Full access to all Navigine tools
Get Started


We provide 24/7 technical support to help you anytime anywhere.

Feel free to ask any questions or leave your comments.

Please send us your question to

Сontact our team via contact form.

Leave a request

Get answers about our products and solutions or send us info about your task. You can also take a look at the approximate pricing of implemented cases.