天天看點

ArcGIS表關聯方式介紹(二)-ArcSDE視圖、QueryLayer、RelationshipClass

ArcSDE View

         使用資料:單個要素類,要素類與普通表

使用場景:必須存儲在資料庫中使用ArcSDE進行管理

存儲方式:以視圖的形式存儲在資料庫中,使用者調用可以将該視圖看作一個普通要素類,但是該視圖為隻讀模式。

使用方法:必須在ArcSDE機器上建立相關的視圖即可

C:\Users\gis>sdetable -o create_view -T myview -t place,owner -c place.name,place.shape,
place.pid,owner.name -w "place.id=owner.id" -i esri_sdeora -u test -p test
ArcSDE 10.0  for Oracle11g Build 1343 Thu Feb 17 11:45:42  2011
Attribute        Administration Utility
-----------------------------------------------------
        Error: Underlying DBMS error (-51).
        Error: Unable to create view myview
ORA-00957: 重複的列名
(myview)
           

之是以出這個錯誤,我們可以看出Place表有一個name字段,Owner表有一個name

字段,這個如果不定義-a(視圖列)就會出現這個問題。

C:\Users\gis>sdetable -o create_view -T myview -t place,owner -c place.name,place.shape,
place.pid,owner.name  -a placename,shape,placeid,ownername -w "place.id=owner.id" 
-i esri_sdeora -u test -p test
ArcSDE 10.0  for Oracle11g Build 1343 Thu Feb 17 11:45:42  2011
Attribute        Administration Utility
-----------------------------------------------------
Successfully created view myview.
           

優點:使用者可以建立自己想要的視圖,而且使用者在調用這些視圖時就像操作普通的要

素類一樣友善,不用的時候直接删除這些視圖即可。

缺點:如果條件需要改變,需要重新建立視圖;

     使用指令行操作,對使用者要求比較高

     使用者必須在伺服器端(安裝ArcSDE伺服器)才能進行建立

注意:在進行資料編輯時需要注意,如果是對空間資料進行非版本編輯的話,打開視圖

可以實時看到更新的資料,如果是對空間資料進行版本編輯的話,打開視圖并不

能看到最新的資料,如果對資料進行協調送出壓縮等操作到基表即可。

Query Layer

Query Layer是通過 SQL 查詢定義的圖層或獨立表。通過查詢圖層可将空間資訊和非空間資訊都存儲在 DBMS 中,進而使這些資訊可以輕松地整合到 ArcMap 中的各 GIS 項目。

其實就是把我們的空間資料圖層的概念看作成背景資料庫存儲的表的概念,因為我們通常習慣于利用SQL語句來直接操作屬性表,但是對空間資料圖層來說在ArcGIS10之前是不支援的,鑒于大家對SQL的喜愛,Esri在ArcGIS10就引入了Query Layer,它就可以直接使用SQL語句進行查詢或者空間資料與屬性資料的聯表查詢。

使用前

  • 必須采用目前使用的 ArcGIS 版本支援的 DBMS 版本。
  • 必須安裝資料庫的用戶端
  • 查詢圖層定義中必須包括在查詢圖層中用作對象 ID 的唯一、非空的列或列組合。
  • 根據所使用的 DBMS 類型,可能需要在 DBMS 中進行一些必要的配置來使用空間類型。 SQLServer(Geometry、Geography),Oracle(ST_Geometry、SDO_Geometry)

儲存為檔案

通過另存為圖層檔案 (.lyr)、建立圖層包 (.lpk) 或通過地圖包 (.mpk) 綁定地圖和關聯資料,查詢圖層可在使用者之間、應用程式之間和其他地圖文檔之間輕松地實作共享。

其實這個檔案與我們經常使用的MXD檔案有異曲同工之妙,該檔案并沒有存儲真正的查詢資料資訊,而是存儲了伺服器連接配接資訊、查詢過濾條件資訊,這樣也就保證我們随時可以查詢最新的資訊。

1:建立一個Query Layer圖層

ArcGIS表關聯方式介紹(二)-ArcSDE視圖、QueryLayer、RelationshipClass

2:選擇資料連接配接

ArcGIS表關聯方式介紹(二)-ArcSDE視圖、QueryLayer、RelationshipClass

3:針對一個圖層或者一個圖層與普通表進行條件過濾或者聯表查詢條件過濾

4:參數添加完畢後,Query Layer就可以加載到ArcMap上了,然後也可以另存為上面所說的相關格式檔案。假如我們将Query Layer存儲為XX.lyr檔案,C:\Users\gis\AppData\Roaming\ESRI\Desktop10.0\ArcMap檔案夾下會産生一個***.qcf存儲Query Layer的連接配接資訊檔案。

5:編輯目前源資料檔案,修改相關屬性,使其在過濾條件之内。

6:重新加載Query Layer檔案,發現并沒有實時的将最新的資料給加載上去。

     注意:在進行資料編輯時需要注意,如果是對空間資料進行非版本編輯的話,打開

QueryLayer可以實時看到更新的資料,如果是對空間資料進行版本編輯的話,

打開Querylayer并不能看到最新的資料,如果對資料進行協調送出壓縮等操作

到基表即可。

  這些資訊其實和上面的視圖描述基本一樣,但是在ArcGIS10.1在QueryLayer

方面會有所改變,也就是不管你是版本編輯或者非版本編輯,都能實時更新最新

更新的資料。

Relationship Class

         其實對關系類來說,最大的優勢并不是将空間要素類與屬性表進行關聯,它的最大的作用可以關聯空間要素類與空間要素類的關系。舉個國土的例子,國土有一種面狀要素類稱為宗地,還有一種面狀要素類稱為房屋,而且房屋要素必須在宗地上面,如果建立兩者的拓撲關系,宗地要素必須包含房屋要素,那麼這就産生了一種關系,可以存在無房屋的宗地,但是不能存在無宗地的房屋。是以關系類最大的作用就是管理空間資料的業務關系。

ArcGIS表關聯方式介紹(二)-ArcSDE視圖、QueryLayer、RelationshipClass

以下是使用關系類的優點:

l  使用關系類有助于增強相關對象之間的引用完整性。

建立關系類便可在修改對象時自動地更新其相關對象。這包括以實體方式移動相關要素、删除相關對象或更新屬性。例如,您可以建立關系來確定當移動電線杆時,電線杆上的變壓器和其他裝置也随之一起移動。通過設定規則,關系類可以限制有效的關系類型。例如,一種電線杆最多可以支援三類變壓器。鋼制的電線杆支援 A 類變壓器而不支援 B 類變壓器。即使相關聯的類中有一個沒有被添加到 ArcMap 會話中,關系類也将有效地保持相關類之間的引用完整性。

l  關系類易于編輯,有助于降低您的維護成本。

通過自動更新相關對象,關系類可以減少額外的編輯操作。關系類有助于您在編輯的同時通路對象。可以選擇一個對象,然後使用“屬性”對話框或表查找所有相關對象。當您導航到相關對象時,就可以對該對象的屬性進行編輯。無論連結多深,所有相關類都可進行編輯。因為關系類在地理資料庫中存儲,是以可以使用版本對其進行管理。多使用者通過版本可以同時編輯關系中的要素或記錄。

l  您可以使用關系類查詢相關要素和記錄。與ArcMap 連接配接類似,您可以對相關類的屬性進行查詢、執行分析以及生成報告。

l  對于不同分辨率,沒有任何限制。簡單或複合關系類可由不同分辨率的要素類組成。

關于關系類,我們專門進行一個專題研究,這裡不再說明。

文檔下載下傳位址:http://download.csdn.net/source/3485040