国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Visual C++和MapX的甘蔗地理信息系統(tǒng)的開發(fā)

2014-03-01 11:39彭秋連
中國糖料 2014年4期
關(guān)鍵詞:鷹眼電子地圖控件

彭秋連,楊 華,馮 璐,鄧 軍

(云南省農(nóng)業(yè)科學院甘蔗研究所,開遠661699)

基于Visual C++和MapX的甘蔗地理信息系統(tǒng)的開發(fā)

彭秋連,楊 華,馮 璐,鄧 軍

(云南省農(nóng)業(yè)科學院甘蔗研究所,開遠661699)

在Visual C++環(huán)境下利用MapX控件開發(fā)了甘蔗地理信息系統(tǒng)(GIS),著重介紹了利用Visual C++與MapX控件進行混合編程的基本方法,為進一步利用MapX控件開發(fā)GIS應用軟件奠定基礎。

甘蔗地理信息系統(tǒng);MapX;Visual C++

近年來,隨著計算機技術(shù)和地理信息的迅猛發(fā)展,圖像技術(shù)、計算機繪圖和數(shù)據(jù)庫也逐漸結(jié)合起來并創(chuàng)建了地理信息系統(tǒng)(Geographic Information System,簡稱GIS)[1]。利用此技術(shù),可以將地圖和數(shù)據(jù)綁在一起,以可視化的形式顯示數(shù)據(jù),而隨著數(shù)字時代的到來,GIS在農(nóng)業(yè)領(lǐng)域等方面也取得了廣泛的應用。

Visual C++(VC++)作為目前較流行的可視化開發(fā)編程工具之一,功能比較強大,支持面向?qū)ο蠛褪录?qū)動機制的程序開發(fā),可作為GIS系統(tǒng)的最佳開發(fā)平臺。利用該開發(fā)工具,結(jié)合MapX控件能夠開發(fā)出界面美觀,功能齊全的GIS系統(tǒng)。本文主要探討以VC++為開發(fā)平臺,以MapX控件作為圖形平臺,開發(fā)研制甘蔗地理信息系統(tǒng)的方法和一些基本功能的實現(xiàn),研究目標是建成一個甘蔗地理信息系統(tǒng),滿足管理者及各種農(nóng)戶的信息需求,能夠?qū)崿F(xiàn)對甘蔗地圖中各種文件的操作,根據(jù)不同的查詢條件從地圖中查詢信息以及統(tǒng)計分析的功能。

1MapX控件的特性

MapInfo是目前國內(nèi)使用較為廣泛的桌面GIS軟件,其中MapX是MapInfo公司向用戶提供的,基于Windows操作系統(tǒng),具有強大地圖分析功能的ActiveX控件產(chǎn)品[2]。MapX封裝了MapInfo地圖操作的大部分功能,單獨使用可視化的編程語言并不能方便地實現(xiàn)數(shù)字地圖的功能,而結(jié)合MapX就能夠滿足GIS用戶的各種需求。MapX不僅僅是一個“地圖瀏覽器”,還分管著其他重要的功能,其主要特性如下[3]:

(1)支持柵格圖像:MapX能夠?qū)鸥駡D像按圖層的方式加入地圖窗口進行管理。(2)查詢功能:能夠根據(jù)對象的屬性或使用條件查詢表達式來查詢各種所需信息,快速在地圖上顯示特定點位。(3)數(shù)據(jù)綁定:MapX能夠綁定不同類型的數(shù)據(jù)源,并通過圖層的方式能夠在地圖上查看。(4)提供各種地圖操作工具:如放大、縮小、居中、選擇等。(5)支持數(shù)據(jù)庫。

在甘蔗地理信息系統(tǒng)中利用MapX將地圖嵌入其中,能夠增強甘蔗地理信息系統(tǒng)應用的空間分析和數(shù)據(jù)分析能力,提高信息管理與甘蔗產(chǎn)收的效率。

2 甘蔗地理信息系統(tǒng)的設計和實現(xiàn)

2.1 系統(tǒng)的模塊設計

隨著GIS的出現(xiàn),針對某一行業(yè)或區(qū)域而開發(fā)的GIS系統(tǒng)發(fā)揮著越來越重要的作用。本文采用MapX組件技術(shù),以VC++為開發(fā)語言,根據(jù)甘蔗行業(yè)的實際需求,開發(fā)研制甘蔗地理信息系統(tǒng)。

根據(jù)系統(tǒng)設計的目標、設計原則,甘蔗地理信息系統(tǒng)的開發(fā)主要分為4個模塊:地圖顯示、信息查詢、統(tǒng)計分析、系統(tǒng)管理。其模塊設計如圖1所示。

(1)地圖顯示:將蔗區(qū)規(guī)劃地圖通過MapX控件嵌入到系統(tǒng)界面中,對蔗區(qū)的村鎮(zhèn)、道路、交通、學校、企事業(yè)單位等信息進行顯示和管理,以不同符號形象、直觀地展示給用戶,同時實現(xiàn)電子地圖的放大、縮小、移動、標注、漫游、全部顯示及鷹眼圖導航等功能,達到信息可視化的效果。

(2)信息查詢:系統(tǒng)具有方便、靈活、高效的查詢功能,通過對話框的形式讓用戶輸入信息,同時調(diào)用相應的數(shù)據(jù)庫,用戶能迅速地查找所需的信息,可查詢到甘蔗種植實際布局、甘蔗品種、產(chǎn)量、甘蔗生產(chǎn)勞動力、土壤養(yǎng)分、交通條件等。

圖1 軟件的功能模塊

(3)統(tǒng)計分析:統(tǒng)計和分析功能主要是為管理者而設置的,給予甘蔗產(chǎn)量分析、甘蔗品種分析,有利于他們方便、高效地查詢、檢索、決策,提供一個有效的管理工具;同時對甘蔗資源進行科學、準確地預測和管理,有力地避免重復勞動和浪費,提高經(jīng)濟效益。

(4)系統(tǒng)管理:系統(tǒng)登陸角色分為系統(tǒng)管理員、管理者和農(nóng)戶,管理員級別的用戶可對系統(tǒng)進行維護。

2.2 系統(tǒng)的實現(xiàn)步驟

在VC++環(huán)境下集成MapX控件開發(fā)甘蔗地理信息系統(tǒng)是采用將MapX作為控件添加到應用程序中,然后通過設置其屬性或調(diào)用方法,實現(xiàn)數(shù)據(jù)可視化、地理查詢等豐富的地圖信息系統(tǒng)功能[4]。以下將詳述系統(tǒng)的實現(xiàn)步驟:

(1)建立應用框架:在VC++平臺下,利用應用程序向?qū)А癕FC AppWizard”,建立標準的應用程序,工程名為Sugarcane。

(2)添加MapX支持類庫:在VC++開發(fā)環(huán)境中,在基于MFC的應用程序框架中添加MapX控件,其步驟為:a.將MapX.h和MapX.cpp兩個文件復制到當前應用程序的文件夾Sugarcane中;b.在建立的工程中從“Project”菜單中選擇“Add To Project”的“Files”選項,打開“Insert Files into Project”對話框,將Sugarcane文件夾中的MapX.h和MapX.cpp文件添加到工程中。至此,MapX類添加成功。

(3)軟件初始化:在CSugarcaneView.cpp中添加OnCreate()和OnSize()函數(shù)代碼,以便在創(chuàng)建視圖時創(chuàng)建MapX控件,對其進行初始化,其代碼如下:

int CSugarcaneView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if(CView::OnCreate(lpCreateStruct)==-1)

return-1;

if(!m_ctrMapX.Create(NULL,WS_VISIBLE,CRect(0,0,100,100),this,IDC_MAP))//初始化圖層return-1;

}

void CSugarcaneView::OnSize(UINT nType,int cx,int cy)

{

CView::OnSize(nType,cx,cy);

if(cx!=0&&cy!=0)

{

m_ctrMapX.MoveWindow(0,0,cx,cy,TRUE);//調(diào)整地圖大小使其充滿客戶區(qū)

}

}

(4)電子地圖的加載:通過MapInfo制作的電子地圖都是分圖層顯示的,即是單獨的.tab文件。在對電子地圖進行加載之前,需要將這些.tab文件整合為GeoSet文件(*.gst)。其方法是利用MapX的地圖管理工具Geoset Manager打開所有的tab圖層,設置其樣式,保存為.gst文件格式,電子地圖則繪制完畢。

在SugarcaneView.h文件中包含MapX.h頭文件,同時聲明CMapX類型的變量m_ctrlMapX,代碼如下:

#include"MapX.h"

class CSugarcaneView:public CView

{

protected://create from serialization only CSugarcaneView();

DECLARE_DYNCREATE(CSugarcaneView)

CMapX m_ctrlMapX;

}

在OnCreate()函數(shù)中添加電子地圖的功能代碼:

m_ctrMapX.SetGeoSet("Sugarcane.GST");//加載當前電子地圖

m_ctrMapX.SetTitleText("");//不顯示標題

編譯并運行應用程序,即可在主視圖窗口中顯示地圖,程序界面如圖2所示。

圖2 甘蔗地理信息系統(tǒng)界面

(5)地圖工具的調(diào)用:在MapX中提供了一些標準工具,使地圖能夠?qū)崿F(xiàn)放大、縮小、居中、選擇、移動等功能。MapX提供的標準工具有:放大、縮小、選擇、居中、移動等,其指示常量分別為:miZoomInTool;miZoomOutTool;miSelectTool;miCenterTool;miPanTool,如若實現(xiàn)這些功能,只需在應用程序中調(diào)用即可。實現(xiàn)縮小功能的關(guān)鍵代碼如下:

void CSugarcaneView::OnMapToolZoomout()

{

//TODO:Add your command handler code here

//設置當前工具為縮小工具

m_ctrlMapX.SetCurrentTool(miZoomOutTool);

}

同樣地,在以上的代碼中修改相應的指示常量,就可實現(xiàn)不同的功能。

(6)地圖鷹眼圖功能:在該系統(tǒng)中,已添加地圖的鷹眼圖(即縮略圖)功能,能方便用戶瀏覽地圖。

實現(xiàn)地圖鷹眼圖功能,需在應用程序中額外添加資源IDC_MAP來對應鷹眼圖,并在EagleView.h文件中聲明CMapX類型的變量m_ctrEagleMapX,添加鷹眼圖圖層的主要代碼如下:

m_ctrEagleMapX.SetGeoSet("eaglemap.GST");

m_ctrEagleMapX.SetTitleText("");

m_ctrEagleMapX.GetLayers().CreateLayer("rect");

在主圖發(fā)生變化(放大、縮小、漫游等)時,鷹眼圖用一個矩形框來同時標示出對應區(qū)域;同時,鷹眼圖的矩形框移動時,主圖將同步調(diào)整當前視圖,顯示該矩形框內(nèi)的地圖信息,實現(xiàn)地圖的快速定位和瀏覽。

3 結(jié)束語

隨著空間技術(shù)的發(fā)展,地理信息系統(tǒng)逐步應用于各行業(yè)及區(qū)域,并展示出廣闊的發(fā)展前景。本文闡述了地理信息系統(tǒng)和MapX控件的相關(guān)知識,對甘蔗地理信息系統(tǒng)的基本功能進行描述,重點介紹Visual C++開發(fā)工具對MapX控件接口進行混合編程的基本方法。

開發(fā)甘蔗地理信息系統(tǒng),可節(jié)省蔗區(qū)管理的人力、物力、財力,實現(xiàn)蔗區(qū)管理的信息化,提高經(jīng)濟效益,同時也為蔗農(nóng)提供一個便捷的服務平臺,及推動甘蔗信息的普及;更重要的是推動農(nóng)業(yè)走向信息化。本文只是針對系統(tǒng)的接口進行詳述,且該系統(tǒng)的功能還不夠完善,若要實現(xiàn)其他功能或是投入到實際應用中,還需對系統(tǒng)進行改善和擴展,這也是下一步開發(fā)的方向。

[1]陳述彭,魯學軍,周成虎.地理信息系統(tǒng)導論[M].北京:科學出版社,2000.

[2]尹旭日,張武軍.Visual C++環(huán)境下MapX的開發(fā)技術(shù)[M].北京:冶金工業(yè)出版社,2009.

[3]劉光.地理信息系統(tǒng)二次開發(fā)教程—組件篇[M].北京:清華大學出版社,2003.

[4]韓平陽,羅五明.基于MapX的地理信息系統(tǒng)的VC開發(fā)[J].交通與計算機,2004(5):22.Development of Sugarcane GIS Based on MapX Control in Visual C++

PENG Qiu-lian,YANG Hua,FENG Lu,DENG Jun
(Sugarcane Research Institute,Yunnan Academy of Agricultural Sciences,Kaiyuan 661699)

In recent years,GIS(geographic information system)component technologies have become the tendency of GIS development.The sugarcane GIS was developed by applying MapX control with Visual C++,and basic methods of programming with Visual C++and MapX were introduced in the paper,and foundation for further development of GIS application software by using MapX control was discussed.

sugarance GIS(geographic information system);MapX;Visual C++

S566.1

A

2014-05-21

國家甘蔗產(chǎn)業(yè)技術(shù)體系(nycytx-024-01-14)資助。

彭秋連(1986-),女,江西省萍鄉(xiāng)市人,研究實習員,主要從事甘蔗信息系統(tǒng)研究與開發(fā)。

張躍彬(1969-),男,云南省建水縣人,研究員,現(xiàn)代農(nóng)業(yè)甘蔗產(chǎn)業(yè)技術(shù)體系崗位科學家,主要從事甘蔗綜合技術(shù)方面的研究。Tel:0873-7227001,E-mail:ynzyb@sohu.com

1007-2624(2014)04-0039-03

10.13570/j.cnki.scc.2014.04.015

猜你喜歡
鷹眼電子地圖控件
基于.net的用戶定義驗證控件的應用分析
6400萬鷹眼變焦四攝realme X50 Pro 5G智能手機
基于靈活編組的互聯(lián)互通車載電子地圖設計及動態(tài)加載
淺談電子地圖在高中地理教學中的應用
獵擊精英:鷹眼
基于GIS平臺的江西省公路基礎數(shù)據(jù)與電子地圖綜合展示系統(tǒng)
關(guān)于.net控件數(shù)組的探討
城市交通旅游電子地圖的研究與應用分析
足球鷹眼亮相體博會
鷹眼二型多旋翼無人機
驻马店市| 潞西市| 十堰市| 老河口市| 民权县| 永泰县| 文化| 嘉善县| 泾阳县| 长宁区| 项城市| 噶尔县| 双江| 延津县| 潼南县| 灵武市| 敖汉旗| 安溪县| 铜陵市| 漳浦县| 泰兴市| 山东省| 大余县| 中阳县| 桓仁| 青铜峡市| 岫岩| 灵山县| 金乡县| 陇西县| 沅江市| 海门市| 剑河县| 石楼县| 监利县| 神木县| 津南区| 沁阳市| 吉首市| 汝阳县| 新田县|