无法使用iOS Estimote Indoor SDK手动创建位置

时间:2015-05-21 09:22:15

标签: ios ibeacon estimote indoor-positioning-system

无法手动创建正确的位置 - 它始终显示错误的位置。有人可以告诉我们如何做正确的事情,并在我的代码中显示我的错误值吗?感谢。

enter image description here

    ESTLocationBuilder *locationBuilder = [ESTLocationBuilder new];

    [locationBuilder setLocationBoundaryPoints:@[
                                                 [ESTPoint pointWithX:0 y:0],
                                                 [ESTPoint pointWithX:0 y:7.46],
                                                 [ESTPoint pointWithX:7.6 y:7.46],
                                                 [ESTPoint pointWithX:7.6 y:0]
                                                 ]];

    [locationBuilder setLocationOrientation:275];

    [locationBuilder addBeaconIdentifiedByMac:kBeaconMac1
                       atBoundarySegmentIndex:0
                                   inDistance:0
                                     fromSide:ESTLocationBuilderLeftSide];

    [locationBuilder addBeaconIdentifiedByMac:kBeaconMac2
                       atBoundarySegmentIndex:1
                                   inDistance:0
                                     fromSide:ESTLocationBuilderLeftSide];

    [locationBuilder addBeaconIdentifiedByMac:kBeaconMac3
                       atBoundarySegmentIndex:2
                                   inDistance:0
                                     fromSide:ESTLocationBuilderRightSide];

    [locationBuilder addBeaconIdentifiedByMac:kBeaconMac4
                       atBoundarySegmentIndex:3
                                   inDistance:0
                                     fromSide:ESTLocationBuilderRightSide];

    self.location = [locationBuilder build];

1 个答案:

答案 0 :(得分:4)

您设置积分和方向的方式看起来很不错。

唯一需要改变的是:

[locationBuilder addBeaconIdentifiedByMac:kBeaconMac1
                       atBoundarySegmentIndex:0
                                   inDistance:0
                                     fromSide:ESTLocationBuilderLeftSide];

此代码为:

  

我有一个信标,其中MAC地址kBeaconMac1位于第一面墙(atBoundarySegmentIndex:0),距离墙左侧0米(inDistance:0fromSide:ESTLocationBuilderLeftSide )。

"左"或"对"被理解为"我在房间的中间,直接面向墙壁;左边是我的左边,右边是我的右边"。

"第一堵墙"被理解为您在setLocationBoundaryPoints中定义的前两点之间的墙。 "第二面墙"将在第二和第三点之间,"第三壁"在第三和第四之间,以及最后的第四墙" - 第四和第一墙。

看一下图片,你实际上是在墙的中间放置了你的灯塔,所以你希望inDistance参数设置为theWidthOfTheWall / 2,即在"第一面墙&#的情况下34;,7.46 / 2 = 3.73。在这种特殊情况下,"左"或"对"无所谓。

这里是匹配图片的代码:

[locationBuilder addBeaconIdentifiedByMac:kBeaconMac1
                   atBoundarySegmentIndex:0
                               inDistance:3.73
                                 fromSide:ESTLocationBuilderLeftSide];

[locationBuilder addBeaconIdentifiedByMac:kBeaconMac2
                   atBoundarySegmentIndex:1
                               inDistance:3.8
                                 fromSide:ESTLocationBuilderLeftSide];

[locationBuilder addBeaconIdentifiedByMac:kBeaconMac3
                   atBoundarySegmentIndex:2
                               inDistance:3.73
                                 fromSide:ESTLocationBuilderRightSide];

[locationBuilder addBeaconIdentifiedByMac:kBeaconMac4
                   atBoundarySegmentIndex:3
                               inDistance:3.8
                                 fromSide:ESTLocationBuilderRightSide];