一、简要说明
WiFiCollector.apk 是Wifi指纹采集软件。
museum-4.jpg 是一个室内地图示例文件。
buildinginfo.png 是软件首页的截图。
二、使用教程:
1.安装apk。
2.预先把地图文件(支持jpg/png/bmp等图片格式)放到手机的某个目录下。
3.打开软件,填写需要采集的建筑物楼层地图信息:名称(用拼音或者英文)、层号,然后浏览并选择该楼层的地图文件。长度和宽度分别填写地图对应的实际几何长度(取近似值即可)。buildinginfo.png给出了一个示例。
4. 点击OK,进入地图页面,每次采集一条线。在地图上找到当前位置,长按,选择开始采集,匀速直线行走。到达终点后,长按,选择结束采集。
4. 如果某条线采错,可以单击,选中之后,选择删除。(如果单击无法选中,可以多试一下,或者放大后再试)。
5. 采集的数据位于目录:/sdcard/Wireless/WifiFingerprint/
三、数据文件名称
一个楼层的指纹数据对应三个文件,命名方式和含义如下:
%name_%floor_WIFI_ColletLine : 采集的线段(注意:删除的线段也包含在里面)
%name_%floor_WIFI_ColletLine_Del : 删除的线段
%name_%floor_WIFI_WIFI_Finger : 指纹点的信息
四、数据文件格式
4.1 %name_%floor_WIFI_ColletLine :
线段Id,楼层号,起点x坐标(图片像素坐标),起点y坐标,终点x坐标,终点y坐标,起始时间(以毫秒为单位),终止时间。
示例: 1523801762155,4,499.109375,1346.648071,482.061859,944.655457,1523801762155,1523801781082
4.2 %name_%floor_WIFI_ColletLine_Del
线段Id
示例: 1523801762155
4.3 %name_%floor_WIFI_WIFI_Finger
线段Id,指纹点x坐标,指纹点y坐标,扫描到的Ap的BSSID列表(以|分隔),RSSI列表,SSID列表。
示例: 1523801762155,499.109375,1346.648071,9c:1c:12:a7:27:c0|9c:1c:12:a6:da:82|9c:1c:12:a6:da:81|9c:1c:12:a6:80:da,-60|-70|-70|-69,fduwireless|iFudan|139ess|xingtouke
五、其它情况说明及注意事项:
(1)采集时,只能沿直线行走,尽可能匀速前进。遇到比较长的走道,需要分成几段采集,建议每段的长度不要超过20m,每段也不宜太短,尽量大于5m以上。
(2)建议每条线段采集过程持续的时间不要太短,至少5s以上。通常wifi扫描的周期为2-3秒,那么5秒钟能保证一条线段上至少可以生成一个指纹点。
(3)采集的数据是及时保存的,每采集完一条线段,就将该线段对应的数据写入了文件。
(4)当前采集的建筑物楼层信息和线段信息都用SharedPreferences保存了。因此采集过程可以由用户灵活控制,像这样:采集完一个区域,关闭软件,抽根香烟休息一下,过段时间再打开,接着采集下一个区域。
但是要注意:再次打开软件时,首页填写的信息不要修改,直接点击OK按钮,这样进入采集页面就能正常恢复之前的状态。
如果修改了首页信息,则原来保存在SharedPreferences的信息被替换,也就无法恢复之前状态。
(5)用户做数据处理时,应该将”删除的线段“所对应的指纹点剔除掉。
具体处理方式为:根据文件 ”%name_%floor_WIFI_ColletLine_Del“ 中的线段Id,在文件 ”%name_%floor_WIFI_WIFI_Finger“ 中找到所对应的指纹数据,剔除。