馬春雨 蒲渝媛
長慶油田第五采油廠
用MapX與C#開發地理信息系統
馬春雨 蒲渝媛
長慶油田第五采油廠
隨著地理信息系統(GIS)的發展與完善,它的設計開發工具也日臻成熟, MapInfo公司順應這一發展潮流,開發了一種地圖控件——Mapx,它是廣受歡迎的ActiveX控件,能實現Mapinfo的絕大部分功能。本文主要論述了Mapx的特征,以及用相關的計算機語言C#提供一種高效的、脫離一般平臺的電子地圖的制作方法。
地理信息系統;控件;C# 地圖分析;Mapinfo
電子地圖技術是集地理信息系統技術、數字制圖技術、多媒體技術和虛擬現實技術等多項現代技術為一體的綜合技術。電子地圖是一種以可視化的數字地圖為背景,用文本、照片、圖表、聲音、動畫、視頻等多媒體為表現手段的展示城市、企業、旅游景點等區域綜合面貌的現代信息產品,它可存貯于計算機外存,以只讀光盤、網絡等形式傳播,以桌面計算機或觸摸屏計算機等形式提供大眾使用。由于電子地圖產品結合了數字制圖技術的可視化功能、GIS技術的數據查詢與分析功能以及多媒體技術和虛擬現實技術的信息表現手段,加上現代電子傳播技術的作用,它一出現就贏得了社會的廣泛興趣,尤其是政府部門、企業管理部門以及大眾,故有“大眾GIS”之稱。
一般而言,區域地形數據的更新步伐受社會經濟的影響很大,區域發展越快,它的更新周期就越短,反之亦然。 長慶油田這幾年的發展日新月異,生產區域不斷擴大,因此,及時地利用我們現有的數據資源,借助油田各種GIS平臺的應用,從而服務社會、服務油田、產生良好的經濟效益,已變成了當務之急。
數據利用只是數據挖掘中的一個重要環節,也是最具靈活性的一環,它是數據挖掘的終點,也是數據市場化的一個開端。 本文主要討論了利用GPS終端生成的軌跡數據制作道路電子地圖的方案與可行度,并開發出高效的道路圖生成軟件,以供參考和借鑒。
A c t i v e X控件是充分利用O L E和ActiveX技術的自定義控件,是基于與應用程序無關的思想而設計的,其目標是提供一種面向對象、與操作系統無關、與機器平臺無關、可以在應用程序之間互相訪問對象的機制。
ActiveX控件是建立在COM標準上的獨立的軟件元件,提供給用戶應用接口,發送相應的事件,開發者則可以截取這些事件,執行相應的功能。ActiveX控件開發端和使用端是完全獨立的,可以用Delphi、VB、VC等各種語言來開發,又可以用于不同語言、不同開發平臺、不同的系統環境中。
1、組件技術與GIS的發展
組件式軟件技術已經成為當今軟件技術的潮流之一,為了適應這種技術潮流,GIS軟件像其他軟件一樣,已經或正在發生著革命性的變化,即由過去廠家提供了全部系統或者具有二次開發功能的軟件,過渡到提供組件由用戶自己再開發的方向上來。組件式GIS技術無疑將給整個GIS技術體系和應用模式帶來巨大影響。
GIS技術的發展,在軟件模式上經歷了功能模塊、包式軟件、核心式軟件,從而發展到組件式GIS和WebGIS的過程。傳統GIS雖然在功能上已經比較成熟,但是由于這些系統多是基于十多年前的軟件技術開發的,屬于獨立封閉的系統。同時,GIS軟件變得日益龐大,用戶難以掌握,費用昂貴,阻礙了GIS的普及和應用。組件式GIS的出現為傳統GIS面臨的多種問題提供了全新的解決思路。
組件式GIS的基本思想是把GIS的各大功能模塊劃分為幾個控件,每個控件完成不同的功能。各個GIS控件之間, 以及GIS控件與其他非GIS控件之間可以方便地通過可視化的軟件開發工具集成起來,形成最終的GIS應用。控件如同一堆各式各樣的積木,他們分別實現不同的功能(包括GIS和非GIS功能),根據需要把實現各種功能的“積木” 搭建起來,就構成應用系統。
2、組件式GIS系統的特點
把GIS的功能適當抽象,以組件形式供開發者使用,將帶來許多傳統GIS工具無法比擬的優點,主要有:
(1)小巧靈活、價格便宜;
(2)無須專門GIS開發語言,直接嵌入MIS開發工具;
(3)強大的GIS功能;
(4)開發簡捷;
(5)更加大眾化。
總而言之,組件式GIS肯定是未來GIS發展的主流。鑒于此,本軟件的核心技術就是以MapX為基礎來研究的。
空間數據結構,是GIS的基石。GIS就是通過這種地理空間拓撲結構建立地理圖形的空間數據模型并定義各空間數據之間的關系,從而實現地理圖形和數據庫的結合。從橫向分析,MapX采取的空間數據結構是基于空間實體和空間索引相結合的一種結構。
空間實體是地理圖形的抽象模型,主要包括點、線、面三種類型。任何點、線、面實體都可以用直角坐標點x、y來表示。點可以表示成一組坐標(x,y),對于線和面,則均被表示成多組坐標(x1,y1;x2,y2;......;xn,yn)??臻g索引是查詢空間實體的一種機制,通過空間索引,就能夠以盡量快的速度查詢到給定坐標范圍內的空間實體及其所對應的數據。
從縱向分析,MapX的空間數據結構是一種分層存放的結構。用戶可以通過圖形分層技術,根據自己的需求或一定的標準對各種空間實體進行分層組合,將一張地圖分成不同圖層。采用這種分層存放的結構,可以提高圖形的搜索速度,便于各種不同數據的靈活調用、更新和管理。
以Mapx控件為基礎,利用C# 作為開發語言,生成電子地圖的主要步驟如下:
1、將現場采集或來自GPS平臺歷史記錄的軌跡數據保存為文本(.log、.txt)或電子表格(.xls)格式文件;
2、分析軌跡文件數據結構及所用的坐標系標準,并將制圖所需的軌跡點數據轉換成平面坐標點,生成一個點集;
3、創建一個線圖層;
4、在創建好的圖層上將線畫出來,生成Mapinfo道路圖層(.tab)文件。




隨著長慶油田GPS平臺投入正常運營,在油田生產建設快速發展的過程中,油區道路電子地圖需要不斷地更新,本文所描述的軟件為道路地圖的低成本和高效制作帶來了可能。在此基礎上加入GPS平臺車輛歷史軌跡數據的智能提取和融合就可以更進一步提高制圖效率和準確性,這也是下一步的研究方向。
[1]Mapinfo中國總代理.MapX 培訓教程.方正數碼Mapinfo事業部.2001年
[2]童瑞華.利用MapX開發Mapinfo.國防科技大學論文.1999年
[3]齊超,何新華,蔡紅柳,蘇曉燕.利用MapX控件構建地圖應用.裝甲兵工程學院信息工程系網絡教研室論文.1998年
[4]戴國忠.基于GIS組件MapX的機載輔助導航系統的設計與實現. 北京:中國科學院軟件研究所論文.1999年
[5]管志杰,趙政.使用MapX開發地理信息系統.微型電腦應用.1999年
[6]齊超,何新華.基于MapX控件的電子地圖控制.計算機應用.2000年12月
[7]Christian Nagel,Bill Evjen,Jay Glynn,等著;李敏波,等譯.C#高級編程(第4版).清華大學出版社.2006年10月
10.3969/j.issn.1001-8972.2011.18.028
馬春雨,助理工程師,研究方向:計算機技術 工作單位:西安石油大學。
蒲渝媛,助理工程師,研究方向:計算機技術。