摘要:MapX是一組供程序開發(fā)人員使用的GIS功能組件。該文簡要介紹MapX 的主要功能,并以伊犁氣象要素查詢、監(jiān)控系統(tǒng)為例,探討如何運(yùn)用 MapX+Visual Basic 6.0進(jìn)行專題地理信息系統(tǒng)二次開發(fā),闡述氣象要素查詢、監(jiān)控系統(tǒng)的設(shè)計(jì)方法,論述經(jīng)緯度與地名屬性之間的雙向查詢、鷹眼視圖,以及氣象要素查詢的實(shí)現(xiàn)過程,并給出這三個問題的方法及部分 Visual Basic 源代碼。
關(guān)鍵詞:GIS;MapX;二次開發(fā);查詢;鷹眼視圖
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2010)21-6117-02
Vb + MapX Development Based on GIS System in the Application of Meteorological Elements in the Query
SHE Yong-jun
(Yili Prefecture Bureau of Meteorology, Yili 835000, China)
Abstract: MapX is a GIS functional components used by program developer. This paper describes the main function of MapX. Exemplifing Yili meteorological factors checking and monitoring system, this paper shows how to use MapX + Visual Basic 6.0 for thematic geographic information system secondary development and describing design of meteorological factors checking and monitoring system. It discusses the execution procedure of two-way query of latitude and longitude and placename property, Eagle Eye View, and meteorological factors checking, also gives ways of these three problems and some Visual Basic source code.
Key words: GIS; MapX; query secondary development; eagle eye view
近十幾年來,隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,地理信息系統(tǒng)在氣象方面的應(yīng)用越來越廣泛。在眾多氣象觀測軟件,以及各種氣象應(yīng)用軟件中表格式氣象要素信息已經(jīng)無法滿足各方面的應(yīng)用,氣象要素信息與空間方位信息結(jié)合已經(jīng)成為了各類氣象軟件設(shè)計(jì)、升級的主流方向,這里通過對伊犁州氣象要素查詢、監(jiān)控系統(tǒng)的設(shè)計(jì)方法的論述,給出一個氣象要素值與空間方位結(jié)合的有效途徑。
1 MapX的特點(diǎn)
GIS 平臺開發(fā)軟件較多,較為常用的產(chǎn)品包括 ESRI 公司的 Mapobject 和 Mapinfo公的 MapX 等。在這里我們選用的是Mapx進(jìn)行二次開發(fā),使用Mapx開發(fā)的優(yōu)勢在于:
1)Mapx數(shù)據(jù)管理方式簡單,不需要深厚的地理學(xué)知識,沒有采用像ArcGis、MapGis等所用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。而采用了圖層化的對數(shù)據(jù)進(jìn)行分類管理。
2)Mapx數(shù)據(jù)綁定方式靈活簡單,提供多種方式進(jìn)行數(shù)據(jù)綁定,可是是嵌入MapX 的容器的數(shù)據(jù)、 或是來自 ODBC 的數(shù)據(jù),也可以是 DAO 數(shù)據(jù)源的數(shù)據(jù)。
3)Mapx支持柵格數(shù)據(jù)圖層,可以使地圖的數(shù)據(jù)量更加豐富。例如,可以把地形圖作為底圖,或者是雷達(dá)圖像作為底圖。
2 伊犁州氣象要素查詢、監(jiān)控系統(tǒng)結(jié)構(gòu)與功能分析
2.1 系統(tǒng)的結(jié)構(gòu)
圖1為伊犁州氣象要素查詢、監(jiān)控系統(tǒng)結(jié)構(gòu)。
2.2 系統(tǒng)數(shù)據(jù)管理
從圖1中可以看出系統(tǒng)的數(shù)據(jù)分為空間數(shù)據(jù)和屬性數(shù)據(jù),空間數(shù)據(jù)主要是由點(diǎn)線面多層構(gòu)成的地理信息數(shù)據(jù),其管理依靠mapx的GeosetManager進(jìn)行管理(如表1所示);屬性數(shù)據(jù)也就是氣象數(shù)據(jù),從地面報文中獲取,再轉(zhuǎn)入Ms Access數(shù)據(jù)庫中進(jìn)行管理(如表3所示)。
2.3 數(shù)據(jù)獲取與處理
空間數(shù)據(jù)庫是對地圖對象的數(shù)字化過程,選擇《新疆遙感地形地理圖集》中伊犁州的部分,本研究采用掃描儀將地圖轉(zhuǎn)化為柵格圖像;在 Mapinfo Professional7.0平臺下,加入到系統(tǒng)中,對該圖像配準(zhǔn)后 ,以此柵格圖像作為底圖 ,利用 Maplnfo的繪圖工具,把地圖解析成點(diǎn)、線、面分別繪制成矢量圖層(結(jié)構(gòu)如表2),再利用 MapX附帶程序 GeosetManager注冊并生成一個的 geoset文件 ,以便在 VB中為 MapX控件調(diào)用。
氣象信息數(shù)據(jù)采用 MS Access數(shù)據(jù)庫來存儲 ,采用了 ADO控件引入系統(tǒng),通過 ODBC與 Ms Access數(shù)據(jù)庫對接,讀取和修改數(shù)據(jù)則采用 Grid控件、對話框等,對的更新。通過 ODBC實(shí)現(xiàn)氣象數(shù)據(jù)的更新,不僅可以操作本地?cái)?shù)據(jù),而且可以對遠(yuǎn)程數(shù)據(jù)進(jìn)行更新 ,有利于遠(yuǎn)程數(shù)據(jù)的傳輸和共享,便于屬性的傳輸。
系統(tǒng)最主要的功能是實(shí)現(xiàn)氣象數(shù)據(jù)與地理信息數(shù)據(jù)的關(guān)聯(lián),本文采用vb+mapx這種開發(fā)方式,最主要的原因是, MapX綁定數(shù)據(jù)操作靈活簡單,通過數(shù)據(jù)綁定,可以將 mapx的BindLayer對象作為一個參數(shù),使用 Datasets.Add方法將氣象數(shù)據(jù)表轉(zhuǎn)變?yōu)橐粋€ DataSet。這將在地圖中創(chuàng)建一個新的臨時圖層,并且將氣象數(shù)據(jù)以點(diǎn)等圖形對象表示。數(shù)據(jù)引入地圖后 ,可以使用 Datasets.Add方法將溫度、降水,風(fēng)等屬性字段添加到地圖中,進(jìn)而就可以按照需要創(chuàng)建相關(guān)的專題圖。氣象數(shù)據(jù)與地理信息數(shù)據(jù)的綁定是通過氣象站戰(zhàn)號進(jìn)行綁定的,如表4所示。
3 系統(tǒng)的調(diào)試與運(yùn)行及實(shí)現(xiàn)幾個主要功能的方法和部分關(guān)鍵代碼
氣象數(shù)據(jù)與地理信息數(shù)據(jù)通過氣象站站號綁定以后,由mapx控件的地圖工具如放大,縮小、整體移動、標(biāo)尺等功能進(jìn)行管理控制,在這里mapx最大優(yōu)點(diǎn)—逐層細(xì)化圖層,隨著地圖比例尺的放大,地圖上可以顯示更多的信息。通過反復(fù)的調(diào)整視野范圍,以達(dá)到查詢信息最大化和地圖清晰兩者的平和,以更好的滿足系統(tǒng)查詢的實(shí)際需要。如圖2所示。
3.1 鷹眼地圖的實(shí)現(xiàn)
鷹眼功能如上圖(圖1所示),實(shí)現(xiàn)的方法是:在窗體上建立2個mapX窗口,mapX1和mapX2,mapX2作鷹眼使用(如圖1所示鷹眼).2個mapx加載同一個*.gst文件,在mapX2上建立臨時層,在mapX1的mapviewchanged下加入以下代碼,建立矩形邊框,其邊框的四個頂點(diǎn)為mapX1范圍,當(dāng)mapX1的范圍發(fā)生變化后,把4個端點(diǎn)的坐標(biāo)付給mapX2的矩形,這樣就實(shí)現(xiàn)了簡單的地圖鷹眼功能。
3.2 經(jīng)緯度與地名屬性之間的雙向查詢
經(jīng)緯度的方位查詢是把需要查詢的坐標(biāo)X,Y的值付給mapX1的CenterX, CenterY屬性,在此基礎(chǔ)上建立臨時點(diǎn)進(jìn)行標(biāo)識;地名屬性的查詢依靠Tab表中的屬性字段,只能查詢Tab表中有的字段,或者是已經(jīng)連接MsAccess數(shù)據(jù)庫的字段。使用Layer.Search方法進(jìn)行查詢。
4 結(jié)論
利用vb+mapx開發(fā)方式是一種既簡單又經(jīng)濟(jì)的Gis系統(tǒng)開發(fā)方式,但是也存在一定的缺陷,主要是:mapx沒有網(wǎng)絡(luò)版本,只能集成到VB、VC、Delphi、Power Builder等編程語言中,不能集成到如ASP,PHP等網(wǎng)絡(luò)編程語言中,一定程度上限制了這種方式Gis系統(tǒng)的發(fā)展。本文沒有對編程細(xì)節(jié)進(jìn)行描述,僅對系統(tǒng)的框架作了一些說明。
參考文獻(xiàn):
[1] 丁瑞,王翠珍,秦樹林,等.基于 Mapinfo MapX環(huán)境信息系統(tǒng)的開發(fā)研究[J].浙江化工,2007,38(2).
[2] http://www.mapworld.cn/PDF/UserGuide/MapX%BF%AA%B7%A2%C8%CB%D4%B1%D6%B8%C4%CF.pdf[EB/OL].mapx開發(fā)人員指南.
[3] 張超,地理信息系統(tǒng)實(shí)習(xí)教程[M].北京:高等教育出版社,2000.
[4] 郭杰華,姚振旺,鮑遠(yuǎn)律,等.矢量地圖的一種自動校正算法[J].中圖像圖形學(xué)報,1999(5).
[5] 徐慶榮,杜遭生,黃偉,等.計(jì)算機(jī)地圖制圖原理[M].武漢:武漢測繪科技大學(xué)出版社,1997.
[6] 彭曉艷.龍毅,毋河海.基于仿射變換的Maplnfo矢量圖形坐標(biāo)糾正的方法探討[J].測繪信息與工程,2002,27(5).
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文