莊 瑩,黃麗娜,鄭恒杰,劉統(tǒng)碩,康雨豪
(1. 武漢大學(xué)資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079; 2. 武漢大學(xué)國際軟件學(xué)院,湖北 武漢 430079)
二維碼定位技術(shù)支持下的室內(nèi)導(dǎo)航電子地圖的設(shè)計與實現(xiàn)
——以武漢大學(xué)圖書館為例
莊 瑩1,黃麗娜1,鄭恒杰2,劉統(tǒng)碩2,康雨豪1
(1. 武漢大學(xué)資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079; 2. 武漢大學(xué)國際軟件學(xué)院,湖北 武漢 430079)
隨著大型復(fù)雜公共室內(nèi)空間逐漸增多,室內(nèi)導(dǎo)航已成為當(dāng)前基于位置服務(wù)(LBS)領(lǐng)域的研究熱點。本研究結(jié)合空間定位技術(shù)和移動地圖技術(shù),設(shè)計和開發(fā)了一種面向復(fù)雜室內(nèi)空間的導(dǎo)航電子地圖,利用二維碼技術(shù)進(jìn)行準(zhǔn)確的室內(nèi)空間定位,并以武漢大學(xué)圖書館為樣區(qū),設(shè)計了一套面向復(fù)雜室內(nèi)空間結(jié)構(gòu)的位置編碼規(guī)則。在此基礎(chǔ)上,開發(fā)和實現(xiàn)了可提供圖書館室內(nèi)定位與最優(yōu)路徑推送的手機端導(dǎo)航電子地圖。
室內(nèi)定位;二維碼技術(shù);室內(nèi)導(dǎo)航;最優(yōu)路徑;圖書館
近20年來,GPS在室外導(dǎo)航的應(yīng)用發(fā)展趨于成熟,衍生了如Google地圖、百度地圖、高德地圖等一系列定位導(dǎo)航軟件。然而,在室外導(dǎo)航逐步趨向成熟化時,室內(nèi)導(dǎo)航并沒有得到其應(yīng)有的發(fā)展。隨著人類需求的增加,各種內(nèi)部結(jié)構(gòu)復(fù)雜的建筑正逐步占據(jù)城市中心,人們往往在到達(dá)建筑外部后不知道如何準(zhǔn)確到達(dá)建筑內(nèi)部的某個具體點。利用傳統(tǒng)的路標(biāo)或人工指引顯然已不能滿足人們對快速定位和尋徑的需要[1],室內(nèi)導(dǎo)航具有極強的發(fā)展前景。
目前常見的幾種室內(nèi)定位技術(shù)如GPS定位、基站定位、WiFi定位等仍難以廣泛應(yīng)用。對于常見的GPS定位,常常會遇到室內(nèi)建筑屏蔽信號,在室內(nèi)實現(xiàn)準(zhǔn)確定位難度較大[2];基站定位則需要足夠的信號覆蓋范圍,因而建設(shè)成本較大[3];而對于WiFi定位技術(shù),WiFi信號需要布置足夠高的強度方可實現(xiàn),相對復(fù)雜[4]。可以看出,以上定位方式在定位精度及硬件設(shè)備部署成本方面尚無法較好地適應(yīng)室內(nèi)導(dǎo)航的需求。
近年來,隨著二維碼的使用遍及生活,其方便快捷的數(shù)據(jù)存儲性[5]為空間定位提供了另一種可能,本文創(chuàng)造性地將空間信息存儲于二維碼中,利用二維碼技術(shù)準(zhǔn)確匹配室內(nèi)位置節(jié)點,通過節(jié)點來構(gòu)建矢量模型,從而通過室內(nèi)電子地圖達(dá)到導(dǎo)航目的地。針對武漢大學(xué)校圖書館館藏資源豐富、空間結(jié)構(gòu)復(fù)雜的特點,選擇該圖書館作為試驗樣區(qū),設(shè)計并實現(xiàn)了基于二維碼定位技術(shù)的室內(nèi)地圖導(dǎo)航系統(tǒng)。本文將對研究過程中涉及的關(guān)鍵技術(shù)內(nèi)容如基于二維碼的位置信息生成、室內(nèi)目標(biāo)位置的分類與編碼、室內(nèi)地圖構(gòu)建與數(shù)據(jù)組織、網(wǎng)絡(luò)分析與服務(wù)發(fā)布、手機端系統(tǒng)設(shè)計與實現(xiàn)等進(jìn)行介紹。
1.1 二維碼生成基本算法
二維條碼(2-dimensional bar code)也稱為二維碼,是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形記錄數(shù)據(jù)符號信息[6]。其生成基本算法[7]主要分為以下幾個過程:
(1) 數(shù)據(jù)分析:即確定編碼字符類型,從而根據(jù)對應(yīng)字符集轉(zhuǎn)換成符號字符并確定糾錯等級。
(2) 數(shù)據(jù)編碼:將數(shù)據(jù)字符轉(zhuǎn)換為位流,每八位一個碼字。首先對數(shù)據(jù)進(jìn)行分組,接著根據(jù)字符集轉(zhuǎn)換為二進(jìn)制碼序列,再向序列中加入字符數(shù)與模式指示符的對應(yīng)二進(jìn)制碼。
(3) 糾錯編碼:根據(jù)確定的等級產(chǎn)生糾錯碼字,并加入到數(shù)據(jù)碼字序列的后面。生成糾錯碼主要是通過Reed-Solomon error correction算法實現(xiàn)的,分為三步:①計算校正子(syndrome);②計算錯誤位置;③計算錯誤值。
(4) 構(gòu)造矩陣:先把數(shù)據(jù)分塊,對每一塊進(jìn)行計算,得出相應(yīng)的糾錯碼字區(qū)塊;再把糾錯碼字區(qū)塊按順序構(gòu)成一個序列,添加到原先的數(shù)據(jù)碼字序列后面;最后把上面的完整序列填充到相應(yīng)規(guī)格的二維碼矩陣的區(qū)域中。
(5) 掩模:將掩模圖形用于符號的編碼區(qū)域,使得二維碼圖形中的深色和淺色(黑色和白色)區(qū)域能夠比率最優(yōu)地分布。
(6) 格式和版本信息:生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)。
1.2 位置信息的二維碼生成
在生活中,對地點的描述往往是文字性的,如C棟2樓文學(xué)區(qū),然而計算機并不能直接將其與地點聯(lián)系起來。為了能在地圖上找到對應(yīng)地點,筆者對圖書館的多個地點的坐標(biāo)進(jìn)行地理編碼,形如A1-01-D1,然后用二維碼技術(shù)生成含有坐標(biāo)信息的二維碼,這樣只要用手機進(jìn)行掃描二維碼就可以讀取相應(yīng)位置信息。
如A1圖書閱覽區(qū)的第一個出口處,編碼為A1-01-D1,在Version 1的尺寸下,糾錯級別為H,則根據(jù)Alphanumeric mode字符編碼。它是一個包括0-9、大寫的A到Z(沒有小寫),以及某些符號(S|、%、*、+、-、.、/、: 和空格)的序列,這些字符會映射成一個字符索引表(如圖1所示)。
注:SP是空格,Char是字符,Value是其索引值圖1 Alphanumeric mode 字符編碼表[8]
(1) 從字符索引表中找到A1-01-D1的索引(10,1,41,0,1,41,13,1),兩兩分組得到(10,1)、(41,0)、(1,41)、(13,1)。
(2) 把每組轉(zhuǎn)成11bits的二進(jìn)制碼,可得:
(10,1) 10*45+1=451轉(zhuǎn)成00111000011
(41,0) 41*45+0=1845轉(zhuǎn)成11100110101
(1,41) 1*45+41=86轉(zhuǎn)成00001010110
(13,1) 13*45+1=585轉(zhuǎn)成01001001001
(3) 連接得到序列 00111000011 11100110101 00001010110 01001001001,再把字符的個數(shù)轉(zhuǎn)成二進(jìn)制 (Version 1-H為9 bits ): 8個字符,8轉(zhuǎn)成 000001000,在二進(jìn)制碼前加上編碼標(biāo)識 0010 和表示字符個數(shù)為8的二進(jìn)制編碼,得到: 0010 000001000 00111000011 11100110101 00001010110 01001001001。
(4) 添加結(jié)束符,如果所有的編碼加起來不是8個的倍數(shù),還要在后面加上足夠的0。如果還未達(dá)到最大的bits數(shù)的限制,還須加一些補齊碼,重復(fù)下面的兩個bytes:11101100 00010001。
(5) 通過Reed-Solomon error correction生成糾錯碼。把數(shù)據(jù)碼和糾錯碼穿插放置,先把數(shù)據(jù)分塊,對每一塊進(jìn)行計算,得出相應(yīng)的糾錯碼字區(qū)塊;再把糾錯碼字區(qū)塊按順序構(gòu)成一個序列,添加到原先的數(shù)據(jù)碼字序列。
(6) 把完整序列填充到相應(yīng)規(guī)格的二維碼矩陣的區(qū)域中,并生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)。使用掩模圖像進(jìn)行XOR操作得到最終二維碼。
上述算法可以保證每個二維碼可對應(yīng)唯一的一個地理編碼,從而保證了二維碼識別定位技術(shù)的準(zhǔn)確性和可靠性。本項目采用在安卓平臺下的二維碼識別功能,在地圖導(dǎo)航APP中使用谷歌提供的掃描二維碼API。通過二維碼儲存足夠量的坐標(biāo)數(shù)據(jù),用戶在張貼二維碼處進(jìn)行掃描,獲取地理編碼字符串信息,再通過解析即可在地圖上實現(xiàn)定位。該方法部署簡單節(jié)約,抗干擾性強,有效避免了出錯并可以儲存足夠的位置信息,適用于在圖書館等大型室內(nèi)場所實現(xiàn)。
2.1 室內(nèi)設(shè)施分類
在編碼體系中,室內(nèi)地圖數(shù)據(jù)的基本對象是房間、走廊、POI等[9],為方便進(jìn)行地理編碼,在此需對室內(nèi)設(shè)施進(jìn)行分類。首先將所有設(shè)施分為兩大類:一類為門、樓梯等可作為路徑的通道入口[10];另一類為其他體現(xiàn)室內(nèi)環(huán)境特征的功能區(qū)。一般室內(nèi)場館根據(jù)其功能具有不同的功能分區(qū)。如商場內(nèi)有餐館、超市、服裝區(qū)、娛樂區(qū)等;而圖書館內(nèi)則有圖書借閱區(qū)、閱覽區(qū)、自主學(xué)習(xí)區(qū)等。
在本項目中,參照圖書館原有平面圖,大致依據(jù)不同功能分類,對室內(nèi)設(shè)施分類,見表1。
表1 圖書館室內(nèi)設(shè)施分類
2.2 空間位置編碼
由于目前室內(nèi)地圖編碼缺乏相關(guān)標(biāo)準(zhǔn),本項目中采用了自行研究創(chuàng)立的編碼規(guī)則系統(tǒng),對場館內(nèi)部設(shè)施進(jìn)行分類及編碼,以建立屬性信息與空間點的聯(lián)系。
項目中選取的圖書館共分為六層樓,每層樓分為ABCDE 5個區(qū),對每個定位點進(jìn)行編碼,每個編碼分為3段,形式為xx-xx-xxx,如A2-01-ST7。
各段編碼規(guī)則如下:
(1) 分區(qū)編號。大型場館內(nèi)部一般已有分區(qū),沿用該分區(qū)既具地理區(qū)分性,又符合人類認(rèn)知。因此,此處編碼分區(qū)與圖書館分區(qū)一致,中間連通地帶及其他地區(qū)編為F+樓層號。
具體編碼格式為:1位字母(A-F)+1位數(shù)字。
(2) 功能編號。將功能區(qū)作為一個字段編碼,有利于用戶按需求快速檢索到相關(guān)區(qū)域,體現(xiàn)電子地圖的優(yōu)點。
具體編碼格式為:2位數(shù)字。其中,00:非功能區(qū);01-29:各功能區(qū)編號,對應(yīng)圖書館所具有的各功能設(shè)施類別,如圖書借閱區(qū)(01)、辦公區(qū)(02)、衛(wèi)生間(26)、學(xué)術(shù)報告廳(29)等。
(3) 門或樓梯編號。門或樓梯是室內(nèi)一個功能空間實體與外界聯(lián)通的地方,是路徑導(dǎo)航中不可或缺的節(jié)點,因此單獨作為一個字段進(jìn)行存儲,以標(biāo)識該空間點處的可連通性。由于一個功能區(qū)中可能具有多個門及樓梯,此處引入數(shù)字以做唯一區(qū)分標(biāo)識。
門:D+1位數(shù)字。各區(qū)不連續(xù)編號,每個區(qū)以最靠東北方向的門起編號為1,再順時針依次編號。
樓梯:ST+兩位數(shù)字,每層樓最多有10個樓梯,由于各層樓梯大致相同,采用兩位數(shù)字進(jìn)行編號,每層同一位置樓梯編號相同,以保證連通性。
其他:字母O,適合如廁所、服務(wù)臺、衛(wèi)生間等較小且無需區(qū)分門的空間,此類節(jié)點在路徑圖中多為懸掛點。
根據(jù)以上編碼規(guī)則,舉例如下,1樓總服務(wù)臺不屬于A-E分區(qū)中的任何一個,第一字段為F1,總服務(wù)臺功能編號為03,且無需區(qū)分門,故屬性編碼為:F1-03-O;2樓A2區(qū)圖書借閱區(qū)東邊樓梯為:A2-01-ST7。
導(dǎo)航電子系統(tǒng)架構(gòu)圖如圖2所示。本研究在ArcGIS Server上發(fā)布地圖服務(wù)(Map Service)及路網(wǎng)分析服務(wù)(Network Analysis Service)。Map Service允許用戶以切片方式訪問地圖;Network Analysis Service進(jìn)行網(wǎng)絡(luò)分析[11],從而實現(xiàn)同層間的導(dǎo)航及不同層間的導(dǎo)航。
圖2 系統(tǒng)結(jié)構(gòu)
在定位節(jié)點上,用戶可通過人機交互界面掃描二維碼(如圖3所示),得到對應(yīng)于定位列表中Primary Key字段的索引值。定位列表保存有地圖上所有可定位點的信息與索引,該列表由運行在ArcGIS Server上的程序自動生成與更新,儲存在ArcGIS Server的數(shù)據(jù)庫中。當(dāng)安卓端與Server通信時,該列表加載到本地的緩存中,之后的查詢指向本地緩存。通過檢索列表從ArcGIS Server 中查找到唯一室內(nèi)定位點。
圖3 掃描二維碼讀取定位點信息
該系統(tǒng)對原生的MapView控件進(jìn)行了擴(kuò)展,更改了其對多個圖層的狀態(tài)控制機制,使其不活躍的圖層得以在后臺繼續(xù)加載。當(dāng)切換到一個樓層時,其他樓層所對應(yīng)的樓層變得不可見,不響應(yīng),但標(biāo)記圖層上與該樓層對應(yīng)的圖形得以顯示。這使得每一個樓層所對應(yīng)的標(biāo)記都不會相互影響。
該系統(tǒng)的尋徑功能針對同樓層和不同樓層的兩種情況采取不同的分析策略:
(1) 起點終點在同樓層:使用ArcGIS for Android SDK的原生路徑分析類,與服務(wù)器的NAServer通信,得到路徑信息,如圖4所示。
(2) 起點終點在不同樓層:每一樓層中的各尋路點都是聯(lián)通的,不同樓層由樓梯相互連接。因此,使用DFS算法,首先找到起點距離最近的樓梯,再找到與該樓梯聯(lián)通的樓層,到達(dá)邊界時回溯,直到找到第一個可行路徑。
圖4 最短路徑實現(xiàn)圖
本文基于二維碼的位置信息生成基本算法,以武漢大學(xué)圖書館為例,進(jìn)行了室內(nèi)電子地圖導(dǎo)航系統(tǒng)的設(shè)計與實現(xiàn),為展會、圖書館和博物館等大型建筑的室內(nèi)導(dǎo)航提供了有益的探索。通過掃描二維碼的方式使用戶主動進(jìn)行定位,它有別于傳統(tǒng)手動輸入文字的煩瑣,利用圖片掃描的方式來記錄復(fù)雜的地理位置信息,同時又極為方便快捷,結(jié)果精確,成本低廉,不失為一種室內(nèi)定位技術(shù)的良好方式。隨著大型場館的數(shù)量逐漸增多,傳統(tǒng)的路標(biāo)指示牌除了難以提供連續(xù)指引外,還存在成本高、數(shù)量少、更換困難等缺點。而二維碼則可隨時更新,還可通過顯示屏顯示,用戶只需在起點處掃描二維碼即可獲取到終點路徑。在圖書館情境下,除了道路指引,該系統(tǒng)經(jīng)改進(jìn)后還可提供書架索引、自習(xí)座位指引等,大幅度提升圖書館服務(wù)質(zhì)量。隨著二維碼技術(shù)的逐漸成熟與推廣,二維碼已經(jīng)成為人們生活的一部分,以二維碼作為地理位置信息載體的應(yīng)用將具有巨大的發(fā)展空間。
[1] 李文武. 基于OpenWrt Wi-Fi Mesh網(wǎng)絡(luò)的室內(nèi)導(dǎo)航[D]. 大連:大連理工大學(xué), 2013.
[2] 曹世華. 室內(nèi)定位技術(shù)和系統(tǒng)的研究進(jìn)展[J]. 計算機系統(tǒng)應(yīng)用, 2013(9):1-5.
[3] 夏英,萬建斌, 劉素彤,等. 基于Wi-Fi和基站信號強度的室內(nèi)定位系統(tǒng)設(shè)計與實現(xiàn)[J]. 數(shù)字通信, 2012, 39(6):21-25.
[4] 徐偉.基于Android手機的室內(nèi)定位技術(shù)研究與實現(xiàn)[D].武漢:華中師范大學(xué),2014.
[5] 楊軍, 劉艷, 杜彥蕊. 關(guān)于二維碼的研究和應(yīng)用[J]. 應(yīng)用科技, 2002, 29(11):11-13.
[6] 郭全中. 二維碼的應(yīng)用[J]. 黨政論壇(干部文摘), 2013(11):26.
[7] 程裕強, 劉愛民, 周國軍. 二維碼生成算法研究[J]. 玉林師范學(xué)院學(xué)報, 2014(5):118-122.
[8] 陳皓.二維碼的生成細(xì)節(jié)和原理[EB/OL].2013-10-29. http:∥developer.51cto.com/art/201310/414082_all.html.
[9] 任玉環(huán),劉亞嵐,彭玲,等.室內(nèi)地圖數(shù)據(jù)標(biāo)準(zhǔn)體系探討[J].測繪通報,2015(7): 50-53.
[10] 游天, 周成虎, 陳曦. 室內(nèi)地圖表示方法研究與實踐[J]. 測繪科學(xué)技術(shù)學(xué)報, 2014, 31(6):635-640.
[11] 楊澤運, 楊金玲, 李秀海,等. 基于ArcGIS Server的網(wǎng)絡(luò)地圖服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[J]. 測繪工程, 2015,24(10):41-44.
[12] 任豪毅. 基于二維碼的智能手機室內(nèi)定位方法[D]. 杭州:浙江大學(xué), 2013.
[13] 高建清, 董義, 董雙林. 室內(nèi)定位技術(shù)在高校圖書館中的應(yīng)用[J]. 科技情報開發(fā)與經(jīng)濟(jì), 2013, 23(23):6-8.
Design and Development of Indoor Navigation Map Based on QR Code: The Case of Wuhan University Library
ZHUANG Ying1,HUANG Lina1,ZHENG Hengjie2,LIU Tongshuo2,KANG Yuhao1
(1. School of Resources and Environmental Science, Wuhan University, Wuhan 430079, China; 2. International School of Software,Wuhan University, Wuhan 430079, China)
With the increase of large and complex public indoor space, indoor navigation has attracted great attention in the field of location based service. In this paper, we design and develop a navigational electronic map for the complex indoor space based on the spatial location technology and mobile map. For the purpose of obtaining the accurate indoor location, the quick response(QR) code is used, and a set of position coding rules for the complex indoor structures are designed. The library of Wuhan University is used as a sample area in the study. Then a mobile navigation electronic map, which is friendly and easy to provide indoor navigation service as well as to advise the optimal path in the library, is developed and implemented.
indoor location; quick response code technology; indoor navigation; optimal path; library
莊瑩,黃麗娜,鄭恒杰,等.二維碼定位技術(shù)支持下的室內(nèi)導(dǎo)航電子地圖的設(shè)計與實現(xiàn)——以武漢大學(xué)圖書館為例[J].測繪通報,2017(5):125-128.
10.13474/j.cnki.11-2246.2017.0170.
2016-07-28;
2017-01-12
國家基礎(chǔ)科學(xué)人才培養(yǎng)基金(J1103409);武漢大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(S2015531)
莊 瑩(1995—),女,研究方向為制圖與地理信息。E-mail: 1102092161@qq.com
黃麗娜
P28
A
0494-0911(2017)05-0125-04