通过手机到不同Wifi的强度,计算手机的当前位置。通过选择目标地址,画出路线。当行动时,给出当前位置。
根据以上描述,给出基本设计和主要的测试用例。
##假定条件:
1、在一定范围内的室内 2、所有WiFi中心点分布均匀,并具有唯一标识(实际应该是MAC地址和SSID,我们可以假设一个ID为标识) 3、每个WiFi的覆盖范围相同,并都是以r为半径的圆形 4、室内全部覆盖 5、手机信号与距离的关系: (1)手机到每个WiFi点的信号和手机与WiFi中心点的距离成正比(实际情况不是成反比(理想情况下,信号强度=a+b*log(d), 其中d为手机与WiFi中心点的距离),我们假设成正比,只是公式变化,算法无异)。 (2)预先确定一个映射关系(信号强度范围->距离),然后定期维护此映射关系。
##基本设计
- 选定室内某一位置为参考点作直角坐标系。
- 通过手机到不同Wifi的强度,计算手机到不同WiFi中心点的距离。
- 将WiFi中心点分组,每组两个WiFi中心点,以(1)中计算的距离为半径,分别做圆,两个圆的交点即为手机位置坐标, 将每组计算的坐标值求平均,得到最终手机位置,当然,这里要设置一个最大组数,当中心点太多时,可以减少时延。
- 用户选定目标位置,转化为坐标,以距离最短为目标选择最优路径。
- 当行动时,WiFi强度变化,考虑到时延(包括计算距离和确定位置坐标的计算),若WiFi强度变化频率超过一定数值, 则计算位置的算法只算一次,不用多次求平均,考虑到路线的连续性,满足在一定的时间内更新位置即可,并实时的将计算的坐标对应到地图上。 6)定期维护室内地图信息,保证可用路线可达。
##测试用例
- 测试WiFi定位 室内-----室外
- 测试目标定位 室内-----室外
- 测试路线规划 无障碍室内-----有障碍室内
- 测试行动时位置的实时更新 速度:0----范围1----范围2