Indoor positioning ENGINE to build cutting edge applications

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 web-site 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 SDK

    Once the equipment is deployed, the map is uploaded, and both are interlinked, you can start developing your indoor navigation app. 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

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

iOS SDK

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 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 = @"https://api.navigine.com";

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) {
		NSLog(@"%zd",loadProcess);
} successBlock:^(NSDictionary *userInfo) {
		[navigineCore startNavigine];
} failBlock:^(NSError *error) {
		NSLog(@"%@",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)
        navigation.setMode(NavigationThread.MODE_NORMAL);
    }
    else
    {
      // Error downloading location
      // Try again later or contact technical support
      Log.d(TAG, "Error downloading location!");
    }
  }
}
(new LoadTask()).execute();
								
Show full code

REGISTER NOW AND START FOR FREE

Demo free

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

Support

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 info@navigine.com

Сontact our team via contact form.