ArcGIS Engine開發之地圖基本操作(1)


ArcGIS提供的各類數據形式以及相應接口


1. 空間數據

      在GIS軟件中,空間數據有多種不同的形式存在。按照不同的划分標准可以分為矢量數據和柵格數據、GIS格式數據和非GIS格式數據(CAD格式)、空間數據庫數據(個人數據庫、ArcSDE數據庫)和文件數據。這些數據在ArcGIS中組織為地圖文檔數據,以擴展名mxd表示。“.mxd”文件是一個項目的工程文件,主要記載一個工程包含哪些圖層,圖層文件的對應物理位置,每一個圖層的符號是如何設置的等描述性信息,但它並不存儲實實在在的空間數據。  

2.工作空間

     工作空間(Workspace) 對象,在物理級別上相當於地理數據庫本身,在邏輯上是一個包含空間數據集和非空間數據集的數據容器。它包含數據集、要素類、表等數據。在GeoDatabase類庫中,由esriWorkSpaceType枚舉類型指定的WorkSpace類型有三類:文件工作空間esriFileSystemWorkSpace、本地數據庫工作空間esriLocalDatabaceWorkspace、遠程數據庫工作空間esriRemoteDatabaseWorkspace。具體關系見下表:

 

 常用的工作空間及工作空間對象
 工作空間工廠對象   工作空間對應類型  描述          
 AccessWorkapaceFactory  esriLoaclDatabaseWorkspace  打開個人地理數據庫
 ArcInfoWorkspaceFactory  esriFileSystemWorkspace  打開ArcInfo工作空間文件
 CadWorkspaceFactory  esriFileSystemWorkspace  打開CAD文件的工作空間
 OLEDBWorkspaceFactory  esriRemoteDatabaseWorkspace  使用OLEDB打開數據庫的空間文件
 SdeWorkspaceFactory  esriRemoteDatabaseWorkspace  打開SDE數據庫的工作空間
 ShapefileWorkspaceFactory   esriFileSystemWorkspace   打開Shapefile文件的工作空間
 TinWorkspaceFactory   esriFileSystemWorkspace  打開TIN文件的工作空間
 TextFileWorkspaceFactory   esriFileSystemWorkspace  打開文本文件的工作空間

 

 

 

 

 

 

 

 

 

 

 

   

 數據的加載需要先打開相對應的工作空間。工作空間是一個普通類,因此不能直接創建。為獲得一個工作空間,需要使用工作工廠WorkspaceFactory對象來創建。

 


 

     1.Iworkspace接口

Iworkspace接口定義了訪問空間數據庫的各種屬性和方法,如工作空間的連接屬性等。通過Iworkspace可以實例化現有數據集和創建新數據集。由於工作空間是一個普通類,需要得到工作空間,需要通過工作空間工廠來創建。

2.IworkspaceFactory接口

IworkspaceFactory接口定義了創建、打開工作空間的方法和對工作空間工廠信息成員的訪問。用戶可以通過工作空間工廠管理不同類型的工作空間,所有的工作對象都可以通過此接口產生。

IworkspaceFactory接口產生的Create方法產生一個新的工作空間對象,不同類型的工作空間對象是不同的,如AccessWorkspaceFactory產生個人地理數據庫類型的工作空間,為*.mdb類型文件;ShapefileWorkspaceFactory對象則產生文件夾形式的工作空間。

IworkspaceFactory接口的Open方法和OpenFromFile方法可以用於打開一個文件類型的數據,如*.mdb/*.shp/*.dwg/*.img


 MapControl控件接口

MapControl控件與ArcMap中的數據視圖(DataView)相對應,主要用於圖形顯示,它是一個自動化控件,MapControl提供的相關接口如下:

1.IMapControlDefault接口

此接口是MapControl空間的默認接口,是代表當前版本的最新接口,開發環境自動使用這個接口定義的屬性和方法。此接口的使用方法如下:

IMapControlDefault pMapControl;

pMapControl=axMapControl1.Object as IMapControlDefault;

2.IMapControl2接口

IMAPControl2接口提供了一系列的屬性和方法,如設置MapControl控件的顯示屬性、控件外觀、添加及管理數據圖層和地圖文檔、在控件上繪制圖形和返回幾何對象等。

顯示MapControl控件的屬性有AboutBox等,定義了控件的外觀的屬性有Apperance、BorderStyle和BackColor等,添加、移動、刪除圖層的方法有AddLayer、AddLayerFromFile、AddShapefile、ClearLayer、DeleteLayer、MoveLayerTo和Pan等,繪制圖形的方法有DrawShape和DrawText等,返回幾何對象的方法有TrackCircle、TrackLine、TrackPolygon和TrackRectangle等。

3.IMapControl3接口

IMapControl3接口在繼承IMapControl2接口的基礎上,增加了以下屬性和方法:

CustomProperty:設置自定義控件屬性。

DocumentFilename:返回MapControl中載入的地圖文檔的文件名。

DocumentMap:返回MapControl中最后載入的地圖名稱。

KeyIntercept:返回或設置MapControl控件截取的鍵盤按鍵信息,按鍵信息類型如下:

枚舉值 Value 描述
esriKeyInterceptNone 0 沒有截取鼠標按鍵
esriKeyInterceptArrowKeys 1 截取箭頭按鍵
esriKeyInterAlt  2 截取Alt按鍵
esriKeyInterTab 4 截取Tab按鍵
esriKeyInterceptEnter 8 截取Enter按鍵

 

 

 

 

 

 

 

Object:返回MapControl控件

ShowMapTips:控制是否顯示地圖的Map Tips。

TipDelay:設置Map Tips的延遲時間。

TipStyle:設置Map Tips的顯示樣式。

SuppressResizeDrawing:當控件尺寸發生變化時組織數據實時重繪。

 

 4.IMapControl4接口

IMapControl4接口在IMAPControl3接口的基礎上,增加了兩個屬性,分別是AutoKeyboardScrolling(確定鍵盤滾動輪是否起作用)和AutoMouseWheel(確定鼠標滾輪是否起作用)。

5.IMAPControlEvents2接口

此接口為事件接口,定義了MapControl能夠處理的全部事件,如OnMouseDown、OnMouseMove、OnKeyUp、OnBeforeScreenDraw、OnAfterDraw和OnExtentUpdataed等。

 (未完待續)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM