编辑: 645135144 2018-02-20

1 1 从1开始( 下同) , 可编码

9 个校区. 建筑物

3 2 -

3 第1位为校区编码, 预留一定扩展性, 可对

99 个建 筑物编码. 楼层

5 4 -

5 1 -

3 位为建筑物编码, 实际编码位中, 编码大于

10 表示地面上楼层, 小于

10 表示地下楼层.如01 表 示负

1 楼,

21 表示

11 楼. 地点 类别

2 1 -

2 地点类型, 例如,

1 表示建筑物进出口,

2 表示书架 位置等. 具体 地点

9 8 -

9 1 至5位为楼层编码,

6 -

7 位为地点类别编码, 具 体地点值使用最后

2 位编码.通常情况下能满足 使用需求. 校区与建筑物表设计比较简单, 除了两者的地点 编码外, 还含有文本类型的名称、 具体坐标值( 校区表 中指该校区在包含现在学校所有校区的地图中的坐 标, 建筑物表中是该建筑物在校区内地图中的坐标) . 校区表还包含一个字段, 保存校区地图图片所在文件 路径. 楼层表是系统中重要的数据表之一, 具体设计如 表2所示.为处理楼层中的不能通过区域, 如封闭的 房间等, 设计障碍区域表, 现系统支持表

3 所示的

4 种 常见障碍类型. 表2楼层数据表设计 字段名 类型 含义 floor_code nchar( 5) 楼层编码 name nvarchar( 50) 楼层名称 map_path nvarchar( 255) 楼层地图路径 map_width int 楼层地图宽度 map_height int 楼层地图高度 表3障碍区域表 字段名 类型 含义 area_id int 障碍区域自增主键 area_type int 区域类型, 1: 圆形;

2: 线段;

3: 三角形;

4: 矩形 floor_code nchar( 5) 外键, 本区域所在楼层 coor1 int 区域坐标数字, 从1至10, 能满足上述区域 类型需求 … … … coor10 int 区域坐标数字 其他地图类表还包括具体地点表、 地点类型表, 因 表结构比较简单, 这里不再讨论.

4 系统实现技术 4.

1 二维码生成技术 由于 QR 码在我国使用非常广泛, 因此按照 QR 码 标准生成二维码.生成 QR 码的方法很多, 既可以依 据其国际标准 ISO/IEC18004 设计实现生成算法, 也可 以利用各种工具程序, 如快拍二维码 [9 ] 、 QR 精灵 [10 ] 等, 或者采用在线生成的方式, 如利用 Google Chart API[11 ] , 或者采用开源的第三方类库实现.为保证 QR 码生成模块与系统的有机整合, 同时满足提高系统开 发效率和批量生成 QR 码的目标, 本系统采用开源类 库ZXing 生成 QR 码. ZXing[12 ] 全名 Zebra Crossing , 可译作斑马线, 是 一个应用非常广泛的开源

一、 二维码图像处理类库. 需要注意的是, 现阶段的正式版本 ZXing2.

1 在处理中 文字符时会出现乱码, 这是因为其源码( 具体为源文件 com. google. zxing. qrcode. encoder. encoder) 中默认编码 格式为 ISO -

8859 -

1 , 通过下载 ZXing2.

1 源码, 将 该文件代码 : internal const System. String DEFAULT_ BYTE_MODE_ENCODING = ISO -

8859 -

1 ;

中的 ISO -

8859 -

1 修改为 UTF -

8 , 然后重新编译 ZX- ing 类库即可. 图3二维码导视标签 系统生成的导视二维码标签如图

3 所示, 该标签 编码的内容为 http: / /222. 196. 199.

233 /position. as- 总第

232 期2013 年第4期80 现代图书情报技术 px? pid =

201110101 , 标签地点编码为

201110101 , 表示本校成龙校区图书馆一楼大厅入口处. 4.

2 路径导向算法 虽然直接在地图上标识出起止点及电梯口等位置 也能起到导向作用, 但如果能为读者提供起止点之间 最短路径参考, 则能进一步提高服务水平, 因此路径导 向算法成为本系统实现的技术重点. 如果起点和终点属于不同校区, 则通过文字或地 图提示读者到目标校区, 同理可以处理同校区、 但不同 建筑物的情况.起点与终点在同一建筑内, 但分别位 于不同的楼层, 这是最常见的路径导向情境.这里以 某读者在本校成龙校区图书馆一楼大厅门口, 而所需 图书在四楼左前侧为例进行说明.图4和图

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题