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等。
(未完待續)