infsoft developer hub

Welcome to the infsoft developer hub. You'll find comprehensive guides and documentation to help you start working with the infsoft LocAware platform® as quickly as possible, as well as support if you get stuck.

Suggest Edits

iOS Maps Library

 

To make it easier for you to add indoor mapping capabilities to your application, the infsoft SDK includes an external maps library, com.infsoft.ios.maps. The classes of the iOS Maps Library offer built-in downloading, rendering, and caching of Maps tiles, as well as a variety of display options and controls. more

Suggest Edits

GMDebugFlag

@interface GMDebugFlag : NSObject

 
+(void)setDebugFlag:(BOOL)on;
+(BOOL)isDebugFlag;
Suggest Edits

UID

@interface UID : NSObject

 
-(NSString*) toString;

result A string representing the UID.

Suggest Edits

MapPin

@interface MapPin : NSObject

 
@property double latitude;

Indicating the location of the pin.

@property double longitude;

Indicating the location of the pin.

@property int level;

Indicating the location of the pin.

@property id<NSObject> tag;

Tag of the pin.

Suggest Edits

GeoPoint

@interface GeoPoint : NSObject

 
@property double latitude;

Indicating the location of the point.

@property double longitude;

Indicating the location of the point.

@property int level;

Indicating the location of the point.

-(id)initWith:(double)lat longitude:(double)lon level:(int)lev;

initWith:longitude:level: Returns an object of GeoPoint.
lat This defines the latitude of the GeoPoint.
lon This defines the longitude of the GeoPoint.
lev This defines the level of the GeoPoint.
result A reference to a GeoPoint object.

Suggest Edits

Projection

@interface Projection : NSObject

 
-(CGPoint) toPixels:(GeoPoint*)geoPoint;

toPixels: Returns an object of CGPoint.
geoPoint Defines the GeoPoint which should be represented as CGPoint.
result A reference to a CGPoint object.

-(CGPoint) toPixels:(double)lat longitude:(double)lon;

toPixels:longitude: Returns an object of CGPoint.
lat Defines the latitude which should be represented within the CGPoint.
lon Defines the longitude which should be represented within the CGPoint.
result A reference to a CGPoint object.

-(GeoPoint*)fromPixels:(CGPoint)point;

formPixels: Returns an object of GeoPoint.
point Defines the CGPoint which should be represented as a GeoPoint.
result A reference to a CGPoint object.

Suggest Edits

MapLevel

@interface MapLevel : NSObject

 
@property NSString* name;

Representing the name of the MapLevel.

@property int level;

Representing the level of the MapLevel.

Suggest Edits

MapAnnotation

@interface MapAnnotation : NSObject

 
@property double latitude;

Defines the latitude of the MapAnnotation.

@property double longitude;

Defines the longitude of the MapAnnotation.

@property int level;

Defines the level of the MapAnnotation.

@property id<NSObject> tag;

Defines the tag of the MapAnnotation.

@property NSString* headline;

Defines the headline of the MapAnnotation.

@property NSString* text;

Defines the describing text of the MapAnnotation.

Suggest Edits

POIInfo

@interface POIInfo : NSObject

 
@property NSMutableDictionary* propertiesByKey;

Defines a dictionary which includes all properties of the POIInfo.

@property UID* uid;

Defines the UID of the POIInfo.

@property double latitude;

Defines the latitude of the POIInfo.

@property double longitude;

Defines the longitude of the POIInfo.

@property int level;

Defines the level of the POIInfo.

Suggest Edits

MapBuilding

@interface MapBuilding : NSObject

 
@property UID* uid;

Defines the UID of the MapBuilding.

@property NSMutableArray* levels;

Defines the levels of the MapBuilding.

@property NSMutableDictionary* properties;

Includes all properties of the MapBuilding.

Suggest Edits

MyLocation

@interface MyLocation : GeoPoint

 
@property double accuracy;

Represents the accuracy of MyLocation.

@property double orientationInDegrees;

Represents the orientation in degrees of MyLocation.

@property BOOL hasOrientation;

Shows if MyLocation has orientation.

Suggest Edits

MapDrawOptions

@interface MapDrawOptions : NSObject

 
@property BOOL routeDrawFloorChanges;

If this is NO, the route will not draw floor changes.

@property BOOL routeDrawDestFlag;

f this is NO, the route will not draw a flag at destination.

@property UIColor* routeColor;

Represents the route color of the route.

@property UIColor* routeHightlightedColor;

Represents the route color of the highlighted route.

Suggest Edits

OnPOIClickListener

@protocol OnPOIClickListener <NSObject>

 

This gets called when a POI is clicked.

-(void)onPOIClick:(POIInfo*)poiInfo;

onPOIClick: This is the handler for clicking POIs. Information is shown.
poiInfo This is a reference to a POIInfo object. This should coincide with the POI which was clicked.

Suggest Edits

OnAnnotationClickListener

@protocol OnAnnotationClickListener <NSObject>

 

This gets called when an annotation is clicked.

-(void)onAnnotationClick:(id)tag;

onAnnotationClick: This is the handler for clicking annotations. Information is shown.
tag This should coincide with the annotation which was clicked.

Suggest Edits

OfflineMaps

@interface OfflineMaps : NSObject

 
@property NSString* apiKey;
@property int maxZoomLevel;
@property id<OfflineMapsListener> delegate;
-(void)download;
-(BOOL)load;
-(UIImage*)getImage:(int)levelOfDetails tileX:(int)tileX tileY:(int)tileY level:(int)level;
Suggest Edits

OfflineMapsListener

@protocol OfflineMapsListener <NSObject>

 
-(void)onOfflineMapsDownloaded:(id)sender okay:(BOOL)okay;
-(void)onOfflineMapsDownload:(id)sender percentage:(float)percentage;
Suggest Edits

MapTrackingMode

enum MapTrackingMode

 
typedef enum{    
	MapTrackingModeNone,
	MapTrackingModePosition,    
	MapTrackingModePositionAndCompass
}MapTrackingMode;
Suggest Edits

MapView

@interface MapView : UIView

 
@property NSMutableArray* overlays;

Includes all overlays that are possible for the MapView.

@property NSString* apiKey;

Represents the apiKey of the MapView as string.

@property NSMutableArray* serverOverlays;
@property id<OnPOIClickListener> onPOIClickListener;

Listener for clicks on POIs.

@property id<OnAnnotationClickListener> onAnnotationClickListener;

Listener for clicks on annotations.

-(void)animateTo:(GeoPoint*)geoPoint zoomLevel:(int)zoomLevel;

animateTo:zoomlevel:
geoPoint This defines the GeoPoint, which should be animated to.
zoomLevel This defines the zoom level for the operation

-(void)animateTo:(GeoPoint*)geoPoint zoomLevel:(int)zoomLevel animated:(BOOL)animated;

animateTo:zoomlevel:
geoPoint This defines the GeoPoint, which should be animated to.
zoomLevel This defines the zoom level for the operation

-(BOOL)animateToMyLocation:(MyLocation*)myLocation;

animateToMyLocation:
myLocation This defines the location, which should be animated to.

-(void)animateUse3D:(BOOL)use;

animateUse3D:
use If this is no, 3D is not used.

-(void)setServerTileExtURL:(NSString*)val;
-(NSString*)getServerTileExtURL;
-(MapBuilding*)getBuilding;

getBuilding
result A reference to a MapBuilding object.

-(int)getLevel;

getLevel
result Integer to indicate the level.

-(GeoPoint*)getMapCenter;

getMapCenter
result A reference to a GeoPoint object.

-(MyLocation*)getMyLocation;

getMyLocation
result A reference to a MyLocation object.

-(Projection*)getProjection;

getProjection
result A reference to a Projection object.

-(float)getRotationInDegrees;

getMyLocation
result Float to indicate the rotation.

-(NSString*)getRouteInfo;

getRouteInfo
result Information about the route as string.

-(int)getZoomLevel;

getZoomLevel
result Current zoom level.

-(float)getHeight3D;

getHeight3D
result Current height.

-(BOOL)isUse3D;

isUse3D
result If this is NO, 3D is not used at the moment.

-(MapDrawOptions*)getDrawOptions;

getDrawOptions
result Returns the currently used MapDrawOption.

-(void)setDisplayButton3D:(BOOL)on;

setDisplayButton3D:
on If this is No, the 3D button is not shown.

-(void)setDisplayButtonLevelWheel:(BOOL)on;

setDisplayButtonLevelWheel:
on If this is No, the button level wheel is not shown.

-(void)setDisplayButtonMyPosition:(BOOL)on;

setDisplayButtonMyPosition:
on If this is No, the button for my position is not shown.

-(void)setDisplayPOIs:(BOOL)on;

setDisplayPOIs:
on If this is No, POIs are not shown.

-(void)setLevel:(int)level;

setLevel:
level This is the current level.

-(void)setMyLocation:(MyLocation*)myLocation;

setMyLocation:
myLocation This is the my current location.

-(void)setRoute:(NSString*)xmlData;

setRoute:
xmlData This is data for the route in xml.

-(void)setHighlightedRoutePart:(NSString*)xmlData;

setHighlightedRoutePart:
xmlData This is data for the highlighted routepart in xml.

-(void)setRouteInfo:(NSString*)routeInfo;

setRouteInfo:
routeInfo This is information about the route.

-(void)setValidDisplayRect:(double)minLatitude minLongitude:(double)minLongitudemaxLatitude:(double)maxLatitude  maxLongitude:(double)maxLongitude;

setValidDisplayRect:minlongitude:maxLatitude:maxlongitude:
minLatitude This is the minimum latitude for the displayed rectangle.
minLongitude This is the minimum longitude for the displayed rectangle.
maxLatitude This is the maximum latitude for the displayed rectangle.
maxLongitude This is the maximum longitude for the displayed rectangle.

-(void)setMinZoomLevel:(int)zoomLevel;

setMinZoomLevel:
zoomLevel This is the lowest possible zoom level for the MapView.

-(void)setMaxZoomLevel:(int)zoomLevel;

setMaxZoomLevel:
zoomLevel This is the highest possible zoom level for the MapView.

-(BOOL)isDisplayButton3D;

isDisplayButton3D
result If this returns NO, the 3Dbutton is not shown.

-(BOOL)isDisplayButtonLevelWheel;

isDisplayButtonLevelWheel
result If this returns NO, the button level wheel is not shown.

-(BOOL)isDisplayButtonMyPosition;

isDisplayButtonMyPosition
result If this returns NO, the button for my position is not shown.

-(BOOL)isDisplayPOIs;

isDisplayPOIs
result If this returns NO, the POIs are not shown.

-(void)setTrackingMode:(MapTrackingMode)trackingMode;

setTrackingMode:
trackingMode This is the trackingMode, which is getting set for the Map.

-(MapTrackingMode)getTrackingMode;

result Returns the current tracking mode.

-(void)setPin:(MapPin*)pin;

setPin:
pin This is the pin, which is getting set on the Map.

-(MapPin*)getPin;

getPin
result Returns the MapPin.

-(void)setMapAnnotation:(MapAnnotation*)annotation;

setMapAnnotation:
annotation This is the annotation, which is getting set on the Map.

-(MapAnnotation*)getMapAnnotation;

getMapAnnotation
result Returns the annotation.

-(void)updateOverlay;

Refreshes overlay

-(void)cleanUp;

Cleans up.

-(void)setOfflineMaps:(OfflineMaps*)offlineMaps;
Suggest Edits

Overlay

@interface Overlay : NSObject

 

Overlay for MapView.

-(void)onDraw:(CGContextRef)context mapView:(MapView*)mapView useCache:(BOOL)useCache;

onDraw:mapview:useCache:
context Context for map.
mapView MapView for which the overlay gets set.
useCache If this is NO, no caching will be use (can be slower then).

-(BOOL)onSingleTap:(CGPoint)point mapView:(MapView*)mapView;

onSingleTap:mapview:
point the point, where the user tapped.
mapView The map on which the user tapped.
result If this returns NO, something is wrong

Suggest Edits

iOS Locator Library

 

To make it easier for you to add indoor positioning capabilities to your application, the infsoft SDK includes an external locator library, com.infsoft.ios.locator. The classes of the iOS Locator Library offer built-in offline client-side indoor positioning based on Bluetooth Beacons and internal smartphone sensors. more

Suggest Edits

ILLocation

@interface ILLocation : NSObject

 
@property double latitude;

Indicating the latitude of the object.

@property double longitude;

Indicating the longitude of the object.

@property int level;

Indicating the level of the object.

@property float accuracyInMeters;

Indicating the accuracy in metres of the location.

@property int posSourceKind;

Indicating the poistion source kind of the object.

@property double orientationInDegree;

Indicating the orientation of the object in degree.

@property BOOL valid;

If this is NO, the location is not valid.

@property NSMutableArray* extra;

Contains extra stuff for the location.

Suggest Edits

ILLocationManagerState

enum ILLocationManagerState

 
typedef enum{    
  ILLocationManagerState_NotInit,    
  ILLocationManagerState_StartingUp,    
  ILLocationManagerState_BeaconsNotConfigured,    		
  ILLocationManagerState_Running
}ILLocationManagerState;
Suggest Edits

ILLocationListener

@protocol ILLocationListener <NSObject>

 

This gets called when a location changes.

-(void)onLocationChanged:(ILLocation*)location;

onLocationChanged:
location This is the new location.

Suggest Edits

ILLocationServiceManager

@interface ILLocationServiceManager : NSObject

 
@property NSString* apiKey;
+(ILLocationServiceManager*)getInstance;

Returns instance of LocationServiceManager.

+(ILLocationServiceManager*)getInstance:(int)flags;
Suggest Edits

ILLocationManager

@interface ILLocationManager : NSObject

 
-(void)requestLocationUpdates:(id<ILLocationListener>)locationListener minTime:(long)minTime minDistance:(float)minDistance;

requestLocationUpdates:mintime:minDistance:
locationListener Listener for location changes.
minTime Lowest possible time.
minDistance Lowest ppossible distance.

-(void)removeLocationUpdates:(id<ILLocationListener>)locationListener;

removeLocationUpdates:
locationListener Listener for location changes.

-(ILLocation*)getLastKnownLocation;

getLastKnownLocation
Returns the location which was the last to be known.

+(ILLocationManagerState) getState;
Suggest Edits

ILLocationManagerState

enum ILLocationManagerState

 
typedef enum{    
  ILLocationManagerState_NotInit,    
  ILLocationManagerState_StartingUp,    
  ILLocationManagerState_BeaconsNotConfigured,    		
  ILLocationManagerState_Running
}ILLocationManagerState;
Suggest Edits

ILLocationServiceManager

@interface ILLocationServiceManager : NSObject

 
@property NSString* apiKey;
+(ILLocationServiceManager*)getInstance;
+(ILLocationServiceManager*)getInstance:(int)flags;
Suggest Edits

ILLocationManagerState

enum ILLocationManagerState

 
typedef enum{    
  ILLocationManagerState_NotInit,    
  ILLocationManagerState_StartingUp,    
  ILLocationManagerState_BeaconsNotConfigured,    		
  ILLocationManagerState_Running
}ILLocationManagerState;
Suggest Edits

iOS Routes Library

 

To make it easier for you to add indoor routing capabilities to your application, the infsoft SDK includes an external routing library, com.infsoft.ios.routes. The classes of the iOS Routes Library offer built-in indoor routing and routing information functionality. more

Suggest Edits

RouteProviderListener

@protocol RouteProviderListener <NSObject>

 
-(void)onRouteCalced:(id)routeProvider successfully:(BOOL)successfully;

onRouteCalced:successfully: When route calculating is done, this gets called.
routeProvider This is a reference to a routeProvider object.
successfully If this is NO, there should be some kind of error handling.

Suggest Edits

RouteInfoItemKind

enum RouteInfoItemKind

 
typedef enum {    
  RouteInfoItemKindWarning,    
  RouteInfoItemKindWayDirection,    
  RouteInfoItemKindInfo}
RouteInfoItemKind;

Includes all possible kinds of info items of a route.
RouteInfoItemKindWarning Represents a warning.
RouteInfoItemKindWayDirection Represents a way direction.
RouteInfoItemKindInfo Represents a information about the route.

Suggest Edits

RouteGpsPos

@interface RouteGpsPos : NSObject

 
@property double latitude;

Indicates the latitude of the RouteGpsPos.

@property double longitude;

Indicates the longitude of the RouteGpsPos.

@property int level;

Indicates the level of the RouteGpsPos.

Suggest Edits

RouteInfoItem

@interface RouteInfoItem : NSObject

 
@property RouteInfoItemKind kind;

Indicates the kind of information

@property NSString* text;

Includes the text of the information.

Suggest Edits

RoutePointLevelChangeKind

enum RoutePointLevelChangeKind

 
typedef enum {    
  RoutePointLevelChangeKindNone,    
  RoutePointLevelChangeKindUp,    
  RoutePointLevelChangeKindDown
}RoutePointLevelChangeKind;
Suggest Edits

RouteUID

@interface RouteUID : NSObject

 
-(id)initFromString:(NSString*)str;

initFromString: Inits RouteUID from string.
str This is the string representating the UID for the route.
result Returns a RouteUID.

-(id)initRandom;

initRandom: Inits a random RouteUID.
Returns a RouteUID.

Suggest Edits

RouteLandmarkPOI

@interface RouteLandmarkPOI : NSObject

 
@property double longitude;

Defines the longitude of the RouteLandmarkPOI.

@property double latitude;

Defines the latitude of the RouteLandmarkPOI.

@property int level;

Defines the level of the RouteLandmarkPOI.

@property NSString* displayName;

Defines the displayName of the RouteLandmarkPOI.

@property NSString* tag;

Defines the tag of the RouteLandmarkPOI.

@property RouteUID* uid;

Defines the RouteUID of the RouteLandmarkPOI.

@property NSMutableArray* linkedLandmarkPOIs;
@property id obj;
Suggest Edits

RoutePoint

@interface RoutePoint : NSObject

 
@property double latitude;

Defines the latitude of the RoutePoint.

@property double longitude;

Defines the longitude of the RoutePoint.

@property int level;

Defines the level of the RoutePoint.

@property RoutePoint* prevRoutePoint;

Defines the previous RoutPoint to the current RoutePoint.

@property RoutePoint* nextRoutePoint;

Defines the next RoutPoint to the current RoutePoint.

@property double distanceToStartInMeters;

Defines the distance to start in meters from the RoutePoint.

@property NSMutableDictionary* propertiesByKey;

Defines all properties of the RoutePoint

@property RoutePointLevelChangeKind levelChangeKind;

Defines the kind of level change action of the RoutePoint.

@property double relPosOnWay;

Defines the relative position of the RoutePoint.

@property BOOL stop;
@property int stopIndex;
-(NSString*)toXml;

Generates xml for this RoutePoint.

Suggest Edits

RoutePart

@interface RoutePart : NSObject

 
@property RoutePart* nextRoutePart;

This is the next RoutePart for the current RoutePart.

@property RoutePart* prevRoutePart;

This is the previous RoutePart for the current RoutePart.

@property int routePartInd;

This is the index of the current RoutePart.

@property int level;

This is the level of the current RoutePart.

@property RouteLandmarkPOI* destLinkedLandmarkPOI;

This is the destination linked landmark for the current RoutePart.

@property RouteLandmarkPOI* startLinkedLandmarkPOI;

This is the start linked landmark for the current RoutePart.

@property NSMutableArray* routePoints;

This are all routePoints for the current RoutePart.

-(RoutePoint*)getLastPoint;

Returns last RoutePoint.

-(RoutePoint*)getFirstPoint;

Returns first RoutePoint

-(NSString*)toXml;

Returns xml for current RoutePoint.

-(double)getDistanceTo:(double)latitude longitude:(double)longitude level:(int)level;

getDistanceTo:longitude:level:
latitude Defines latitude for wanted point.
longitude Defines longitude for wanted point.
level Defines level for wanted point.
Returns distance to defined point.

-(double)getOrientationAt:(double)latitude longitude:(double)longitude level:(int)level;

getOrientationAt:longitude:level:
latitude Defines latitude for point.
longitude Defines longitude for point.
level Defines level for point.
Returns orientation in degree at specified point.

-(RouteGpsPos*)getNearestPointOnLine:(double)latitude longitude:(double)longitude level:(int)level;
Suggest Edits

RoutePoints

@interface RoutePoints : NSObject

 
@property NSMutableArray* items;

Contains RoutePoints.

-(NSString*)toXml;

Returns xml of RoutePoints.

Suggest Edits

RouteProvider

@interface RouteProvider : NSObject

 
@property NSString* apiKey;

The apiKey for the RouteProvider.

@property id tag;

The tag of the RouteProvider.

@property NSMutableArray* landmarkPOIs;

The landmarkPOIs for the RouteProvider.

@property NSMutableArray* contexts;

The contexts for the RouteProvider.

@property BOOL allowDefaultContext;

If this is NO, the routeProvider doesnt give default context.

-(BOOL)calcRouteAsync:(id<RouteProviderListener>)listener gpsPosCollection:(NSMutableArray*)gpsPosCollection;

calcRouteAsync:gpsposcollection:
param listener RouteProviderListener object.
param gpsPosCollection GPs positions.
result If this returns NO, error handling should be done.

-(BOOL)calcRouteAsync:(id<RouteProviderListener>)listener startLatitude:
(double)startLatitude startLongitude:(double)startLongitude startLevel:(int)startLevel destLatitude:(double)destLatitude destLongitude:(double)destLongitude destLevel:(int)destLevel;

calcRouteAsync:gpsposcollection:
listener Defines latitude for point.
startLatitude This is the latitude of the start.
startLongitude This is the longitude of the start.
startLevel This is the level of the start.
destLatitude This is the latitude of the destination.
destLongitude This is the longitude of the destination.
destLevel This is the level of the destination.
result If this returns NO, error handling should be done.

-(RoutePoints*)getRoutePoints;

Returns all routePoints.

-(double)getAngleeInDegreeAt:(double)latitude longitude:(double)longitude level:(int)level;

getAngleeInDegreeAt:longitude:level:
latitude Defines latitude for point.
longitude Defines longitude for point.
level Defines level for point.
Returns angle in degree at specified point.

-(float)getDistanceToRoute:(double)latitude longitude:(double)longitude level:(int)level;

getDistanceToRoute:longitude:level:
latitude Defines latitude for point.
longitude Defines longitude for point.
level Defines level for point.
Returns distance to route from specified point.

Suggest Edits

RouteInfoProvider

@interface RouteInfoProvider : NSObject

 
@property RouteProvider* routeProvider;

routeProvider

-(RouteInfoItem*)getInfo:(double)latitude longitude:(double)longitude level:(int)level destintionName:(NSString*)destintionName;

getInfo:longitude:level:destintionname:
latitude Defines latitude for point.
longitude Defines longitude for point.
level Defines level for point.
destintionName Defines name for destination.
Returns distance to route from specified point.

Suggest Edits

RouteParts

@interface RouteParts : NSObject

 
@property NSMutableArray* items;

All RouteParts.

-(void)initWithRoutePoints:(RoutePoints*)routePoints;

initWithRoutePoints:
routePoints This defines the RoutePoints which are on the route.

-(RoutePart*)getNearestRoutePart:(double)latitude longitude:(double)longitude level:(int)level;

getNearestRoutePart:longitude:level:
latitude This defines the latitude for the point.
longitude This defines the longitude for the point.
level This defines the level for the point.
result Returns the nearest RoutePoint from the specified point

-(double)getDistanceTo:(double)latitude longitude:(double)longitude level:(int)level;

getDistanceTo:longitude:level:
latitude This defines the latitude for the point.
longitude This defines the longitude for the point.
level This defines the level for the point.
result Returns the distance to the specified point.

Suggest Edits

iOS GeoItems Library

 

To make it easier for you to add geo items capabilities to your application, the infsoft SDK includes an external geo items library, com.infsoft.ios.geoitems. The classes of the iOS GeoItems Library offer built-in access and searching for geo items (e.g. shops, restaurants, rooms, toilets …) functionality. more

Suggest Edits

GIDebugFlag

@interface GIDebugFlag : NSObject

 
+(void)setDebugFlag:(BOOL)on;

Set debug output to true or false. If true debug information are written to the console.

+(BOOL)isDebugFlag;

Get debug information flag.

Suggest Edits

GIUID

@interface GIUID : NSObject <NSCopying>

 
-(NSString*) toString;

Get's a string representing the GIUID.

-(id)initFromString:(NSString*)str;

Returns a GIUID based on the specified string.

Suggest Edits

GIGeoPoint

@interface GIGeoPoint : NSObject

 
@property double latitude;

Indicating the latitude of the GIGeoPoint.

@property double longitude;

Indicating the longitude of the GIGeoPoint.

@property int level;

Indicating the level of the GIGeoPoint.

-(double)getDistanceInMeters:(GIGeoPoint*)other;

Returns the distance between the 2 points.

Suggest Edits

GIGeoItem

@interface GIGeoItem : NSObject

 
@property GIUID* uid;

Indicating the uid of the GIGeoItem.

@property int locationID;

Indicating the locationID of the GIGeoItem.

@property NSString* kind;

Kind of GIGeoItem

-(void)addProperty:(NSString*)key value:(NSString*)val;

Adds the property with the key and val to the GIGeoItem

-(NSString*)getProperty:(NSString*)key;

Returns the value as string.

-(BOOL)hasProptery:(NSString*)key;

If this is NO, there is no such key.

-(NSArray*)allPropertyKeys;

Returns all keys

Suggest Edits

GIAreaItem

@interface GIAreaItem : GIGeoItem

 
@property NSMutableArray* points;

Contains all GIGeoPosItem for this area.

@property int level;

Indicating the level of the area.

-(BOOL)isInside:(GIGeoPoint*)test;

If this is NO, the point is not inside the area.

-(GIGeoPoint*)getCenter;

Gets the center of the area.

Suggest Edits

GIGeoItemProviderDelegate

@protocol GIGeoItemProviderDelegate <NSObject>

 

This gets called when GIGeoItems change.

-(void)onGeoItemsChanged:(id)sender geoItems:(NSMutableArray*)geoItems;

geoItems Holds all GIGeoItems

-(void)onFinished:(id)sender;
-(void)onError:(id)sender;
Suggest Edits

GIGeoItemProvider

@interface GIGeoItemProvider : NSObject

 
@property NSString* kind;

Indicating the kind of the GIGeoItemProvider.

@property NSMutableSet* validLevelOfDetails;

Indicating all valid level of details for the GIGeoItemProvider.

@property NSString* apiKey;

Indicating the apiKey of the GIGeoItemProvider.

@property NSMutableArray* geoItems;

Containing all GeoItems of the GIGeoItemProvider.

@property NSTimeInterval timeout;
@property NSTimeInterval cacheTimout;
@property id<GIGeoItemProviderDelegate> delegate;

Indicating the delegate of the GIGeoItemProvider.

@property NSString* cryptoKey;

Indicating the cryptoKey of the GIGeoItemProvider.

@property BOOL useCompression;
@property int loadedRevision;
-(void)start;
-(void)start:(double)lat1 longitude1:(double)lon1 latitude2:(double)lat2 longitude2:(double)lon2;

function start:longitude1:latitude2:longitude2

lat1 Latitude 1 for GIGeoItemProvider.
lon1 Longitude 1 for GIGeoItemProvider
lat2 Latitude 2 for GIGeoItemProvider
lon2 Longitude 2 for GIGeoItemProvider.

-(void)start:(double)lat1 longitude1:(double)lon1 latitude2:(double)lat2 longitude2:(double)lon2;
-(void)stop;
Suggest Edits

GIGeoItems

interface GIGeoItems : NSObject

 
@property NSMutableArray* items;

Containing all items of the GIGeoItems.

-(void)loadFromFile:(NSString*)fileName;

loadFromFile
fileName Name of file to load the GIGeoItems from.

-(void)storeToFile:(NSString*)fileName;

storeToFile
fileName Name of file to store the GIGeoItems in.

Suggest Edits

GISorter

@interface GISorter : NSObject

 
-(void)clear;
-(void)addCompareKey:(NSString*)key;

addCompareKey:
key Key which should be considered aswell.

-(void)sortArray:(NSMutableArray*)items;

sortArray:
items Items which should be considered aswell.

Suggest Edits

GISearchMethode

 
typedef enum {    
  GISearchMethode_Full,    
  GISearchMethode_Start
} GISearchMethode;
Suggest Edits

GISearch

@interface GISearch : NSObject

 
@property GISearchMethode methode;
-(void)clear;
-(void)addCompareKey:(NSString*)key;

addCompareKey
key Key which should be considered aswell.

-(NSMutableArray*)createResult:(NSMutableArray*)source search:(NSString*)search;

createResult:search:
source Source to search from
search Criteria to search
result Returns resut of found GIGeoPoints

-(BOOL)fullfillsFilter:(GIGeoItem*)geoItem filter:(NSString*)filter;

fullfillsFilter:filter:
geoItem Some GIGeoItem
filter Some filter
result If this is NO, some error handling should be done

-(void)addMarker:(GIGeoItem*)item search:(NSString*)search key:(NSString*)key property:(NSString*)property val:(NSString*)val;
-(void)addAlias:(NSString*)val replacement:(NSString*)replacement;
Suggest Edits

Android Maps Library

 

To make it easier for you to add indoor mapping capabilities to your application, the infsoft SDK includes an external maps library, com.infsoft.android.maps. The classes of the Android Maps Library offer built-in downloading, rendering and caching of map tiles, as well as a variety of display options and controls. more

Suggest Edits

GeoPoint

com.infsoft.android.maps

 

public class GeoPoint
extends java.lang.Object

An immutable class representing a pair of latitude, longitude and level, stored as double numbers.

public GeoPoint(double latitude,
        double longitude)

Constructs a GeoPoint with the given latitude and longitude, measured in decimal degrees.

public GeoPoint(double latitude,
        double longitude,
        int level)

Constructs a GeoPoint with the given latitude and longitude, measured in decimal degrees.

public GeoPoint(java.lang.String val)
public double getLatitude()

Returns the latitude of this GeoPoint in decimal degrees.

public double getLongitude()

Returns the longitude of this GeoPoint in decimal degrees.

public int getLevel()

Returns the level of this GeoPoint as an integer (0 - indicates ground level, 1 - indicates 1st floor, ...).

public double getDistanceInMeters(GeoPoint other)
public java.lang.String toString()
Suggest Edits

MapAnnotation

com.infsoft.android.maps

 

public class MapAnnotation
extends java.lang.Object

public MapAnnotation(double latitude,
             double longitude,
             int level,
             java.lang.String headline,
             java.lang.String text)
public MapAnnotation(double latitude,
             double longitude,
             int level,
             java.lang.String headline,
             java.lang.String text,
             java.lang.Object tag)
public java.lang.String getHeadline()
public java.lang.String getText()
public double getLatitude()
public double getLongitude()
public int getLevel()
public java.lang.Object getTag()
Suggest Edits

MapBuilding

com.infsoft.android.maps

 

public class MapBuilding
extends java.lang.Object

public int getLocationID()
public java.util.ArrayList<MapLevel> getLevels()
public boolean hasProperty(java.lang.String key)
public java.lang.String getProperty(java.lang.String key)
public void addProperty(java.lang.String key,
               java.lang.String val)
Suggest Edits

MapDrawOptions

com.infsoft.android.maps

 

public class MapDrawOptions
extends java.lang.Object

public boolean routeDrawFloorChanges
public boolean routeDrawDestFlag
public int routeColor
public int routeHightlightedColor
public MapDrawOptions()
Suggest Edits

MapLevel

com.infsoft.android.maps

 

public class MapLevel
extends java.lang.Object

public int getLevel()
public java.lang.String getName()
Suggest Edits

MapPin

com.infsoft.android.maps

 

public class MapPin
extends java.lang.Object

public MapPin(double latitude,
      double longitude,
      int level)
public MapPin(double latitude,
      double longitude,
      int level,
      java.lang.Object tag)
public double getLatitude()
public double getLongitude()
public int getLevel()
public java.lang.Object getTag()
Suggest Edits

MapPinOverlay

com.infsoft.android.maps

 

public class MapPinOverlay
extends Overlay

public MapPinOverlay(MapView mapView)
public java.lang.String getLayerName()
public void onDraw(Canvas c,
          MapView mapView,
          boolean useCache)
public void onDrawFinished(Canvas c,
                  MapView mapView,
                  boolean useCache)
Suggest Edits

MapTrackingMode

com.infsoft.android.maps

 

public enum MapTrackingMode
extends java.lang.Enum<MapTrackingMode>

public static final MapTrackingMode None
public static final MapTrackingMode Position
public static final MapTrackingMode PositionAndCompass
Suggest Edits

MapView

com.infsoft.android.maps

 

public class MapView
extends View
implements com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas<java.lang.Object>

A View which displays a map (with data obtained from the infsoft Maps service). When focused, it will capture keypresses and touch gestures to pan zoom, rotate and skew the map. It can also be controlled programmatically and can draw a number of Overlays on top of the map.

The MapView is also a View, with LayoutParameters allowing you to attach views either to a specific pixel offset, or to a specific latitude/longitude pair.

In order to display infsoft Maps data in a MapView, you must register with the infsoft Maps service and obtain a infsoft Maps API Key. For information about how to get a infsoft Maps API Key, see Obtaining a infsoft Maps API Key.

Once you have a infsoft Maps API Key, you need to reference it from a special attribute -- android:apiKey -- in the infsoft MapView element in the XML layout. If you are instantiating a infsoft MapView directly from code, you should pass the Maps API Key in the MapView constructor.

public MapView(Context context,
       java.lang.String apiKey)
public MapView(Context context,
       AttributeSet attrs)
public MapDrawOptions getDrawOptions()
public void setValidDisplayRect(double minLatitude,
                       double minLongitude,
                       double maxLatitude,
                       double maxLongitude)
public int getMapTopSpacing()
public void setMapTopSpacing(int mapTopSpacing)
public OnPOIClickListener getOnPOIClickListener()
public void setOnPOIClickListener(OnPOIClickListener onPOIClickListener)
public OnAnnotationClickListener getOnAnnotationClickListener()
public void setOnAnnotationClickListener(OnAnnotationClickListener onAnnotationClickListener)
public MapAnnotation getMapAnnotation()
public void setMapAnnotation(MapAnnotation mapAnnotation)
public MapPin getMapPin()
public void setMapPin(MapPin mapPin)
public boolean canDoUserAnimation()
public java.lang.String getApiKey()
public boolean isDisplayPOIs()
public void setDisplayPOIs(boolean displayPOIs)
public MapTrackingMode getTrackingMode()
public void setTrackingMode(MapTrackingMode trackingMode)
public boolean isDisplayButtonLevelWheel()
public void setDisplayButtonLevelWheel(boolean on)

Sets whether to enable the built-in level wheel control. If enabled, the MapView will show the level wheel control.

Parameters:

  • on - Whether the built-in level wheel control is enabled
public boolean isDisplayButton3D()
public void setDisplayButton3D(boolean on)

Sets whether to enable the built-in 3D button control. If enabled, the MapView will show the 3D button control.

Parameters:

  • on - Whether the built-in 3D button control is enabled
public boolean isDisplayButtonMyPosition()
public void setDisplayButtonMyPostion(boolean on)

Sets whether to enable the built-in my location button control. If enabled, the MapView will show the my location button control.

Parameters:

  • on - Whether the built-in my location button control is enabled
public double getRotationInDegrees()

Returns the current rotation of the map control in degrees.

public boolean animateToRotationInDegrees(double rotationInDegrees)

Animates the map to the passed rotation in degrees

public java.lang.String getRouteInfo()

Gets the current displayed route as an xml string

public void setRouteInfo(java.lang.String routeInfo)

Sets the current route as a xml string. This xml string may be generated via infsoft Library com.infsoft.android.routes

public boolean isUse3D()
public void animUse3D(boolean use3d)

Activates or deactivates the 3d mode of the map

public MapBuilding getBuilding()

Gets the current active building.

public int getLevel()

Gets the current active level (0 - indicates ground floor, 1 - indicates 1st floor, ...)

public boolean setLevel(int level)

Sets the current active level (0 - indicates ground floor, 1 - indicates 1st floor, ...)

public MyLocation getMyLocation()

Gets the current location of the user

public void setMyLocation(MyLocation myLocation)

Sets the current location of the user

public boolean animateToMyLocation(MyLocation myLocation)

Sets the current location of the user animated

public double getPerspective()

Gets the perspective of the map. Valid value goes from 0 to 1

public void setPerspective(double val)

Sets the perspective of the map. Valid value goes from 0 to 1

public java.util.List<Overlay> getOverlays()
public double getRoationInDegrees()
public boolean animateTo(GeoPoint geoPoint,
                int zoomLevel)
public boolean zoomInFixing(int xPixel,
                   int yPixel)
public boolean zoomOutFixing(int xPixel,
                    int yPixel)
public boolean setRoute(java.lang.String xmlData)
public boolean setHighlightedRoutePart(java.lang.String xmlData)
public boolean onTouchEvent(MotionEvent event)
public java.lang.Object getDraggableObjectAtPoint(com.infsoft.android.maps.MultiTouchController.PointInfo pt)

Description copied from interface: com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas
See if there is a draggable object at the current point. Returns the object at the point, or null if nothing to drag. To start a multitouch drag/stretch operation, this routine must return some non-null reference to an object. This object is passed into the other methods in this interface when they are called.

Specified by:

  • getDraggableObjectAtPoint in interface com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas<java.lang.Object>

Parameters:

  • pt - The point being tested (in object coordinates). Return the topmost object under this point, or if dragging/stretching the whole canvas, just return a reference to the canvas.

Returns:

  • a reference to the object under the point being tested, or null to cancel the drag operation. If dragging/stretching the whole canvas (e.g. in a photo viewer), always return non-null, otherwise the stretch operation won't work.
public void getPositionAndScale(java.lang.Object obj,
                       com.infsoft.android.maps.MultiTouchController.PositionAndScale objPosAndScaleOut)

Description copied from interface: com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas
Get the screen coords of the dragged object's origin, and scale multiplier to convert screen coords to obj coords. The job of this routine is to call the .set() method on the passed PositionAndScale object to record the initial position and scale of the object (in object coordinates) before any dragging/stretching takes place.

Specified by:

  • getPositionAndScale in interface com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas<java.lang.Object>

Parameters:

  • obj - The object being dragged/stretched.
  • objPosAndScaleOut - Output parameter: You need to call objPosAndScaleOut.set() to record the current position and scale of obj.
public void selectObject(java.lang.Object obj,
                com.infsoft.android.maps.MultiTouchController.PointInfo pt)

Description copied from interface: com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas
Select an object at the given point. Can be used to bring the object to top etc. Only called when first touchpoint goes down, not when multitouch is initiated. Also called with null on touch-up.
Specified by:
selectObject in interface com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas<java.lang.Object>

Parameters:

  • obj - The object being selected by single-touch, or null on touch-up.
  • pt - The current touch point.
public boolean setPositionAndScale(java.lang.Object obj,
                          com.infsoft.android.maps.MultiTouchController.PositionAndScale aNewObjPosAndScale,
                          com.infsoft.android.maps.MultiTouchController.PointInfo aTouchPoint)

Description copied from interface: com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas
Callback to update the position and scale (in object coords) of the currently-dragged object.
Specified by:
setPositionAndScale in interface com.infsoft.android.maps.MultiTouchController.MultiTouchObjectCanvas<java.lang.Object>

Parameters:

  • obj - The object being dragged/stretched.
  • aNewObjPosAndScale - The new position and scale of the object, in object coordinates. Use this to move/resize the object before returning.
    aTouchPoint - Info about the current touch point, including multitouch information and utilities to calculate and cache multitouch pinch diameter etc. (Note: touchPoint is volatile, if you want to keep * any fields of touchPoint, you must copy them before the method body exits.)
    Returns:
  • true if setting the position and scale of the object was successful, or false if the position or scale parameters are out of range for this object.
public boolean onScroll(MotionEvent e1,
               MotionEvent e2,
               float distanceX,
               float distanceY)
public void onDraw(Canvas canvas)
public int getZoomLevel()
public void setMinZoomLevel(int zoomLevel)
public void setMaxZoomLevel(int zoomLevel)
public GeoPoint getMapCenter()
public Projection getProjection()
public void cleanUp()
Suggest Edits

MyLocation

com.infsoft.android.maps

 

public class MyLocation
extends GeoPoint

public MyLocation(double latitude,
          double longitude,
          int level,
          double accuracy,
          boolean levelValid)
public MyLocation(double latitude,
          double longitude,
          int level,
          double accuracy,
          boolean levelValid,
          double orientationInDegrees)
public boolean isLevelValid()
public double getAccuracy()
public boolean hasOrientationInDegrees()
public java.lang.Double getOrientationInDegrees()
Suggest Edits

OnAnnotationClickListener

com.infsoft.android.maps

 

public interface OnAnnotationClickListener

void onAnnotationClick(java.lang.Object tag)
Suggest Edits

OnPOIClickListener

com.infsoft.android.maps

 

public interface OnPOIClickListener

void onPOIClick(POIInfo poi)
Suggest Edits

Overlay

com.infsoft.android.maps

 

public abstract class Overlay
extends java.lang.Object

public Overlay()
public abstract void onDraw(Canvas c,
          MapView mapView,
          boolean useCache)
public abstract void onDrawFinished(Canvas c,
                  MapView mapView,
                  boolean useCache)
public void onDetach(MapView mapView)

Override to perform clean up of resources before shutdown. By default does nothing.

public boolean onKeyDown(int keyCode,
                KeyEvent event,
                MapView mapView)

By default does nothing (return false). If you handled the Event, return true, otherwise return false. If you returned true none of the following Overlays or the underlying MapView has the chance to handle this event.

public boolean onKeyUp(int keyCode,
              KeyEvent event,
              MapView mapView)

By default does nothing (return false). If you handled the Event, return true, otherwise return false. If you returned true none of the following Overlays or the underlying MapView has the chance to handle this event.

public boolean onTouchEvent(MotionEvent event,
                   MapView mapView)

You can prevent all(!) other Touch-related events from happening!
By default does nothing (return false). If you handled the Event, return true, otherwise return false. If you returned true none of the following Overlays or the underlying MapView has the chance to handle this event.

public java.lang.String getLayerName()
public boolean onSingleTapConfirmed(MotionEvent e,
                           MapView mapView)

By default does nothing (return false). If you handled the Event, return true, otherwise return false. If you returned true none of the following Overlays or the underlying MapView has the chance to handle this event.

public boolean onLongPress(MotionEvent e,
                  MapView mapView)

By default does nothing (return false). If you handled the Event, return true, otherwise return false. If you returned true none of the following Overlays or the underlying MapView has the chance to handle this event.

public boolean onSingleTapUp(MotionEvent e,
                    MapView mapView)

By default does nothing (return false). If you handled the Event, return true, otherwise return false. If you returned true none of the following Overlays or the underlying MapView has the chance to handle this event.

Suggest Edits

POIInfo

com.infsoft.android.maps

 

public class POIInfo
extends java.lang.Object

public int getLocationID()
public java.util.UUID getUid()
public double getLatitude()
public double getLongitude()
public int getLevel()
public java.util.TreeMap<java.lang.String,java.lang.String> getPropertiesByKey()
Suggest Edits

Projection

com.infsoft.android.maps

 

public interface Projection

android.graphics.Point toPixels(GeoPoint in,
                              android.graphics.Point out)
android.graphics.Point toPixels(GeoPoint in)
GeoPoint fromPixels(int x,
                  int y)
float metersToEquatorPixels(float meters)
Suggest Edits

Android GeoItems Library

com.infsoft.android.geoitems

 

To make it easier for you to add geo items capabilities to your application, the infsoft SDK includes an external geo items library, com.infsoft.android.geoitems. The classes of the Android GeoItems Library offer built-in access and searching for geo items (e.g. shops, restaurants, rooms, toilets …) functionality. more

Suggest Edits

GeoAreaItem

com.infsoft.android.geoitems

 

public class GeoAreaItem
extends GeoItem

public GeoAreaItem()

Constructor

public int getLevel()

Gets the level of the area

public java.util.ArrayList<GeoPoint> getPoints()

Gets all points of the area

public GeoPoint getCenter()

Gets the center of the area

public boolean isInside(double latitude,
               double longitude,
               int level)

Checks if a given point is inside the area

public boolean isInside(GeoPoint test)

Checks if a given point is inside the area

Suggest Edits

GeoItem

com.infsoft.android.geoitems

 

public class GeoItem
extends java.lang.Object

public GeoItem()
public int getLocationID()
public void setLocationID(int locationID)
public boolean hasProperty(java.lang.String key)
public java.lang.String getProperty(java.lang.String key)
public void clearProperties()
public java.util.Set<java.lang.String> getProperties()
public void addProperty(java.lang.String key,
               java.lang.String val)
public java.util.UUID getUid()
public java.lang.String toXml()
public static GeoItem fromXml(java.lang.String xmlData)
Suggest Edits

GeoItemComparator

com.infsoft.android.geoitems

 

public class GeoItemComparator
extends java.lang.Object
implements java.util.Comparator<GeoItem>

public java.lang.String[] keys
public GeoItemComparator(java.lang.String[] keys)
public int compare(GeoItem arg0,
          GeoItem arg1)

compare in interface java.util.Comparator<GeoItem>

public void sort(java.util.ArrayList<GeoItem> items)
Suggest Edits

GeoItemKind

com.infsoft.android.geoitems

 

public enum GeoItemKind
extends java.lang.Enum<GeoItemKind>

public static final GeoItemKind POIs

POIs

public static final GeoItemKind Buildings

Buildings

Suggest Edits

GeoItemProvider

com.infsoft.android.geoitems

 

public class GeoItemProvider
extends java.lang.Object

public GeoItemProvider(Activity activity,
               java.lang.String apiKey,
               java.lang.String kind,
               int[] levelOfDetails,
               IGeoItemProviderCallback callback)
public GeoItemProvider(Activity activity,
               java.lang.String apiKey,
               GeoItemKind kind,
               IGeoItemProviderCallback callback)
public java.lang.Object getTag()
public void setTag(java.lang.Object tag)
public java.util.ArrayList<GeoItem> getGeoItems()
public void setGeoItems(java.util.ArrayList<GeoItem> items)
public void cancel()
public void stop()
public void start(double latitude1,
         double longitude1,
         double latitude2,
         double longitude2)
Suggest Edits

GeoItems

com.infsoft.android.geoitems

 

public class GeoItems
extends java.lang.Object

public GeoItems()
public GeoItems(GeoItem[] items)
public GeoItem[] getItems()
public void setItems(GeoItem[] items)
public void setItems(java.util.ArrayList<GeoItem> items)
public boolean deserialize(com.infsoft.android.geoitems.Deserializer des)
public boolean saveToFile(java.io.File file)
public boolean loadFromFile(java.io.File file)
public boolean serialize(com.infsoft.android.geoitems.Serializer ser)
public java.lang.String toXml()
public static GeoItems fromXml(java.lang.String xmlData)
public short getSerializeVersion()
Suggest Edits

GeoPoint

com.infsoft.android.geoitems

 

public class GeoPoint
extends java.lang.Object

An immutable class representing a pair of latitude, longitude and level, stored as double numbers.

public GeoPoint(double latitude,
        double longitude)

Constructs a GeoPoint with the given latitude and longitude, measured in decimal degrees.

public GeoPoint(double latitude,
        double longitude,
        int level)

Constructs a GeoPoint with the given latitude and longitude, measured in decimal degrees.
Parameters:

  • latitude - latitude of location
  • longitude - longitude of location
  • level - level of location
public GeoPoint(java.lang.String val)

Constructs a GeoPoint with the given latitude and longitude, measured in decimal degrees in a string format, e.g (40.11|50.6756|0)
Parameters:

  • val - GeoPoint as string, e.g (40.11|50.6756|0)
public double getLatitude()

Returns the latitude of this GeoPoint in decimal degrees.

public double getLongitude()

Returns the longitude of this GeoPoint in decimal degrees.

public int getLevel()

Returns the level of this GeoPoint as an integer (0 - indicates ground level, 1 - indicates 1st floor, ...).

public double getDistanceInMeters(GeoPoint other)

Returns the distance to another GeoPoint in meters

public java.lang.String toString()

toString in class java.lang.Object

Suggest Edits

GeoPosItem

com.infsoft.android.geoitems

 

public class GeoPosItem
extends GeoItem

public static final int SER_ID
public GeoPosItem()
public void setPos(GeoPoint pos)
public GeoPoint getPos()
public java.lang.String toXml()

Overrides:
toXml in class GeoItem

public static GeoPosItem fromXml(java.lang.String xmlData)
Suggest Edits

IGeoItemProviderCallback

com.infsoft.android.geoitems

 

public interface IGeoItemProviderCallback

void OnLoaded(java.util.ArrayList<GeoItem> items)
void OnCancel()
void OnError()
void onFinished()
Suggest Edits

Android Locator Library

com.infsoft.android.locator

 

To make it easier for you to add indoor positioning capabilities to your application, the infsoft SDK includes an external locator library, com.infsoft.android.locator. The classes of the Android Locator Library offer built-in offline client-side indoor positioning based on Wi-Fi, Bluetooth Low Energy and internal smartphone sensors. more

Suggest Edits

Location

com.infsoft.android.locator

 

public class Location
extends java.lang.Object

public Location(double latitude,
                double longitude,
                int level,
                double orientationInDegree,
                float accuracyInMeters,
                int posSourceKind,
                long time,
                Bundle bundle)

Constructor
Parameters:

  • latitude - GPS-latitude
  • longitude - GPS-longitude
  • level - floor level
  • accuracyInMeters - accuracy in meters
  • timestamp - time of the fix
public int getPosSourceKind()
public float getAccuracyInMeters()

Returns the accuracy in meters

public double getLatitude()

Returns the latitude;

public double getLongitude()

Returns the longitude;

public long getTime()

Returns the UTC time of this fix, in milliseconds since January 1, 1970

public int getLevel()

Returns the floor level

public boolean isValid()
public double getOrientationInDegree()

Returns the orientation in °

Suggest Edits

LocationListener

com.infsoft.android.locator

 

public interface LocationListener

void onLocationChanged(Location location)

Called when the location has changed. There are no restrictions on the use of the supplied Location object.

Suggest Edits

LocationManager

com.infsoft.android.locator

 

public class LocationManager
extends java.lang.Object

This class provides access to the infsoft location service.
This service allows applications to obtain periodic updates of the device's geographical location.
You do not instantiate this class directly; instead, retrieve it through its static method "LocationManager.getService(Context context)".

public static LocationManager getService(Context context)
public void requestLocationUpdates(Activity activity,
                                   long minTime,
                                   float minDistance,
                                   LocationListener listener)

Registers the activity to be notified periodically by provider. It may take a while to receive the first location update. If an immediate location is required, applications may use the getLastKnownLocation(String) method.

Parameters:

  • activity - activity to be notified
  • minTime - minimum time interval between location updates, in milliseconds
  • minDistance - minimum distance between location updates, in meters
  • listener - a {#link LocationListener} whose onLocationChanged(Location) method will be called for each location update
public void removeUpdates(LocationListener listener)

Removes any current registration for location updates of the current activity with the given LocationListener.

public Location getLastKnownLocation()

Returns a Location indicating the data from the last known location fix.

Suggest Edits

Locator

com.infsoft.android.locator

 

public final class Locator
extends java.lang.Object

A class representing a additional location service

public Locator(Context context)
public int getTactID()
public Location getLocation()
public Location getLastKnownLocation()
public java.lang.String[] getScanResult()
public java.lang.String getRawData()
public void doUnbind()
public void doBind()
public boolean startLocate(int durationInSeconds)
public boolean serviceStartGetWifiScans()
public boolean serviceStartGetWifiScansAfterAp()
public boolean serviceStartGetRawData()
public boolean isBindDone()
public boolean serviceWorkOn()
public boolean serviceWorkOff()
Suggest Edits

LocatorService

com.infsoft.android.locator

 

public final class LocatorService
extends Service

public static final java.lang.String NEW_LOCATION_AVAILABLE_ACTION
public LocatorService()
public void onCreate()
public void onStart(Intent intent,
                    int startId)
public void onDestroy()
public IBinder onBind(Intent intent)
Suggest Edits

Android Routes Library

com.infsoft.android.routes

 

To make it easier for you to add indoor routing capabilities to your application, the infsoft SDK includes an external routing library, com.infsoft.android.routes. The classes of the Android Routes Library offer built-in indoor routing and routing information functionality. more

Suggest Edits

GpsPos

com.infsoft.android.routes

 

public class GpsPos
extends java.lang.Object

public double latitude
public double longitude
public int level
public GpsPos()
public GpsPos(double lat,
      double lon)
public GpsPos(double lat,
      double lon,
      int level)
Suggest Edits

IRouteProviderListener

com.infsoft.android.routes

 

public interface IRouteProviderListener

void onRouteCalced(RouteProvider provider,
                 boolean successfully)
Suggest Edits

LandmarkPOI

com.infsoft.android.routes

 

public class LandmarkPOI
extends java.lang.Object

public LandmarkPOI(double latitude,
           double longitude,
           int level,
           java.util.UUID uid,
           java.lang.String displayName)
public LandmarkPOI(double latitude,
           double longitude,
           int level,
           java.util.UUID uid,
           java.lang.String displayName,
           java.lang.String tag)
public double getLongitude()
public double getLatitude()
public int getLevel()
public java.lang.String getDisplayName()
public java.lang.String getTag()
public java.util.UUID getUid()
public com.infsoft.android.routes.Pos3D getPos3D()
Suggest Edits

RouteInfoItem

com.infsoft.android.routes

 

public final class RouteInfoItem
extends java.lang.Object

public java.lang.String getText()
public RouteInfoItemKind getKind()
Suggest Edits

RouteInfoItemKind

com.infsoft.android.routes

 

public enum RouteInfoItemKind
extends java.lang.Enum<RouteInfoItemKind>

public static final RouteInfoItemKind Warning
public static final RouteInfoItemKind WayDirections
public static final RouteInfoItemKind Info
Suggest Edits

RouteInfoProvider

com.infsoft.android.routes

 

public class RouteInfoProvider
extends java.lang.Object

public RouteInfoProvider(RouteProvider routeProvider)
public RouteInfoItem getInfo(double latitude,
                    double longitude,
                    int level,
                    java.lang.String destinationName)
Suggest Edits

RoutePart

com.infsoft.android.routes

 

public class RoutePart
extends java.lang.Object

public RoutePart()
public int getLevel()
public RoutePoint getFirstPoint()
public RoutePoint getLastPoint()
public java.util.ArrayList<RoutePoint> getRoutePoints()
public void setRoutePoints(java.util.ArrayList<RoutePoint> routePoints)
public RoutePart getNextRoutePart()
public RoutePart getPrevRoutePart()
public int getRoutePartInd()
public LandmarkPOI getDestLinkedLandmarkPOI()
public LandmarkPOI getStartLinkedLandmarkPOI()
public double getDistanceTo(double latitude,
                   double longitude,
                   int level)
public double getOrientationAt(double latitude,
                      double longitude,
                      int level)
public java.lang.String toXml()
Suggest Edits

RouteParts

com.infsoft.android.routes

 

public class RouteParts
extends java.lang.Object

public RouteParts(RoutePoints routePoints)
public RoutePart getNearestRoutePart(double latitude,
                            double longitude,
                            int level)
public double getDistanceTo(double latitude,
                   double longitude,
                   int level)
public java.util.ArrayList<RoutePart> getItems()
Suggest Edits

RoutePoint

com.infsoft.android.routes

 

public final class RoutePoint
extends java.lang.Object

public RoutePoint()
public boolean isStop()
public LandmarkPOI getLandmarkPOI()
public RoutePointLevelChangeKind getLevelChangeKind()
public java.util.TreeMap<java.lang.String,java.lang.String> getPropertiesByKey()
public float getDistanceToStartInMeters()
public float getRelPosOnWay()
public double getLongitude()
public double getLatitude()
public int getLevel()
public RoutePoint getPrevRoutePoint()
public RoutePoint getNextRoutePoint()
public java.lang.String toXml()
Suggest Edits

RoutePointLevelChangeKind

com.infsoft.android.routes

 

public enum RoutePointLevelChangeKind
extends java.lang.Enum<RoutePointLevelChangeKind>

public static final RoutePointLevelChangeKind None
public static final RoutePointLevelChangeKind Up
public static final RoutePointLevelChangeKind Down
Suggest Edits

RoutePoints

com.infsoft.android.routes

 

public class RoutePoints
extends java.lang.Object

public static RoutePoints parseTiles(java.lang.String xmlData)
public java.lang.String toXml()
public boolean add(RoutePoint obj)
public void clear()
public boolean contains(RoutePoint rp)
public RoutePoint get(int location)
public int indexOf(RoutePoint rp)
public boolean isEmpty()
public java.util.Iterator iterator()
public int lastIndexOf(RoutePoint rp)
public java.util.ListIterator listIterator()
public java.util.ListIterator listIterator(int location)
public RoutePoint remove(int location)
public boolean remove(RoutePoint rp)
public RoutePoint set(int location,
             RoutePoint rp)
public int size()
public java.util.List subList(int start,
                     int end)
public RoutePoint[] toArray()
public RoutePoint[] toArray(RoutePoint[] array)
public java.lang.String getContext()
Suggest Edits

RouteProvider

com.infsoft.android.routes

 

public final class RouteProvider
extends java.lang.Object

public RouteProvider(Activity activity,
             java.lang.String apiKey)
public boolean isAllowDefaultContext()
public void setAllowDefaultContext(boolean allowDefaultContext)
public java.lang.String[] getContexts()
public void setContexts(java.lang.String[] contexts)
public java.util.ArrayList<LandmarkPOI> getLandmarkPOIs()
public void setLandmarkPOIs(java.util.ArrayList<LandmarkPOI> landmarkPOIs)
public java.lang.Object getTag()
public void setTag(java.lang.Object tag)
public RoutePoints getRoutePoints()
public float getDistanceToRoute(double latitude,
                       double longitude,
                       int level)
public double getAngleInDegreeAt(double latitude,
                        double longitude,
                        int level)
public GpsPos getNearestPosOnRoute(double latitude,
                          double longitude,
                          int level)
public boolean calcRouteAsync(java.util.ArrayList<GpsPos> gpsPosCollection,
                     IRouteProviderListener routeProviderListener)
public boolean calcRouteAsync(double startLatitude,
                     double startLongitude,
                     int startLevel,
                     double destLatitude,
                     double destLongitude,
                     int destLevel,
                     IRouteProviderListener routeProviderListener)
Suggest Edits

infsoft API

 

General

This API allows querying data stored in the infsoft LocAware platform®.

Authentication

All operations require an API key and location id.The API key is provided by infsoft upon request for the specific operation covered by an active license.The location id is generated by the infsoft Maps Editor and can be found under „Location Properties“ (please visit https://help.infsoft.com) for more information.

Suggest Edits

Analytics API

 
Suggest Edits

query | number

queries a widget of type number (via unique identifier) including information such as:

  • value
 
gethttps://api.infsoft.com/v1/analytics/number
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/number?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/number',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/number?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/number?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/number"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

InternalServerError

Suggest Edits

query | matrix

queries a widget of type matrix (via unique identifier) including information such as:

  • value
  • timestamp
  • color
 
gethttps://api.infsoft.com/v1/analytics/matrix
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/matrix?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/matrix',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/matrix?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/matrix?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/matrix"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

InternalServerError

Suggest Edits

query | table

queries a widget of type table (via unique identifier) including information such as:

  • headers
  • rows
  • cells
 
gethttps://api.infsoft.com/v1/analytics/table
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/table?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/table',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/table?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/table?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/table"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

headersarray
rowsarray

InternalServerError

Suggest Edits

query | number difference

queries a widget of type number difference (via unique identifier) including information such as:

  • value
  • previous value
  • percentage value / previous value
 
gethttps://api.infsoft.com/v1/analytics/numberdifference
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/numberdifference?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/numberdifference',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/numberdifference?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/numberdifference?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/numberdifference"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

valstring
prev_valstring
prev_percentagestring

InternalServerError

Suggest Edits

query | chart

queries a widget of type chart (via unique identifier) including information such as:

  • labels
  • datasets
  • values
 
gethttps://api.infsoft.com/v1/analytics/chart
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/chart?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/chart',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/chart?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/chart?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/chart"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

labelsarray
datasetsarray

InternalServerError

Suggest Edits

query | pie chart

queries a widget of type pie chart (via unique identifier) including information such as:

  • labels
  • datasets
  • values
 
gethttps://api.infsoft.com/v1/analytics/piechart
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/piechart?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/piechart',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/piechart?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/piechart?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/piechart"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

labelsarray
datasetsarray

InternalServerError

Suggest Edits

query | heatmap

queries a widget of type heatmap (via unique identifier) including information such as:

  • coordinate (latitude/longitude/level)
  • count of devices
 
gethttps://api.infsoft.com/v1/analytics/heatmap
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/heatmap?api_key=api_key&location_id=location_id&widget_uid=widget_uid&resolution_in_meters=resolution_in_meters'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/heatmap',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid',
     resolution_in_meters: 'resolution_in_meters' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/heatmap?api_key=api_key&location_id=location_id&widget_uid=widget_uid&resolution_in_meters=resolution_in_meters")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/heatmap?api_key=api_key&location_id=location_id&widget_uid=widget_uid&resolution_in_meters=resolution_in_meters");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/heatmap"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid","resolution_in_meters":"resolution_in_meters"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

resolution_in_meters
float
required

heatmap resolution in meters

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

InternalServerError

Suggest Edits

query | tag cloud

queries a widget of type tag cloud (via unique identifier) including information such as:

  • label
  • value
 
gethttps://api.infsoft.com/v1/analytics/tagcloud
curl --request GET \
  --url 'https://api.infsoft.com/v1/analytics/tagcloud?api_key=api_key&location_id=location_id&widget_uid=widget_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/analytics/tagcloud',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     widget_uid: 'widget_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/analytics/tagcloud?api_key=api_key&location_id=location_id&widget_uid=widget_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/analytics/tagcloud?api_key=api_key&location_id=location_id&widget_uid=widget_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/analytics/tagcloud"

querystring = {"api_key":"api_key","location_id":"location_id","widget_uid":"widget_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.ANALYTICS"

location_id
int32
required

location id to query

widget_uid
string
required

unique identifier of widget

from_utc_ts
string

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

to_utc_ts
string

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601, not required if widget displays realtime data)

Response

OK

InternalServerError

Suggest Edits

Automation Engine API

 
Suggest Edits

query | trigger

queries a single trigger (via unique identifier) or group of triggers including information such as:

  • trigger unique identifier
  • trigger name
  • condition
  • script
  • location id
  • execute information (executed count, emails send count, push send count, url calls count, last executed timestamp)

a trigger is a single action that is executed immediately based on changes of device properties

example:

  • device enters area -> send push
  • battery level of device below 10% -> call customer server url
  • ...
 
gethttps://api.infsoft.com/v1/automationengine/trigger
curl --request GET \
  --url 'https://api.infsoft.com/v1/automationengine/trigger?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/automationengine/trigger',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/automationengine/trigger?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/automationengine/trigger?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/automationengine/trigger"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.AUTOMATIONENGINE"

location_id
int32
required

location id to query

trigger_uid
string

trigger unique identifier [optional]

Response

OK

InternalServerError

Suggest Edits

query | task

queries a single task (via unique identifier) or group of tasks including information such as:

  • task unique identifier
  • task name
  • script
  • location id
  • interval in seconds
  • execute information (executed count, emails send count, push send count, url calls count, last executed timestamp)

a task is a recuring action that is executed periodically

example:

  • check number of devices in specific area -> call customer server url
  • device stays in area longer than 10 minutes -> mark device as long waiting
  • ...
 
gethttps://api.infsoft.com/v1/automationengine/task
curl --request GET \
  --url 'https://api.infsoft.com/v1/automationengine/task?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/automationengine/task',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/automationengine/task?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/automationengine/task?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/automationengine/task"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.AUTOMATIONENGINE"

location_id
int32
required

location id to query

task_uid
string

task unique identifier [optional]

Response

OK

InternalServerError

Suggest Edits

execute | task

executes a task manually

 
posthttps://api.infsoft.com/v1/automationengine/task-execute
curl --request POST \
  --url 'https://api.infsoft.com/v1/automationengine/task-execute?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.infsoft.com/v1/automationengine/task-execute',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/automationengine/task-execute?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.infsoft.com/v1/automationengine/task-execute?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/automationengine/task-execute"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("POST", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.AUTOMATIONENGINE"

location_id
int32
required

location id to query

Response

OK

InternalServerError

Suggest Edits

Beacon Management API

 
Suggest Edits

alive | beacon

queries a list of blutooth low energy beacons including information such as:

  • beacon major id
  • beacon minor id
  • last seen timestamp
  • battery level
 
gethttps://api.infsoft.com/v1/beaconmanagement/alive
curl --request GET \
  --url 'https://api.infsoft.com/v1/beaconmanagement/alive?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/beaconmanagement/alive',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/beaconmanagement/alive?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/beaconmanagement/alive?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/beaconmanagement/alive"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.BEACON"

location_id
int32
required

location id to query

Response

OK

InternalServerError

Suggest Edits

Calibration API

 
Suggest Edits

calibmap | ble

queries calibration map with a list of referenced bluetooth low energy beacon positions including information such as:

  • beacon major id
  • beacon minor id
  • beacon coordinate (latitude/longitude/level)
  • signal strength (rssi)
 
gethttps://api.infsoft.com/v1/calibration/calibmap-ble
curl --request GET \
  --url 'https://api.infsoft.com/v1/calibration/calibmap-ble?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/calibration/calibmap-ble',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/calibration/calibmap-ble?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/calibration/calibmap-ble?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/calibration/calibmap-ble"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.CALIBRATION"

location_id
int32
required

location id to query

Response

OK

location_idinteger
beaconsarray

InternalServerError

Suggest Edits

Device API

 
Suggest Edits

comming soon

 
deletehttps://api.infsoft.com/v1/device
curl --request DELETE \
  --url 'https://api.infsoft.com/v1/device?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.infsoft.com/v1/device',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.infsoft.com/v1/device?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("DELETE", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required
location_id
int32
required

Body Params

device_uids
array of strings
ble_devices
array of objects
ble_major
ble_minor
wifi_macs
array of strings
uwb_macs
array of strings
lora_euis
array of strings

Response

OK

InternalServerError

Suggest Edits

single device | app

queries a single app device (via unique identifier) including information such as:

  • unique identifier
  • coordinate (latitude/longitude/level)
  • app name
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device/app
curl --request GET \
  --url 'https://api.infsoft.com/v1/device/app?api_key=api_key&location_id=location_id&device_uid=device_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device/app',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     device_uid: 'device_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device/app?api_key=api_key&location_id=location_id&device_uid=device_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device/app?api_key=api_key&location_id=location_id&device_uid=device_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device/app"

querystring = {"api_key":"api_key","location_id":"location_id","device_uid":"device_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

device_uid
string
required

unique identifier of device

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

uidstring
app_idstring
coordobject
coord.longitudenumber
coord.latitudenumber
coord.levelinteger
area_idstring
location_idinteger
ts_utcstring
revisioninteger
propsarray

Forbidden

Suggest Edits

single device | ble

queries a single ble device (either via unique identifier or major/minor) including information such as:

  • unique identifier
  • coordinate (latitude/longitude/level)
  • mac address
  • major
  • minor
  • tx power level
  • battery
  • proximity uuid
  • data byte
  • vendor
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device/ble
curl --request GET \
  --url 'https://api.infsoft.com/v1/device/ble?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device/ble',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device/ble?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device/ble?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device/ble"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

device_uid
string

unique identifier of device (required if ble_major is null or ble_minor is null)

ble_major
string

major id of ble device (required if device_uid is null)

ble_minor
string

minor id of ble device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

uidstring
ble_macstring
ble_majorinteger
ble_minorinteger
ble_txpowerinteger
ble_batteryinteger
ble_proximityuuidstring
ble_databyteinteger
ble_vendorstring
coordobject
coord.longitudenumber
coord.latitudenumber
coord.levelinteger
area_idstring
location_idinteger
ts_utcstring
revisioninteger
propsarray

Forbidden

Suggest Edits

single device | lora

queries a single lora device (either via unique identifier or end device identifier) including information such as:

  • unique identifier
  • coordinate (latitude/longitude/level)
  • end device identifier (eui)
  • vendor
  • battery
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device/lora
curl --request GET \
  --url 'https://api.infsoft.com/v1/device/lora?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device/lora',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device/lora?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device/lora?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device/lora"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

device_uid
string

unique identifier of device (required if lora_eui is null)

lora_eui
string

end device identifier (eui) of device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

uidstring
lora_vendorstring
lora_euistring
coordobject
coord.longitudenumber
coord.latitudenumber
coord.levelinteger
area_idstring
location_idinteger
ts_utcstring
revisioninteger
propsarray

Forbidden

Suggest Edits

single device | uwb

queries a single ultra-widband device (either via unique identifier or mac address) including information such as:

  • unique identifier
  • coordinate (latitude/longitude/level)
  • mac address
  • vendor
  • battery
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device/uwb
curl --request GET \
  --url 'https://api.infsoft.com/v1/device/uwb?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device/uwb',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device/uwb?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device/uwb?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device/uwb"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

device_uid
string

unique identifier of device (required if device_mac is null)

device_mac
string

mac address of device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

uidstring
uwb_macstring
uwb_batteryinteger
uwb_vendorstring
coordobject
coord.longitudenumber
coord.latitudenumber
coord.levelinteger
area_idstring
location_idinteger
height_in_meterstring
ts_utcstring
revisioninteger
propsarray

Forbidden

Suggest Edits

single device | wifi

queries a single wifi device (either via unique identifier or mac address) including information such as:

  • unique identifier
  • coordinate (latitude/longitude/level)
  • mac address
  • vendor
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device/wifi
curl --request GET \
  --url 'https://api.infsoft.com/v1/device/wifi?api_key=api_key&location_id=location_id'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device/wifi',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device/wifi?api_key=api_key&location_id=location_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device/wifi?api_key=api_key&location_id=location_id");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device/wifi"

querystring = {"api_key":"api_key","location_id":"location_id"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

device_uid
string

unique identifier of device (required if device_mac is null)

device_mac
string

mac address of device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

uidstring
wifi_macstring
wifi_vendorstring
coordobject
coord.longitudenumber
coord.latitudenumber
coord.levelinteger
area_idstring
location_idinteger
ts_utcstring
revisioninteger
propsarray

Forbidden

Suggest Edits

single device history | app

queries a single app device history (either via unique identifier or mac address) including information such as:

  • unique identifier
  • coordinate(latitude/longitude/level)
  • app id
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device-history/app
curl --request GET \
  --url 'https://api.infsoft.com/v1/device-history/app?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts&device_uid=device_uid'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device-history/app',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     from_utc_ts: 'from_utc_ts',
     to_utc_ts: 'to_utc_ts',
     device_uid: 'device_uid' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device-history/app?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts&device_uid=device_uid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device-history/app?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts&device_uid=device_uid");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device-history/app"

querystring = {"api_key":"api_key","location_id":"location_id","from_utc_ts":"from_utc_ts","to_utc_ts":"to_utc_ts","device_uid":"device_uid"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

from_utc_ts
string
required

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

to_utc_ts
string
required

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

device_uid
string
required

unique identifier of device

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

Forbidden

Suggest Edits

single device history | ble

queries a single ble device history (either via unique identifier or major/minor) including information such as:

  • unique identifier
  • coordinate(latitude/longitude/level)
  • mac address
  • major
  • minor
  • tx power level
  • battery
  • proximity uuid
  • data byte
  • vendor
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device-history/ble
curl --request GET \
  --url 'https://api.infsoft.com/v1/device-history/ble?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device-history/ble',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     from_utc_ts: 'from_utc_ts',
     to_utc_ts: 'to_utc_ts' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device-history/ble?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device-history/ble?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device-history/ble"

querystring = {"api_key":"api_key","location_id":"location_id","from_utc_ts":"from_utc_ts","to_utc_ts":"to_utc_ts"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

from_utc_ts
string
required

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

to_utc_ts
string
required

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

device_uid
string

unique identifier of device (required if ble_major is null or ble_minor is null)

ble_major
string

major id of ble device (required if device_uid is null)

ble_minor
string

minor id of ble device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

Forbidden

Suggest Edits

single device history | lora

queries a single lora device history (either via unique identifier or end device identifier) including information such as:

  • unique identifier
  • coordinate(latitude/longitude/level)
  • end device identifier (eui)
  • vendor
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device-history/lora
curl --request GET \
  --url 'https://api.infsoft.com/v1/device-history/lora?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device-history/lora',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     from_utc_ts: 'from_utc_ts',
     to_utc_ts: 'to_utc_ts' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device-history/lora?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device-history/lora?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device-history/lora"

querystring = {"api_key":"api_key","location_id":"location_id","from_utc_ts":"from_utc_ts","to_utc_ts":"to_utc_ts"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

from_utc_ts
string
required

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

to_utc_ts
string
required

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

device_uid
string

unique identifier of device (required if lora_eui is null)

lora_eui
string

end device identifier (eui) of device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

Forbidden

Suggest Edits

single device history | uwb

queries a single ultra-widband device history (either via unique identifier or mac address) including information such as:

  • unique identifier
  • coordinate(latitude/longitude/level)
  • mac address
  • vendor
  • battery
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device-history/uwb
curl --request GET \
  --url 'https://api.infsoft.com/v1/device-history/uwb?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device-history/uwb',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     from_utc_ts: 'from_utc_ts',
     to_utc_ts: 'to_utc_ts' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device-history/uwb?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device-history/uwb?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device-history/uwb"

querystring = {"api_key":"api_key","location_id":"location_id","from_utc_ts":"from_utc_ts","to_utc_ts":"to_utc_ts"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

from_utc_ts
string
required

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

to_utc_ts
string
required

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

device_uid
string

unique identifier of device (required if device_mac is null)

device_mac
string

mac address of device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

Forbidden

Suggest Edits

single device history | wifi

queries a single wifi device history (either via unique identifier or mac address) including information such as:

  • unique identifier
  • coordinate(latitude/longitude/level)
  • mac address
  • vendor
  • area id
  • location id
  • timestamp
  • revision

customer specific device properties can be queried via device props (device_props)

 
gethttps://api.infsoft.com/v1/device-history/wifi
curl --request GET \
  --url 'https://api.infsoft.com/v1/device-history/wifi?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts'
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.infsoft.com/v1/device-history/wifi',
  qs: 
   { api_key: 'api_key',
     location_id: 'location_id',
     from_utc_ts: 'from_utc_ts',
     to_utc_ts: 'to_utc_ts' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.infsoft.com/v1/device-history/wifi?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.infsoft.com/v1/device-history/wifi?api_key=api_key&location_id=location_id&from_utc_ts=from_utc_ts&to_utc_ts=to_utc_ts");

xhr.send(data);
import requests

url = "https://api.infsoft.com/v1/device-history/wifi"

querystring = {"api_key":"api_key","location_id":"location_id","from_utc_ts":"from_utc_ts","to_utc_ts":"to_utc_ts"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

api_key
uuid
required

api key to access the methode, must have the role "API.DEVICE"

location_id
int32
required

location id to query

from_utc_ts
string
required

'from' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

to_utc_ts
string
required

'to' utc timestamp, format YYYYMMDDThhmm (ISO 8601)

device_uid
string

unique identifier of device (required if device_mac is null)

device_mac
string

mac address of device (required if device_uid is null)

device_props
string

customer specific properties to query, separated by '|' (e.g. device_props=LASTSEEN|FIRSTSEEN ) [optional]

Response

OK

Forbidden

Suggest Edits

create/update properties of a single device | app

creates/updates a single app device (either via unique identifier or mac address) including information such as:

  • coordinate(latitude/longitude/level)
  • area id
  • app name

customer specific device properties can be created or updated

 
posthttps://api.infsoft.com<