| 基于定位二维码的室内地图服务系统的设计与实现 |
2. 武汉大学测绘学院,湖北 武汉,430079;
3. 武汉大学灾害监测与防治研究中心,湖北 武汉,430079
2. School of Geodesy and Geomatics, Wuhan University, Wuhan 430079, China;
3. Research Center of Hazard Monitoring and Prevention, Wuhan University, Wuhan 430079, China
互联网时代的到来,使人类的生活方式全面向数字化迁徙。在这场超越流动节奏的互联网浪潮的推动下,位置服务(location based services,LBS)全面走向大众。如今,基于GNSS(global navigation satellite system)的室外位置服务已经非常成熟[1, 2],但室外地图“最后1 km”的室内位置服务的发展却远远落后,同时随着人们活动的室内空间越来越庞大和复杂,室内地图服务的需求也变得越来越迫切。
目前,国内外已经有谷歌、微软、百度、高德等科技公司提供各具特色的室内地图服务,但当前的室内地图服务并不是一个成熟完善的产品,且其主要基于WiFi定位,不能完美支持导航,尤其在紧急情况下,WiFi热点极可能失效而无法提供服务。
在了解室内位置服务的研究现状的基础上,本文研究并开发了更为廉价且容易商业化的部署方式,以广泛普及的Android移动终端作为服务平台,利用ArcGIS RunTime for Android作为地图引擎,将空间数据库与定位二维码融合,设计并实现了基于定位二维码的室内位置服务系统。
1 系统设计 1.1 系统总体设计室内地图服务系统主要是以移动设备为载体,采用C/S架构实现室内空间的位置服务。室内服务端主要由ArcGIS Server来提供后台数据处理服务,包括地图服务、地理编码服务、要素服务、网络分析服务;室外部分主要通过请求百度地图服务实现定位、位置查询、路径规划等功能。移动客户端以Android设备作为开发平台,主要功能是室内外地图的浏览、定位和查询、以及网络分析服务,在室内利用ArcGIS RunTime for Android进行开发,室外利用百度地图Android SDK开发。
1.2 系统功能设计室内地图服务系统的主要功能包括室内地图设计制作、室内地图服务发布、室内外地图的浏览、定位和查询服务和网络分析服务等。室内地图设计制作包括设计原则的制定和室内地图的绘制及网络数据集的制作;室内地图服务发布是将室内地图和网络数据集发布为地图服务和网络分析服务,同时提供编码服务和要素服务,为客户端提供后台支持;客户端的地图浏览、定位、位置查询、网络分析等功能与Arcgis Server发布的服务对应。
![]() |
| 图 1 室内地图服务系统功能设计 Fig.1 Function Design for Indoor Map Service System |
2 关键技术与方法 2.1 移动GIS引擎
移动地图引擎是移动GIS的核心组件,负责地图渲染显示和操作控制,其性能直接影响渲染效率和响应速度。目前国内外的GIS服务提供商,紧跟IT主流技术,已经推出先进全面而又各具特色的移动GIS解决方案,例如ESRI公司的ArcGIS RunTime for Android[3]、南京跬步科技的UCMap、支持开源地图OpenStreetMap的OSMDroid,中地数码的MapGIS Mobile9等[4]。
由于ArcGIS RunTime通过统一的C++库和GPU(graphics processing unit)加速器实现在不同设备上呈现GIS功能,开发者可以通过ArcGIS RunTime Sdks将ArcGIS强大的空间分析功能构建和部署在各种主流平台和设备上,具有更强的功能性、扩展性和开放性。同时从兼容性、开发资源、用户群体、学习成本来考虑,本文选择ArcGIS RunTime作为室内位置服务的地图引擎,连接ArcGIS Server发布的室内地图服务。
2.2 定位二维码定位二维码,即通过QR(quick response) Code、Data Matrix等编码方案,将空间数据库或其他相关地理信息转换为二维码,供手机、平板电脑等具有摄像功能的设备,经过图像识别和二维码解码后,获取空间信息进行定位的方法[5-6]。与传统室内定位手段相比,基于二维码的室内定位系统,在定位精度、成本、表达能力和互动性上具有独特优势。同时,紧急情况下WiFi等定位手段均可能失效,定位二维码具有更高的可靠性。
二维码模块,采用在Android客户端中嵌入开源框架ZXing,省去用户安装第三方APP的步骤,同时提高客户端的兼容性。ZXing是一个开源Java类库,能够对QR编码、Data Matrix、UPC的1D条形码进行解码,得益于Android平台的开放性及二维码高密度编码、编码范围广、容错能力强等优点,ZXing项目可以通过调用手机的内置的摄像头,实现对二维码高效准确的扫描与解码。为了便于Android设备解析,将数据库的信息编辑为JSON(javaScript object notation)格式。如{“QRID”:“010”, “Type”:“05”, “positionX”:“30.526”, “positionY”:“40.767”, “Name”:“A20303”, “Floor”:“02”},经编码所得的QR二维码如图 2所示。
![]() |
| 图 2 示例定位二维码 Fig.2 An Example of Location QR Code |
2.3 室内地图表达
室内地图主要用来表达复杂的室内环境,航拍或卫星地图无法探测的区域,如大型超市、候机楼、火车站、图书馆等建筑物内部。室内地图的设计必须保证其可读性,不仅要关注局部空间的可达性,而且还要强调整体的空间通达性和关联性[7-10]。在紧急情况下,部分空间分隔可以直接跨越,为逃生节省时间,而现有室内地图只提供功能区域的边界,并未提供阻挡信息,不能还原真实场景的视线连通情况,无法根据不同空间分隔的不同特性提供更加合理的逃生路线。因而,基于室内空间边界明显、空间分隔多样、通行要素复杂等特征,制定了以下表达原则:
1) 简洁性和层次感。将细小繁杂的室内要素进行整合,归类为功能要素、公共要素和通行要素,且将人们关注的要素进行分类分级,突出主次,分图层进行表达,降低用户阅读的时间成本。
2) 突出通行要素。室内环境多楼层及空间分隔复杂的特性,造成室内道路联通十分复杂,且用户在室内的目的性较强,因此在地图设计的时候应突出表示楼梯、电梯、手扶梯、安全出口等通行要素。
3) 空间分隔的表达。室内空间的空间分隔在垂直方向和水平方向上是多种多样的,甚至同一功能区域在不同水平方向上的边界形式和分隔高度也不一致,如图 3所示。根据空间分隔在垂直方向上的高度,将空间分为无窗式空间、侧窗式空间、高窗式空间;在水平方向上的封闭与否,将其划分为全围式空间、半围式空间;在垂直和水平方向上均未隔离的空间为敞开式空间,图 4为不同类型空间分隔的表达方式。
![]() |
| 图 3 不同室内空间分隔 Fig.3 Different Types of Indoor Spatial Separations |
![]() |
| 图 4 不同类型室内空间的室内地图表达 Fig.4 Map Presentation of Different Types of Indoor Space |
3 系统实现 3.1 室内地图绘制
结合室内空间的独特性和室内地图的表达原则,将室内要素整合为功能要素、公共要素和通行要素3类要素,并且将每类要素进行图层划分,以武汉大学图书馆为例,制作室内地图,整体制作流程如图 5所示。将建筑的施工文件作为数据源,导入ArcGIS中,提取所有室内空间要素,进行符号化设计,空间校准后生成室内地图。
![]() |
| 图 5 室内地图制作流程 Fig.5 Making Process of Indoor Map |
3.2 网络数据集设计
网络数据集的核心是参与网络的要素类和连通性表。参与网络的要素类主要指道路图层和垂直连接图层等通行要素,连通性表则记录了网络中每一个网络交点相关边线的交叉属性。本系统的网络数据集应用场景为室内空间结构,其具有以下特点:
1) 三维网络数据集。通过设置Z-Value创建三维网络分析,来满足室内空间多层结构的特性,类似于室外的高架桥和地下通道的结构。通过在ArcGIS Scene中编辑运行该三维网络模型,以交互方式查找最佳路径,如图 6所示,但是三维网络数据集目前只局限于电脑端,ArcGIS RunTime for Android暂时无法支持。
![]() |
| 图 6 三维网络数据集 Fig.6 Datasets of 3D Network |
2) 多模式网络数据集。室内的出行方式虽然为步行,但是室内空间存在自动人行道、自动扶梯、电梯、楼梯等交通要素,本系统设计多模式网络数据集来适应室内交通要素的多样性。与室外的人行道、公共汽车和地铁系统组建的交通模式对应。
3) 紧急网络数据集。室内空间在紧急情况下,不同类型的空间对路径规划将产生重要大影响,例如侧窗式空间在紧急逃生的情况下,可以进行直接跨越,而不必绕行至正常的出入口,为安全脱离险境提供更多的时间。为此本系统设定两个网络数据集,一个为正常秩序下,而紧急网络数据集专门用来为紧急情况下的求生路线规划提供服务。
3.3 室内地图Android客户端系统采用Android Studio开发,主要功能模块有地图浏览、二维码定位、网络分析等。地图浏览用于地图显示、地图选点、室内外地图切换、楼层间地图切换等基本操作;二维码定位通过扫描图书馆现有二维码和实验布设二维码获取位置信息,并在地图上显示以实现定位;网络分析包括路径规划、最近设施、紧急逃生等功能,为用户提供最优路径,且借助身边定位二维码,帮助其快速到达目的地,同时紧急逃生模式下会根据空间分隔是否可跨越,提供非常规路线。
3.4 功能展示以武汉大学图书馆为测试环境,其空间内部也到处可见二维码的身影,如图书馆网站上查询图书的结果页面和每个书架信息牌上均有二维码信息,如图 7所示。系统将最大化的利用现有二维码信息,建立数据库为电脑查询页面二维码、书架二维码与空间位置三者之间提供关联,如图 8所示。系统主要功能展示如下:
![]() |
| 图 7 武汉大学图书馆内现有二维码应用 Fig.7 Existing Applications of QR Code in Wuhan University Library |
![]() |
| 图 8 系统功能展示 Fig.8 Display of System Functions |
1) 图 8(a)展示地图浏览:将室外地图放大直至显示室内地图,室外部分利用百度地图作为底图,室内部分通过ArcGIS RunTime渲染。
2) 图 8(b)展示图书定位:操作流程为扫描电脑查询页面二维码→显示图书所在书架的位置→路径规划。
3) 图 8(c)展示紧急模式路径规划,地图提供最近的安全出口,并且路径信息跨越侧窗式室内空间。
4 结束语本文在对室内地图发展现状分析的基础上,以武汉大学图书馆为例,设计并实现了一个以Android智能设备为载体,基于定位二维码的室内地图服务系统。
1) 室内外分别利用ArcGIS RunTimes和百度地图实现室内室外地图一体化;
2) 对室内空间在垂直空间上的间隔进行分类表达,呈现空间阻碍和视线联通信息;
3) 实现空间数据库或其他相关地理信息与二维码的融合,作为现有室内定位技术的有效补充;
4) 紧急模式逃生路线,通过二维码定位,结合空间分隔的分类表达,为用户提供最安全、最快捷的逃生路线。
今后,将充分利用智能设备中各种传感器,在多源数据融合定位、移动端三维地图渲染等方面展开进一步研究。
| [1] |
陈人骐. 基于Android手机的电子地图服务软件设计与实现[D]. 成都: 成都电子科技大学, 2012 http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=D771438
|
| [2] |
柳婷. 基于Android手机地图服务系统的设计与实现[D]. 北京: 北京邮电大学, 2013 http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=Y2288390
|
| [3] |
吴扬安. 基于ArcGIS for Android的城市管网巡检系统设计与实现[J]. 测绘通报, 2013(S2): 212-214. |
| [4] |
代辉. 基于移动终端的嵌入式GIS系统设计与实现[D]. 阜新: 辽宁工程技术大学, 2013 http://cdmd.cnki.com.cn/Article/CDMD-10147-1014181719.htm
|
| [5] |
王骏飞, 周廷刚, 沈敬伟, 等. 基于二维码和空间数据库的室内定位导航方法研究与实现——以超市导购为例[J]. 西南大学学报(自然科学版), 2014, 36(11): 209-214. |
| [6] |
孟超越, 李宏伟, 许栋浩, 等. 基于二维码的城市部件移动巡查系统研究[J]. 测绘工程, 2016, 25(9): 44-49. |
| [7] |
邓晨, 夏青, 林雕, 等. 基于空间认知的移动室内地图设计新模式[J]. 系统仿真学报, 2014, 26(9): 2097-2103. |
| [8] |
应申, 朱利平, 李霖, 等. 基于室内空间特征的室内地图表达[J]. 导航定位学报, 2015, 3(4): 74-78. |
| [9] |
李华蓉, 赵一. 室内定位导航地图一体化设计[J]. 测绘通报, 2015(9): 32-35. |
| [10] |
宋龙, 夏青, 田江鹏. 移动终端上的室内地图表达研究[J]. 测绘通报, 2015(11): 102-105. |
2018, Vol. 43









