孟凡姿,宣丙龍
(吉林建筑大學(xué)城建學(xué)院 電氣信息工程系,長(zhǎng)春 130114)
基于MIF格式的地圖數(shù)據(jù)存儲(chǔ)方法研究
孟凡姿,宣丙龍
(吉林建筑大學(xué)城建學(xué)院 電氣信息工程系,長(zhǎng)春 130114)
在分析地圖數(shù)據(jù)模型和實(shí)際需求的基礎(chǔ)上,設(shè)計(jì)一種二進(jìn)制數(shù)據(jù)存儲(chǔ)方式存儲(chǔ)地圖數(shù)據(jù)。針對(duì)經(jīng)緯度坐標(biāo)到平面坐標(biāo)轉(zhuǎn)換計(jì)算較為復(fù)雜的情況,本文建立線性轉(zhuǎn)化模型實(shí)現(xiàn)地心地固(Earth-centered, Earth-fixed, ECEF)坐標(biāo)系下經(jīng)緯度坐標(biāo)到本地坐標(biāo)系下平面坐標(biāo)的快速轉(zhuǎn)換,分開(kāi)存儲(chǔ)屬性信息和幾何數(shù)據(jù)信息,建立兩種數(shù)據(jù)的交互索引關(guān)系。在保證地圖精度的條件下,提出整型數(shù)據(jù)代替浮點(diǎn)數(shù)據(jù)的存儲(chǔ)方式,減小數(shù)據(jù)存儲(chǔ)的物理空間的同時(shí),提高了地圖幾何數(shù)據(jù)到屏幕坐標(biāo)的轉(zhuǎn)換效率,加快了地圖繪制的速度。
地圖數(shù)據(jù);坐標(biāo)轉(zhuǎn)化;數(shù)據(jù)存儲(chǔ)
隨著工業(yè)自動(dòng)化程度的日益提高,可編程控制器和組態(tài)軟件相結(jié)合[1]的使用越來(lái)越普遍。在目前的很多自控系統(tǒng)中,常常選用PLC作為現(xiàn)場(chǎng)級(jí)的控制設(shè)備,用于數(shù)據(jù)采集和控制。而在系統(tǒng)上位機(jī)上利用工控組態(tài)軟件來(lái)完成工業(yè)流程及控制參數(shù)的顯示實(shí)現(xiàn)生產(chǎn)監(jiān)控和管理等功能[2]。
地圖數(shù)據(jù)包含幾何數(shù)據(jù)和屬性數(shù)據(jù)兩類(lèi)子數(shù)據(jù),由它們共同組成的一條記錄代表電子地圖中的一個(gè)具體圖元[1]。幾何數(shù)據(jù)反映了圖元所對(duì)應(yīng)的實(shí)物在地理實(shí)體中的實(shí)際空間位置,它通過(guò)坐標(biāo)形式給出,如經(jīng)緯度坐標(biāo)形式。按形狀劃分,幾何數(shù)據(jù)可以分為點(diǎn)型數(shù)據(jù)、線型數(shù)據(jù)以及區(qū)域型數(shù)據(jù);按類(lèi)型劃分,幾何數(shù)據(jù)可分為固有數(shù)據(jù)和拓?fù)鋽?shù)據(jù)[2]。屬性數(shù)據(jù)反映了地圖圖元位置以外的其他信息,它是對(duì)圖元的具體描述,屬性數(shù)據(jù)與幾何數(shù)據(jù)的結(jié)合構(gòu)成了完整的地圖圖元數(shù)據(jù)[2]。
地圖按照組織結(jié)構(gòu)的不同可分為矢量地圖和柵格地圖,相應(yīng)地,地圖數(shù)據(jù)形式包括矢量形式和柵格形式兩種[2]。在柵格形式的地圖數(shù)據(jù)中,采用橫豎交織的網(wǎng)格線對(duì)地圖進(jìn)行分割處理,且一般要滿(mǎn)足一個(gè)條件,即平行相鄰的網(wǎng)格線之間的跨度是相等的。這樣地圖會(huì)被分為一個(gè)個(gè)的小的正方形區(qū)域,每個(gè)小正方形區(qū)域代表一個(gè)信息,單位地圖區(qū)域內(nèi)網(wǎng)格線的數(shù)量越多,則被分割出的正方形區(qū)域越多,這意味著柵格地圖的分辨率越高。
不同于柵格形式地圖數(shù)據(jù)的離散化效果,矢量形式的地圖數(shù)據(jù)將地圖看作是一個(gè)連續(xù)的整體,地圖中的任意小的一個(gè)點(diǎn)都有自己唯一的坐標(biāo),且其一定在地圖所跨越的坐標(biāo)范圍內(nèi)。
很顯然,柵格形式地圖數(shù)據(jù)和矢量形式地圖數(shù)據(jù)在表達(dá)方式上差別很大,但它們都能有效地完成地圖的繪制,且能夠反映出地圖圖元的空間分布情況。由于柵格形式數(shù)據(jù)有固定分辨率特性,決定了它不適于對(duì)地圖進(jìn)行縮放操作,而且它的數(shù)據(jù)離散特點(diǎn)也令其很難滿(mǎn)足地圖匹配和路徑尋優(yōu)等算法的需求,所以在導(dǎo)航系統(tǒng)中,地圖應(yīng)該采用矢量數(shù)據(jù)形式進(jìn)行表達(dá)。
MapInfo軟件在地圖數(shù)據(jù)處理方面技術(shù)成熟,它能夠與很多其他地圖數(shù)據(jù)文件兼容,是目前應(yīng)用最為廣泛的地圖繪制軟件之一。按照基本的地圖數(shù)據(jù)模型,在MapInfo軟件中,也是將地圖圖元分為點(diǎn)圖元、線圖元和區(qū)域圖元三種不同的類(lèi)型[3],它們對(duì)應(yīng)的地圖數(shù)據(jù)則為點(diǎn)型、線型和區(qū)域型,這些數(shù)據(jù)是以矢量形式進(jìn)行組織的。
2.1 TAB型數(shù)據(jù)
MapInfo對(duì)地圖數(shù)據(jù)的組織分為兩種形式,一種為T(mén)AB型數(shù)據(jù)形式,另一種為MIF型數(shù)據(jù)形式。前者所包含的數(shù)據(jù)信息更加全面,相比于前者,后者只包含了部分?jǐn)?shù)據(jù)信息。TAB型數(shù)據(jù)是MapInfo軟件存儲(chǔ)地圖的原始數(shù)據(jù)形式,它是一種專(zhuān)用的數(shù)據(jù)格式,其必須要在MapInfo軟件上才能順利地繪制地圖,同時(shí),它也作為MapInfo公司的商業(yè)機(jī)密而存在,這就決定了它的具體格式和結(jié)構(gòu)是對(duì)外保密的。由此引入對(duì)MIF數(shù)據(jù)格式的研究。
2.2 MIF型數(shù)據(jù)
為了對(duì)原始的TAB型數(shù)據(jù)進(jìn)行保護(hù),同時(shí)方便用戶(hù)利用地圖數(shù)據(jù)開(kāi)發(fā)出更多的功能,MapInfo公司提供了一種對(duì)用戶(hù)公開(kāi)的數(shù)據(jù)文件,并將之命名為MIF格式數(shù)據(jù)文件,它是對(duì)原始數(shù)據(jù)進(jìn)行了裁剪的結(jié)果,去除了TAB型數(shù)據(jù)所擁有的拓?fù)鋽?shù)據(jù),MIF格式數(shù)據(jù)的優(yōu)點(diǎn)就是以ASCII方式進(jìn)行存儲(chǔ),令人一目了然,方便與其他地圖軟件交換信息。
MIF格式數(shù)據(jù)對(duì)圖元的存儲(chǔ)是分為兩個(gè)文件進(jìn)行的,一個(gè)是擴(kuò)展名為.MID的文件,該文件用于存儲(chǔ)圖元的名稱(chēng)、ID號(hào)等屬性數(shù)據(jù)信息,一個(gè)是擴(kuò)展名為.MIF的文件,與屬性數(shù)據(jù)對(duì)應(yīng),該文件主要存儲(chǔ)圖元的幾何數(shù)據(jù)信息[3]。
3.1 二進(jìn)制數(shù)據(jù)存儲(chǔ)
根據(jù)數(shù)據(jù)存儲(chǔ)方式的不同,數(shù)據(jù)存儲(chǔ)包括二進(jìn)制方式存儲(chǔ)和ASCII方式存儲(chǔ),它們都可以完成對(duì)地圖數(shù)據(jù)的存儲(chǔ)任務(wù),不同的是ASCII方式存儲(chǔ)要占用較大的存儲(chǔ)空間,造成不必要的空間浪費(fèi),而二進(jìn)制存儲(chǔ)占用的空間相對(duì)較小,且對(duì)所存儲(chǔ)內(nèi)容存在加密效果。因此,針對(duì)嵌入式系統(tǒng)來(lái)說(shuō),二進(jìn)制存儲(chǔ)更能滿(mǎn)足要求,能提高其數(shù)據(jù)處理效率。在具體的存儲(chǔ)過(guò)程中,對(duì)不同類(lèi)型的數(shù)據(jù)進(jìn)行有針對(duì)性的處理,保證其占用的存儲(chǔ)空間為最小。在坐標(biāo)信息的存儲(chǔ)過(guò)程中,不采用浮點(diǎn)型數(shù)據(jù)進(jìn)行存儲(chǔ)的方式,而是用32位無(wú)符號(hào)整形代替浮點(diǎn)型進(jìn)行存儲(chǔ),在存儲(chǔ)前對(duì)原始數(shù)據(jù)進(jìn)行相應(yīng)的放大處理,確保其有足夠的精度來(lái)滿(mǎn)足導(dǎo)航系統(tǒng)的相應(yīng)要求。針對(duì)不同的圖元信息,將它們區(qū)分為點(diǎn)、線、區(qū)域三大類(lèi)別,對(duì)每種類(lèi)別又分別采用兩個(gè)文件來(lái)存儲(chǔ)它們的地圖數(shù)據(jù)信息,一個(gè)是屬性索引文件,另一個(gè)是幾何數(shù)據(jù)文件。屬性索引文件存儲(chǔ)的是各個(gè)圖元的基本屬性信息,幾何數(shù)據(jù)文件存儲(chǔ)的是相應(yīng)圖元的空間數(shù)據(jù)信息和詳細(xì)屬性信息,對(duì)于兩個(gè)文件中的同一圖元,分別設(shè)置了偏移信息來(lái)進(jìn)行相互索引,保證其對(duì)相同的圖元能夠快速的實(shí)現(xiàn)信息融合,無(wú)論是對(duì)地圖繪制,還是對(duì)信息搜尋,這樣的結(jié)構(gòu)都有很大的好處。
3.2 坐標(biāo)的線性轉(zhuǎn)化法
因?yàn)閺腗IF格式地圖數(shù)據(jù)中只能得到基于WGS-84坐標(biāo)系的經(jīng)緯度坐標(biāo),而經(jīng)緯度坐標(biāo)是不能直接用于地圖繪制的[4],要進(jìn)行地圖繪制,就必須將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為平面坐標(biāo),然后再將平面坐標(biāo)轉(zhuǎn)換為屏幕像素坐標(biāo)[5]。本文研究處理的地圖數(shù)據(jù)是哈爾濱市地圖數(shù)據(jù),所以用Beijing-54坐標(biāo)系的平面坐標(biāo)最為符合[6]。將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為平面坐標(biāo)之后,就可以經(jīng)過(guò)進(jìn)一步的轉(zhuǎn)換而繪制電子地圖。
在WGS-84坐標(biāo)系下,令某一點(diǎn)的經(jīng)緯度坐標(biāo)轉(zhuǎn)換為平面坐標(biāo),可以通過(guò)高斯投影,但運(yùn)算較為復(fù)雜,不適于在嵌入式設(shè)備上進(jìn)行。針對(duì)這種情況,本文設(shè)計(jì)了一種坐標(biāo)的線性轉(zhuǎn)化法來(lái)實(shí)現(xiàn)經(jīng)緯度坐標(biāo)到平面坐標(biāo)的轉(zhuǎn)換工作,在地圖數(shù)據(jù)處理階段,可以用該方法將數(shù)據(jù)轉(zhuǎn)換后進(jìn)行存儲(chǔ),在導(dǎo)航定位期間,可以用該方法對(duì)衛(wèi)星接收模塊接收到的定位經(jīng)緯度信息進(jìn)行轉(zhuǎn)換,以此減輕嵌入式設(shè)備的運(yùn)算壓力,若已知某點(diǎn)的經(jīng)緯度坐標(biāo)為(lon,lat),則該轉(zhuǎn)化方法如下
(1)
式中,east代表完成坐標(biāo)轉(zhuǎn)換后的東向坐標(biāo),north表示完成坐標(biāo)轉(zhuǎn)換后的北向坐標(biāo),a,b,c,d,e,f為轉(zhuǎn)化模型的6個(gè)參數(shù)。
MapInfo軟件有各坐標(biāo)之間的轉(zhuǎn)換模塊,應(yīng)用軟件模塊可以完成WGS-84坐標(biāo)系下的經(jīng)緯度坐標(biāo)到Beijing-54坐標(biāo)系下的平面坐標(biāo)的轉(zhuǎn)換[7],為了使利用線型轉(zhuǎn)化法轉(zhuǎn)換后的坐標(biāo)誤差較小,選取一定數(shù)量的有代表性的參考點(diǎn),它們的經(jīng)緯度坐標(biāo)信息為已知信息,然后,應(yīng)用MapInfo軟件的坐標(biāo)轉(zhuǎn)換得到它們?cè)贐eijing-54坐標(biāo)系下的平面坐標(biāo)信息,將這些坐標(biāo)信息代入到公式1中,運(yùn)用最小二乘法求出模型中相應(yīng)的6個(gè)參數(shù)。
3.3 數(shù)據(jù)處理過(guò)程
本文對(duì)哈爾濱市地圖進(jìn)行了數(shù)據(jù)處理,其中的兩個(gè)關(guān)鍵技術(shù)就是線性坐標(biāo)轉(zhuǎn)換和二進(jìn)制數(shù)據(jù)存儲(chǔ)。前文已經(jīng)做了詳盡的闡述,這里只對(duì)數(shù)據(jù)處理的過(guò)程進(jìn)行描述,它在總體上分為兩個(gè)步驟來(lái)進(jìn)行。
(1)第一步數(shù)據(jù)處理
第一步數(shù)據(jù)處理的目的是把MIF格式地圖數(shù)據(jù)不同圖層的數(shù)據(jù)信息進(jìn)行提取,保存有用信息并根據(jù)數(shù)據(jù)類(lèi)型的差別分為點(diǎn)、線和區(qū)域三個(gè)文本文件進(jìn)行存貯,初步實(shí)現(xiàn)地圖數(shù)據(jù)的壓縮。
(2)第二步數(shù)據(jù)處理
第二步數(shù)據(jù)處理的目的是把第一步得到的每個(gè)文本進(jìn)行信息提取并保存為二進(jìn)制形式的索引文件和數(shù)據(jù)文件,進(jìn)一步實(shí)現(xiàn)地圖數(shù)據(jù)的壓縮。在數(shù)據(jù)處理過(guò)程中涉及到經(jīng)緯度坐標(biāo)到東北坐標(biāo)的坐標(biāo)轉(zhuǎn)換工作。
經(jīng)過(guò)本文的地圖數(shù)據(jù)處理,文件得到了較大的壓縮,且最后存儲(chǔ)的文件為二進(jìn)制形式,既方便機(jī)器閱讀,又具有加密特性。
3.4 平面坐標(biāo)到屏幕坐標(biāo)的轉(zhuǎn)換
在前面的地圖數(shù)據(jù)處理過(guò)程中,我們已經(jīng)將WGS-84坐標(biāo)系下的經(jīng)緯度坐標(biāo)轉(zhuǎn)換成了Beijing-54平面坐標(biāo)下的東北坐標(biāo),并且是以東北坐標(biāo)的形式存儲(chǔ)在地圖數(shù)據(jù)文件中,但這樣的坐標(biāo)在地圖繪制中是不能直接采用的,必須將其轉(zhuǎn)換為屏幕坐標(biāo)后才能進(jìn)行地圖的繪制。電子地圖在顯示過(guò)程中往往都是將其一部分繪制在屏幕上,所以為了加快顯示速度,沒(méi)有必要將所有地圖數(shù)據(jù)都進(jìn)行坐標(biāo)轉(zhuǎn)換,只要將需要顯示的部分進(jìn)行坐標(biāo)轉(zhuǎn)換即可,如圖1所示。
圖1 地圖顯示示意圖
本文存儲(chǔ)的平面東北坐標(biāo)以厘米為單位,原點(diǎn)在左下角,向右為x軸正方向,向上為y軸正方向,而屏幕坐標(biāo)以像素為單位,其原點(diǎn)在左上角,向右為X軸正正向,向下為Y軸正方向[8]。坐標(biāo)轉(zhuǎn)換如圖2所示。
圖2 地圖坐標(biāo)轉(zhuǎn)換示意圖
(2)
式中,xScale、yScale分別代表屏幕上在X方向和Y方向一個(gè)像素所代表的地圖范圍,即橫縱坐標(biāo)的比例系數(shù),因?yàn)楸疚乃肁RM嵌入式系統(tǒng)的屏幕規(guī)格為480×272,所以xScale和yScale的具體實(shí)現(xiàn)如下:
(3)
經(jīng)過(guò)這樣的處理,雖然能充分利用屏幕資源顯示當(dāng)前截取的地圖區(qū)域,但是由于比例系數(shù)xScale和yScale的不同,會(huì)使地圖存在橫向或縱向的拉伸狀況。為了更加真實(shí)地還原地理狀況,同時(shí)又要包含截取地圖區(qū)域,所以選取xScale和yScale中較大的一個(gè)作為比例系數(shù),替換掉原來(lái)較小的比例系數(shù),從而使比例系數(shù)統(tǒng)一,將統(tǒng)一后的比例系數(shù)記為Scale,則:
(4)
利用統(tǒng)一后的比例系數(shù),通過(guò)如下公式改變?cè)瓉?lái)截取的地圖范圍:
minX=minX
minY=minY
maxX=minX+272×Scale
maxY=minY+480×Scale
(5)
將公式4中的Scale和公式5中的新范圍代入公式2,則原式變?yōu)椋?/p>
(6)
通過(guò)上面的坐標(biāo)轉(zhuǎn)換,會(huì)使地圖在原有基礎(chǔ)上增加一部分區(qū)域,拉伸現(xiàn)象消失。
路徑導(dǎo)航需要依靠電子地圖作為支撐,地圖數(shù)據(jù)作為電子地圖的基礎(chǔ),不僅應(yīng)該包含完整的地理信息,而且應(yīng)該具有良好的數(shù)據(jù)結(jié)構(gòu),以便減小地圖數(shù)據(jù)占用的空間,加快地圖的繪制速度。從而能夠快速準(zhǔn)確的幫助駕駛員進(jìn)行路徑規(guī)劃。
[1] 王三軍. GPS導(dǎo)航電子地圖的應(yīng)用研究[D].上海:同濟(jì)大學(xué),2007.
[2] 胡衛(wèi)民,徐雪仁,郭建恩,等. 空間數(shù)據(jù)庫(kù)引擎(SDE)在地圖資源數(shù)據(jù)庫(kù)管理中的應(yīng)用[J]. 國(guó)土資源遙感,2000(4):67-70.
[3] 楊倫,彭春光,黃健,等.兵棋推演中地形量化算法研究與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2008(9):96-99.
[4] 斯亮.嵌入式GPS/GIS導(dǎo)航系統(tǒng)的研究與設(shè)計(jì)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.
[5] 王開(kāi)拓.基于電子紙的嵌入式電子地圖設(shè)計(jì)與開(kāi)發(fā)[D].西安:西安電子科技大學(xué),2011.
[6] 周文彬,朱德好.GPS坐標(biāo)成果空間坐標(biāo)系轉(zhuǎn)換及精度分析[J].測(cè)繪與空間地理信息,2007(3):147-149.
[7] 張勇剛.電子海圖快速拼圖顯示技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2004.
[8] 劉毅.車(chē)載定位導(dǎo)航系統(tǒng)的研究與實(shí)現(xiàn)[D].鎮(zhèn)江:江蘇大學(xué),2007.
責(zé)任編輯:程艷艷
Research of Map Data Storage Method Based on MIF Format
MENG Fanzi, XUAN Binglong
(Department of Electrical and Information Engineer, City College of Jilin Jianzhu University, Changchun 130114, China)
Based on analyzing map data model and the actual needs, this paper designs a binary data storage method to store map data. In view of the situation that the calculation of conversing the longitude and latitude coordinates to plane coordinate is complex, it establishes a linear transformation model to converse rapidly the longitude and latitude coordinates in ECEF to the plane coordinate in local coordinate system, separating attribute information from geometric data information in an interactive indexing storage way. Integer data type is used to take place of floating-point data under the condition of ensuring the accuracy of map, which can further reduce the data storage space, improve the efficiency of conversing geometric data of map to the screen coordinate and speed up the map rendering speed.
map data; coordinate transformation; data storage
2016-08-21
孟凡姿(1982-),女,山東諸城人,講師,碩士,主要從事控制理論與控制工程方面研究。
P208
A
1009-3907(2016)12-0029-04