孟凡姿,宣丙龍
(吉林建筑大學城建學院 電氣信息工程系,長春 130114)
基于MIF格式的地圖數(shù)據存儲方法研究
孟凡姿,宣丙龍
(吉林建筑大學城建學院 電氣信息工程系,長春 130114)
在分析地圖數(shù)據模型和實際需求的基礎上,設計一種二進制數(shù)據存儲方式存儲地圖數(shù)據。針對經緯度坐標到平面坐標轉換計算較為復雜的情況,本文建立線性轉化模型實現(xiàn)地心地固(Earth-centered, Earth-fixed, ECEF)坐標系下經緯度坐標到本地坐標系下平面坐標的快速轉換,分開存儲屬性信息和幾何數(shù)據信息,建立兩種數(shù)據的交互索引關系。在保證地圖精度的條件下,提出整型數(shù)據代替浮點數(shù)據的存儲方式,減小數(shù)據存儲的物理空間的同時,提高了地圖幾何數(shù)據到屏幕坐標的轉換效率,加快了地圖繪制的速度。
地圖數(shù)據;坐標轉化;數(shù)據存儲
隨著工業(yè)自動化程度的日益提高,可編程控制器和組態(tài)軟件相結合[1]的使用越來越普遍。在目前的很多自控系統(tǒng)中,常常選用PLC作為現(xiàn)場級的控制設備,用于數(shù)據采集和控制。而在系統(tǒng)上位機上利用工控組態(tài)軟件來完成工業(yè)流程及控制參數(shù)的顯示實現(xiàn)生產監(jiān)控和管理等功能[2]。
地圖數(shù)據包含幾何數(shù)據和屬性數(shù)據兩類子數(shù)據,由它們共同組成的一條記錄代表電子地圖中的一個具體圖元[1]。幾何數(shù)據反映了圖元所對應的實物在地理實體中的實際空間位置,它通過坐標形式給出,如經緯度坐標形式。按形狀劃分,幾何數(shù)據可以分為點型數(shù)據、線型數(shù)據以及區(qū)域型數(shù)據;按類型劃分,幾何數(shù)據可分為固有數(shù)據和拓撲數(shù)據[2]。屬性數(shù)據反映了地圖圖元位置以外的其他信息,它是對圖元的具體描述,屬性數(shù)據與幾何數(shù)據的結合構成了完整的地圖圖元數(shù)據[2]。
地圖按照組織結構的不同可分為矢量地圖和柵格地圖,相應地,地圖數(shù)據形式包括矢量形式和柵格形式兩種[2]。在柵格形式的地圖數(shù)據中,采用橫豎交織的網格線對地圖進行分割處理,且一般要滿足一個條件,即平行相鄰的網格線之間的跨度是相等的。這樣地圖會被分為一個個的小的正方形區(qū)域,每個小正方形區(qū)域代表一個信息,單位地圖區(qū)域內網格線的數(shù)量越多,則被分割出的正方形區(qū)域越多,這意味著柵格地圖的分辨率越高。
不同于柵格形式地圖數(shù)據的離散化效果,矢量形式的地圖數(shù)據將地圖看作是一個連續(xù)的整體,地圖中的任意小的一個點都有自己唯一的坐標,且其一定在地圖所跨越的坐標范圍內。
很顯然,柵格形式地圖數(shù)據和矢量形式地圖數(shù)據在表達方式上差別很大,但它們都能有效地完成地圖的繪制,且能夠反映出地圖圖元的空間分布情況。由于柵格形式數(shù)據有固定分辨率特性,決定了它不適于對地圖進行縮放操作,而且它的數(shù)據離散特點也令其很難滿足地圖匹配和路徑尋優(yōu)等算法的需求,所以在導航系統(tǒng)中,地圖應該采用矢量數(shù)據形式進行表達。
MapInfo軟件在地圖數(shù)據處理方面技術成熟,它能夠與很多其他地圖數(shù)據文件兼容,是目前應用最為廣泛的地圖繪制軟件之一。按照基本的地圖數(shù)據模型,在MapInfo軟件中,也是將地圖圖元分為點圖元、線圖元和區(qū)域圖元三種不同的類型[3],它們對應的地圖數(shù)據則為點型、線型和區(qū)域型,這些數(shù)據是以矢量形式進行組織的。
2.1 TAB型數(shù)據
MapInfo對地圖數(shù)據的組織分為兩種形式,一種為TAB型數(shù)據形式,另一種為MIF型數(shù)據形式。前者所包含的數(shù)據信息更加全面,相比于前者,后者只包含了部分數(shù)據信息。TAB型數(shù)據是MapInfo軟件存儲地圖的原始數(shù)據形式,它是一種專用的數(shù)據格式,其必須要在MapInfo軟件上才能順利地繪制地圖,同時,它也作為MapInfo公司的商業(yè)機密而存在,這就決定了它的具體格式和結構是對外保密的。由此引入對MIF數(shù)據格式的研究。
2.2 MIF型數(shù)據
為了對原始的TAB型數(shù)據進行保護,同時方便用戶利用地圖數(shù)據開發(fā)出更多的功能,MapInfo公司提供了一種對用戶公開的數(shù)據文件,并將之命名為MIF格式數(shù)據文件,它是對原始數(shù)據進行了裁剪的結果,去除了TAB型數(shù)據所擁有的拓撲數(shù)據,MIF格式數(shù)據的優(yōu)點就是以ASCII方式進行存儲,令人一目了然,方便與其他地圖軟件交換信息。
MIF格式數(shù)據對圖元的存儲是分為兩個文件進行的,一個是擴展名為.MID的文件,該文件用于存儲圖元的名稱、ID號等屬性數(shù)據信息,一個是擴展名為.MIF的文件,與屬性數(shù)據對應,該文件主要存儲圖元的幾何數(shù)據信息[3]。
3.1 二進制數(shù)據存儲
根據數(shù)據存儲方式的不同,數(shù)據存儲包括二進制方式存儲和ASCII方式存儲,它們都可以完成對地圖數(shù)據的存儲任務,不同的是ASCII方式存儲要占用較大的存儲空間,造成不必要的空間浪費,而二進制存儲占用的空間相對較小,且對所存儲內容存在加密效果。因此,針對嵌入式系統(tǒng)來說,二進制存儲更能滿足要求,能提高其數(shù)據處理效率。在具體的存儲過程中,對不同類型的數(shù)據進行有針對性的處理,保證其占用的存儲空間為最小。在坐標信息的存儲過程中,不采用浮點型數(shù)據進行存儲的方式,而是用32位無符號整形代替浮點型進行存儲,在存儲前對原始數(shù)據進行相應的放大處理,確保其有足夠的精度來滿足導航系統(tǒng)的相應要求。針對不同的圖元信息,將它們區(qū)分為點、線、區(qū)域三大類別,對每種類別又分別采用兩個文件來存儲它們的地圖數(shù)據信息,一個是屬性索引文件,另一個是幾何數(shù)據文件。屬性索引文件存儲的是各個圖元的基本屬性信息,幾何數(shù)據文件存儲的是相應圖元的空間數(shù)據信息和詳細屬性信息,對于兩個文件中的同一圖元,分別設置了偏移信息來進行相互索引,保證其對相同的圖元能夠快速的實現(xiàn)信息融合,無論是對地圖繪制,還是對信息搜尋,這樣的結構都有很大的好處。
3.2 坐標的線性轉化法
因為從MIF格式地圖數(shù)據中只能得到基于WGS-84坐標系的經緯度坐標,而經緯度坐標是不能直接用于地圖繪制的[4],要進行地圖繪制,就必須將經緯度坐標轉換為平面坐標,然后再將平面坐標轉換為屏幕像素坐標[5]。本文研究處理的地圖數(shù)據是哈爾濱市地圖數(shù)據,所以用Beijing-54坐標系的平面坐標最為符合[6]。將經緯度坐標轉換為平面坐標之后,就可以經過進一步的轉換而繪制電子地圖。
在WGS-84坐標系下,令某一點的經緯度坐標轉換為平面坐標,可以通過高斯投影,但運算較為復雜,不適于在嵌入式設備上進行。針對這種情況,本文設計了一種坐標的線性轉化法來實現(xiàn)經緯度坐標到平面坐標的轉換工作,在地圖數(shù)據處理階段,可以用該方法將數(shù)據轉換后進行存儲,在導航定位期間,可以用該方法對衛(wèi)星接收模塊接收到的定位經緯度信息進行轉換,以此減輕嵌入式設備的運算壓力,若已知某點的經緯度坐標為(lon,lat),則該轉化方法如下
(1)
式中,east代表完成坐標轉換后的東向坐標,north表示完成坐標轉換后的北向坐標,a,b,c,d,e,f為轉化模型的6個參數(shù)。
MapInfo軟件有各坐標之間的轉換模塊,應用軟件模塊可以完成WGS-84坐標系下的經緯度坐標到Beijing-54坐標系下的平面坐標的轉換[7],為了使利用線型轉化法轉換后的坐標誤差較小,選取一定數(shù)量的有代表性的參考點,它們的經緯度坐標信息為已知信息,然后,應用MapInfo軟件的坐標轉換得到它們在Beijing-54坐標系下的平面坐標信息,將這些坐標信息代入到公式1中,運用最小二乘法求出模型中相應的6個參數(shù)。
3.3 數(shù)據處理過程
本文對哈爾濱市地圖進行了數(shù)據處理,其中的兩個關鍵技術就是線性坐標轉換和二進制數(shù)據存儲。前文已經做了詳盡的闡述,這里只對數(shù)據處理的過程進行描述,它在總體上分為兩個步驟來進行。
(1)第一步數(shù)據處理
第一步數(shù)據處理的目的是把MIF格式地圖數(shù)據不同圖層的數(shù)據信息進行提取,保存有用信息并根據數(shù)據類型的差別分為點、線和區(qū)域三個文本文件進行存貯,初步實現(xiàn)地圖數(shù)據的壓縮。
(2)第二步數(shù)據處理
第二步數(shù)據處理的目的是把第一步得到的每個文本進行信息提取并保存為二進制形式的索引文件和數(shù)據文件,進一步實現(xiàn)地圖數(shù)據的壓縮。在數(shù)據處理過程中涉及到經緯度坐標到東北坐標的坐標轉換工作。
經過本文的地圖數(shù)據處理,文件得到了較大的壓縮,且最后存儲的文件為二進制形式,既方便機器閱讀,又具有加密特性。
3.4 平面坐標到屏幕坐標的轉換
在前面的地圖數(shù)據處理過程中,我們已經將WGS-84坐標系下的經緯度坐標轉換成了Beijing-54平面坐標下的東北坐標,并且是以東北坐標的形式存儲在地圖數(shù)據文件中,但這樣的坐標在地圖繪制中是不能直接采用的,必須將其轉換為屏幕坐標后才能進行地圖的繪制。電子地圖在顯示過程中往往都是將其一部分繪制在屏幕上,所以為了加快顯示速度,沒有必要將所有地圖數(shù)據都進行坐標轉換,只要將需要顯示的部分進行坐標轉換即可,如圖1所示。
圖1 地圖顯示示意圖
本文存儲的平面東北坐標以厘米為單位,原點在左下角,向右為x軸正方向,向上為y軸正方向,而屏幕坐標以像素為單位,其原點在左上角,向右為X軸正正向,向下為Y軸正方向[8]。坐標轉換如圖2所示。
圖2 地圖坐標轉換示意圖
(2)
式中,xScale、yScale分別代表屏幕上在X方向和Y方向一個像素所代表的地圖范圍,即橫縱坐標的比例系數(shù),因為本文所用ARM嵌入式系統(tǒng)的屏幕規(guī)格為480×272,所以xScale和yScale的具體實現(xiàn)如下:
(3)
經過這樣的處理,雖然能充分利用屏幕資源顯示當前截取的地圖區(qū)域,但是由于比例系數(shù)xScale和yScale的不同,會使地圖存在橫向或縱向的拉伸狀況。為了更加真實地還原地理狀況,同時又要包含截取地圖區(qū)域,所以選取xScale和yScale中較大的一個作為比例系數(shù),替換掉原來較小的比例系數(shù),從而使比例系數(shù)統(tǒng)一,將統(tǒng)一后的比例系數(shù)記為Scale,則:
(4)
利用統(tǒng)一后的比例系數(shù),通過如下公式改變原來截取的地圖范圍:
minX=minX
minY=minY
maxX=minX+272×Scale
maxY=minY+480×Scale
(5)
將公式4中的Scale和公式5中的新范圍代入公式2,則原式變?yōu)椋?/p>
(6)
通過上面的坐標轉換,會使地圖在原有基礎上增加一部分區(qū)域,拉伸現(xiàn)象消失。
路徑導航需要依靠電子地圖作為支撐,地圖數(shù)據作為電子地圖的基礎,不僅應該包含完整的地理信息,而且應該具有良好的數(shù)據結構,以便減小地圖數(shù)據占用的空間,加快地圖的繪制速度。從而能夠快速準確的幫助駕駛員進行路徑規(guī)劃。
[1] 王三軍. GPS導航電子地圖的應用研究[D].上海:同濟大學,2007.
[2] 胡衛(wèi)民,徐雪仁,郭建恩,等. 空間數(shù)據庫引擎(SDE)在地圖資源數(shù)據庫管理中的應用[J]. 國土資源遙感,2000(4):67-70.
[3] 楊倫,彭春光,黃健,等.兵棋推演中地形量化算法研究與實現(xiàn)[J].計算機仿真,2008(9):96-99.
[4] 斯亮.嵌入式GPS/GIS導航系統(tǒng)的研究與設計[D].哈爾濱:哈爾濱工業(yè)大學,2009.
[5] 王開拓.基于電子紙的嵌入式電子地圖設計與開發(fā)[D].西安:西安電子科技大學,2011.
[6] 周文彬,朱德好.GPS坐標成果空間坐標系轉換及精度分析[J].測繪與空間地理信息,2007(3):147-149.
[7] 張勇剛.電子海圖快速拼圖顯示技術研究[D].哈爾濱:哈爾濱工程大學,2004.
[8] 劉毅.車載定位導航系統(tǒng)的研究與實現(xiàn)[D].鎮(zhèn)江:江蘇大學,2007.
責任編輯:程艷艷
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