Location without Estimote Cloud

Hi,

Is it possible to use the indoor location SDK without Estimote Cloud? I see in the tutorial that the location needs to be fetched from there, but I’m wondering if it can be stored e.g in our own database. Will the IndoorLocationManager still work?

Hey Diego,

I had the same question (different reason though: for me the cloud-stuff isn’t working an estimote customer service isn’t responding!) and just tried it.

So you can create your own location from code, just as the examples in the dev show (see “Mapping your location”). Just delete the code that loads from the cloud. In Obj-C it would look sth like this:

- (EILLocation*) createLocation {
	EILLocationBuilder *locationBuilder = [EILLocationBuilder new];
	[locationBuilder setLocationName:@"my-office"];

	[locationBuilder setLocationBoundaryPoints:@[[EILPoint pointWithX:0.00 y:0.00],
										 [EILPoint pointWithX:0.00 y:9.85],
										 [EILPoint pointWithX:4.56 y:9.85],
										 [EILPoint pointWithX:4.56 y:0.00]]];
	
	[locationBuilder addBeaconWithIdentifier:@"ecd5…7e58f2726"
					  atBoundarySegmentIndex:0
						inDistance:3.5 fromSide:EILLocationBuilderLeftSide];
	[locationBuilder addBeaconWithIdentifier:@"92…3c"
					  atBoundarySegmentIndex:1
						inDistance:1.1 fromSide:EILLocationBuilderRightSide];
	[locationBuilder addBeaconWithIdentifier:@"14a…21ff3f"
					  atBoundarySegmentIndex:2
						inDistance:5.7 fromSide:EILLocationBuilderLeftSide];
	[locationBuilder addBeaconWithIdentifier:@"f37f…df18"
					  atBoundarySegmentIndex:3
						inDistance:2.4 fromSide:EILLocationBuilderRightSide];
	
	[locationBuilder setLocationOrientation:50];
	
	return [locationBuilder build];
}

If you want to get your rooms from a db, just save the x/y-coordinates for each room as well as the beacon-ids and their positioning for each room. Place this db inside your app and on discovering a beacon, lookup the corresponding room with the beacon-id you just received, load the room and build a location from it…should work.

The cloud makes it easier to update your rooms and/or beacons after you released your app, though. With a built-in db you will always have to rerelease your app if you just add one room or swap out a faulty beacon.

Best regards
Markus

Thanks a lot @mstoebe! We will try it

Hi mstoebe,

Can i ask 1 question?
If we do so…i mean we create EILLocation ourself, dont use Estimote Cloud service… Do we need to pay something for Estimote? ( Subscription plan…etc)

Thanks.