Android如何获取Ibeacon X轴的正负值?

Android如何获取Ibeacon X轴的正负值?,android,ibeacon,ibeacon-android,Android,Ibeacon,Ibeacon Android,假设在一条水平线上有3个信标,我想检查距离中点有多远,所以我想得到面积的正值和负值。这意味着我要声明信标的右或左位置,这样我可以估计信标当前位置的点 这看起来像谷歌地图导航,我想用水平线在圆圈区域显示指针,所以在此之前我想知道如何获取Ibeacon的正或负X轴 这个问题有解决办法。但它们很复杂,我们将无法用StackOverflow答案中的简单代码片段来回答 主要问题是信标信号是全方位的。因此,如果你根据信标的信号强度估计你在3米之外,你不知道是哪个方向。对于问题中的2D轴,您不知道是左还是右

假设在一条水平线上有3个信标,我想检查距离中点有多远,所以我想得到面积的正值和负值。这意味着我要声明信标的右或左位置,这样我可以估计信标当前位置的点

这看起来像谷歌地图导航,我想用水平线在圆圈区域显示指针,所以在此之前我想知道如何获取Ibeacon的正或负
X轴


这个问题有解决办法。但它们很复杂,我们将无法用StackOverflow答案中的简单代码片段来回答

主要问题是信标信号是全方位的。因此,如果你根据信标的信号强度估计你在3米之外,你不知道是哪个方向。对于问题中的2D轴,您不知道是左还是右

第二个问题是,一旦超过1-3米,信号测量上的噪声就会变得相当高,使得距离估计的误差也很高。这使得像三边测量这样的技术即使在如此中等的距离上也难以奏效


对于二维室内定位,一般的解决方案是使用RSSI指纹。这需要一个训练数据集,其中每个信标的相对信号电平向量记录在2D网格上的每个点上。(同样适用于1D线。)训练后,使用此数据集查找位置。为每个信标的相对信号电平创建一个新矢量。然后在训练集中搜索最接近的向量匹配。这给了你你的位置。

你可以查一个称为三边测量或多边测量的概念。假设您知道至少3个信标的位置,它们的位置是分开的,但有信号重叠,您可以求解这些信标之间的任意点

因此,您的移动应用程序需要做的是: 1) 事先了解每个信标的位置(例如x、y)。这些位置可以是任意的,只要它们始终应用于坐标系中的所有信标

2) 扫描每个信标的广告数据,其中应包括该信标的RSSI。您可以使用它来估计每个检测到的信标与手机之间的距离

3) 知道每个信标的位置以及手机与每个信标的距离后,您可以使用多边定位功能计算手机相对于信标的位置。有很多库可以做到这一点,基于非线性最小二乘算法的东西可以工作


我已经在一些室内导航应用程序上完成了上述操作,其质量和准确性在很大程度上取决于你的信标定位。您需要确保在您想要覆盖的任何区域,附近都有3到4个信标,以提供适当的RSSI读数。

@davidgyoung可以帮我看看吗?谢谢你将给你收到的信号强度指示器,它将基本上告诉你离信标有多远。根据信标的类型,您可以将信号强度映射到距离。如果您想要“左”和“右”,我建议重叠信标(即示例中的重叠圆),因为您可以看到测距功能返回的信标子集,从而确定相对位置-一些RSSI到距离的示例@kkarakk有意义,如果存在信标A和信标B的子集,可以说明如何获得信标A的X轴负值或正值。谢谢。嗨,谢谢你的回复。我对这个还很熟悉,这是我第一次使用iBeacon。你能提供一些来源或网址给我以后学习吗?谢谢你的回复,我现在试着用它。谢谢:D