Home - Navigine/Indoor-Navigation-iOS-Mobile-SDK-2.0 GitHub Wiki

Introduction

This page contains the formal description of Navigine-SDK 2.0 API: a list of classes and their public fields and methods which provide the following functionality:

  • automatically downloading location maps from the server;
  • indoor device navigation;
  • building routes between the two or more points within the location;
  • showing advertising notifications.

Navigine SDK classes with some description

The following API can be used for building your own iOS apps using our Navigation library.

Navigine Sdk

Class NCNavigineSdk is the main class of Navigation library. It contains a list of static functions for initializing library, and list of functions for getting access to the managers, each of which will provide different opportunities for working with SDK.

Managers

Class NCLocationListManager is used for working with the list of locations. It provides public function for adding and removing NCLocationListListener callback.

Class NCLocationManager is used for working with NCLocation. It loads location, keeps it up to date with the server version, and provides public functions for adding NCLocationListener callback and for setting current location.

Class NCNavigationManager is used for working with position. It provides public functions for starting and stopping log recording, and for adding NCPositionListener callback which will notify about new position.

Class NCRouteManager is used for working with routes and user position. It depends from NavigationManager and provides public functions for making route, setting target position, adding NCRouteListener callback which will provide updated paths up to your target point, etc.

Class NCZoneManager is used for working with the zones. It provides public function for adding NCZoneListener callback which will notify about entering or leaving zones.

Class NCNotificationManager is used for working with the notifications. It provides public function for adding NCNotificationListener callback which will notify after seeing the beacon with some notification.

Class NCMeasurementManager is used for working with the sensors and signals. It contains public functions for adding NCMeasurementListener which will provide the current signals and sensors data.

Class NCLocationEditManager is used for editing NCLocation elements and uploading changes to the server. It provides public functions for editing most of the transmitters, uploading changes, and adding NCLocationEditListener callback which will notify about location changes and uploading statuses.

Class NCResourceManager provides public functions for working with the images, user events and files, working with recorded logs.

Location elements

Class NCLocation contains location parameters: identifier, name, version, a list of sublocations, etc.

Class NCSublocation contains sublocation parameters: identifier, name, width, height, list of transmitters of all types, etc.

Class NCCategory contains category parameters: identifier, name and image id.

Class NCVenue contains venue parameters: identifier, name, major, phone, description, point, etc.

Class NCZone contains zone parameters: identifier, name, uuid, guid, alias, point, etc.

Transmitters

  • Class NCBeacon contains beacon parameters: name, major, minor, uuid, power, point, etc.

  • Class NCEddystone contains eddystone parameters: name, namespace id, instance id, power, point, etc.

  • Class NCWifi contains wifi parameters: name, uuid, point, etc.

Location View classes

Class NCLocationView is used for displaying the location and elements on it, for making routes, adding map elements and working with gestures.

Class NCCircleMapObject is used for displaying the circle objects on map with different styles.

Class NCPolyLineMapObject is used for displaying the poly-line objects on map with different styles.

Class NCIconMapObject is used for displaying the image objects on map with different styles.

Listeners

NCLocationListListener is used for notifying user about new NCLocationInfo list loaded from server.

NCLocationListener is used for notifying user after successfully setting the NCLocation.

NCPositionListener is used for notifying user after the NCPosition will be changed.

NCRouteListener is used for notifying user after the new NCRoutePaths will be calculated for the current target point.

NCZoneListener is used for notifying user after the NCZone will be entered or leaved.

NCNotificationListener is used for notifying user after the NCNotification will be handled from some beacon.

NCLocationEditListener is used for notifying user after the NCLocation will be changed or its changes will be uploaded.

NCMeasurementListener is used for notifying user after the new scanned sensors and signals will be arrived.

NCResourceListener is used for notifying when the image is loaded or failed.

NCResourceUploadListener is used for notifying when the file is loaded to the server or failed.

Secondary classes

Class NCNotification contains notification parameters: identifier, title, content and image id.

Class NCPosition contains position parameters: identifier, point, time, list of NCRoutePaths, etc.

Class NCSignalMeasurement contains signal parameters: identifier, type, rssi and distance.

Class NCSensorMeasurement contains sensor parameters: type and its values.

Class NCImage contains image parameters and could be used for getting Bitmap: data, width, height.

Class NCRoutePath contains route path parameters: length, list of NCRouteEvents, list of NCLocationPoints.

Class NCRouteEvent contains route event parameters: distance, value, route event type.

Class NCLocationPoint contains location point parameters: location id, sublocation id, point.

Class NCLocationInfo contains location info parameters: identifier, name, version.

Class NCBitmapRegionDecoder is used for getting UIImage from bytes array.

System requirements

Navigation library works on the following iOS devices:

  • iOS >= 10.0;
  • Support for Bluetooth 4.0 on the device;
  • CPU architecture is on of the following: arm, arm64, x86, x86_64.

Useful links and tutorials

Getting Started page provides a short guide for starting using Navigation library in your own applications.

NCLocationManager tutorial page explains in detail how to work with location.

NCAsyncRouteManager tutorial page is used for evaluating route path from point to point.

NCNavigationManager tutorial page for evaluating navigation and calculating users' position.