Why indoorLocationManager didUpdatePosition delegate method stops updating?

Hi all,

I have a problem with the indoor SDK.
I created an indoor location with the location builder, and tried to get the position with the didupdateposition delegate method.
However, the delegate method stops updating exactly after 59 updates.

It seems like the position x and y from the 59 updates are correct. But I want to keep tracking the position all the time, not just first 59 updates.

Thank you!

Hi gnusgoy!

That’s troubling :frowning:

  1. Can you share which version of Indoor SDK are you using?
  2. Have you implemented – indoorLocationManager:didFailToUpdatePositionWithError: ? Does it return any error after 59 updates?
1 Like

Hi Marcin,

Thanks for your reply.
I am using EstimoteIndoorSDK (1.5.0).

After 59th updates, it returns:

Error Domain=com.estimote Code=1 “Can’t determine position outside the location.” UserInfo=0x174272540 {NSLocalizedDescription=Can’t determine position outside the location.}

If this is error message is true, I am wondering why I was getting somehow accurate positions until 59th update.

Thank you!

Gnusgoy,
we never want to give false negatives i.e. inform that you are outside location when you are in, that is why outside location detection mechanism is quite robust - we don’t trust it until it is fully warmed up and you are for a longer period (few s) outside location by a few meters margin. Until then we try our best to determine position as if you would be in.
Because of this period good practice is to turn on localization in advance to have already accurate data when needed.

Hi Marcin,

Thanks for your reply.
Does it mean that actually I was not in the location that I built? and that 59 updates were just calibrating?
If so, I am wondering what went wrong when I built the location, as the code below:

self.locationBuilder = [ESTLocationBuilder new];
[self.locationBuilder setLocationBoundaryPoints:@[
                                                  [ESTPoint pointWithX:0 y:0],
                                                  [ESTPoint pointWithX:0 y:4],
                                                  [ESTPoint pointWithX:6 y:4],
                                                  [ESTPoint pointWithX:6 y:0]]];
[self.locationBuilder setLocationOrientation:350];

[self.locationBuilder addBeaconIdentifiedByMac:@"d716de514672" atBoundarySegmentIndex:0 inDistance:2 fromSide:ESTLocationBuilderLeftSide];
[self.locationBuilder addBeaconIdentifiedByMac:@"fb0ebaacd25c" atBoundarySegmentIndex:1 inDistance:3 fromSide:ESTLocationBuilderLeftSide];
[self.locationBuilder addBeaconIdentifiedByMac:@"d4e4f58e3f25" atBoundarySegmentIndex:2 inDistance:2 fromSide:ESTLocationBuilderRightSide];
[self.locationBuilder addBeaconIdentifiedByMac:@"f3b61bf06f84" atBoundarySegmentIndex:3 inDistance:3 fromSide:ESTLocationBuilderRightSide];

self.indoorLocation = [self.locationBuilder build];

Thanks!

Hi Gnusgoy,

sorry for late reply, vacation season :smile:

  1. Can you confirm that your beacons have proper settings?
  • 200 ms advertising interval
  • maximum broadcasting power
  • basic power saving mode off
  1. What device are you using?
  2. Can you try to describe where you in physical world are in room coordinates when you get outside location updates?

Hi Marcin,

It is working now after changing beacons settings.

Thank you!

Great!

Can’t wait to see what you build with Indoor Location :smile:

All the best :slight_smile: