轉帖|其它|編輯:郝浩|2010-08-04 13:54:21.000|閱讀 683 次
概述:MapObject 控件是 ArcInfo 公司開發的一套功能強大的 GIS 地理信息系統控件,該控件功能非常強大,在軟件開發行業中有著很大范圍的覆蓋率,因其在VC中的使用非常復雜,幫助文檔對一個剛入門的程序員來說不是很容易看懂,至使許多程序員都敬而遠之,所以我寫了這一系列的文章,供大家參考,有問題歡迎大家指正。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
MapObject 控件是 ArcInfo 公司開發的一套功能強大的 GIS 地理信息系統控件,該控件功能非常強大,在軟件開發行業中有著很大范圍的覆蓋率,因其在VC中的使用非常復雜,幫助文檔對一個剛入門的程序員來說不是很容易看懂,至使許多程序員都敬而遠之,所以我寫了這一系列的文章,供大家參考,有問題歡迎大家指正。
MapObject(以下簡稱MO)有自己格式的圖層文件,以 .shp 為擴展名,在使用時首先要將MO控件引入到我們的程序中來,并包函一些頭文件。好了,讓我們開始吧。
1、新建單文檔程序,在第四步時設置窗口啟動最大化。點擊Project->Add to Project->Components And ….,先擇已注冊的控件,選擇MapObjects 2.2 Map Control,全選其中的類,加入工程當中。
2、在工程目錄下新建一個文件夾,命名為Common,將MapHelper.h 、MapHelper.cpp 、MapObjects2.h 、 pedef.h拷貝到其中,以上文件可以到MO安裝目錄或VC例程目錄下找到。
3、打開stdafx.h ,在其中加入#include "Common\mapobjects2.h" 和 #include "Common\maphelper.h"句話,并將Common目錄下的所有文件包函到工程當中。
4、給CMyView加入成員變量CMap1 m_map,并在OnInitialUpdate()函數中創建它。
[Copy to clipboard] [ - ]
CODE:
GetClientRect(&rect);
m_map.Create("WeatherGis",
WS_CHILD | WS_VISIBLE,
rect,
this,
ID_GISMAP);
攔截WM_SIZE消息,加入如下代碼以使MO控件占滿整個視圖。
[Copy to clipboard] [ - ]
CODE:
if(m_map.m_hWnd)
m_map.SetWindowPos(0, 0, 0, cx, cy, SWP_NOZORDER);
5、把你找來的圖層文件(.shp)文件放到工程目錄下,并你下面這樣加入到MO當中去。
[Copy to clipboard] [ - ]
CODE:
AddLayer(m_map, TEXT("shp\\ country.shp"), moPaleYellow);
AddLayer(m_map, TEXT("shp\\city.shp"), moRed);
6、好了,運行吧,看一幅地圖已經呈現在你面前了,是不是很有成就感呢?在下次我將說明如何對圖層進行放大縮小、改變鼠標樣式等操作,好了先到這吧。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:3sNews.Net