ArcGIS應用Oracle Spatial特徵分析

該文章並不是將Oracle  Spatial與ST_Geometry做對比,關於兩者的對比,可以參考:http://blog.csdn.net/warrenwyf/article/category/705065,這裏從數據結構,到性能對比,都描述的很清楚。

         其實這篇文件就是說明一下在ArcGIS中使用OracleSpatial在ArcGIS與使用ST_Geometry的特徵不同,從不同的特徵也可以證明Oracle Spatial存儲與ST_Geometry存儲的結構對比。

 

問題1:怎麼判斷我的數據是否爲Oracle Spatial存儲

 

  1. <span style="font-family:'Microsoft YaHei';font-size:16px;">SQL> desc polygon_st  
  2.  名稱                                      是否爲空? 類型  
  3.  ------------------------------------------------- ----------------------------   
  4.  OBJECTID                                  NOT NULLNUMBER(38)  
  5.  NAME                                              NVARCHAR2(30)  
  6.  CNTY_CODE                                          NVARCHAR2(6)  
  7.  PROV                                              NVARCHAR2(20)  
  8.  CITY                                              NVARCHAR2(20)  
  9.  SHAPE                                             SDE.ST_GEOMETRY  
  10.    
  11. SQL> desc polygon_sdo  
  12.  名稱                                      是否爲空? 類型  
  13.  ------------------------------------------------- ----------------------------   
  14.  OBJECTID                                  NOT NULLNUMBER(38)  
  15.  NAME                                              NVARCHAR2(30)  
    1.  CNTY_CODE                                         NVARCHAR2(6)  
    2.  PROV                                              NVARCHAR2(20)  
    3.  CITY                                              NVARCHAR2(20)  
    4.  SHAPE                                             MDSYS.SDO_GEOMETRY  
    5.  SE_ANNO_CAD_DATA                                   BLOB</span>  
    <span style="font-family:'Microsoft YaHei';font-size:16px;">SQL> desc polygon_st 名稱 是否爲空? 類型 ------------------------------------------------- ---------------------------- OBJECTID NOT NULLNUMBER(38) NAME NVARCHAR2(30) CNTY_CODE NVARCHAR2(6) PROV NVARCHAR2(20) CITY NVARCHAR2(20) SHAPE SDE.ST_GEOMETRY SQL> desc polygon_sdo 名稱 是否爲空? 類型 ------------------------------------------------- ---------------------------- OBJECTID NOT NULLNUMBER(38) NAME NVARCHAR2(30) CNTY_CODE NVARCHAR2(6) PROV NVARCHAR2(20) CITY NVARCHAR2(20) SHAPE MDSYS.SDO_GEOMETRY SE_ANNO_CAD_DATA BLOB</span>

            我們使用Sqlplus進行連接,直接Desc相關的表,查看關於空間列的描述可以看出,很明顯的ST_Geometry 和MDSYS.SDO_GEOMETRY對比。

     

    問題2:怎麼使用ArcGIS將數據導入到ArcSDE中以Oracle Spatial存儲


           可以使用ArcGIS的Import工具等將數據導入到ArcSDE中,在導入前選擇Configuration Keyword:選擇SDE_GEOMETRY。

           該關鍵字主要是在SDEHOME/etc/dbtune.sde裏面控制(其他後綴文件也可以,也可以使用sdedbtune命令進行修改)

     

    1. <span style="font-family:'Microsoft YaHei';font-size:16px;">##DEFAULTS  
    2.    
    3. GEOMETRY_STORAGE   "ST_GEOMETRY"  
    4. ST_GEOM_LOB_STORAGE  " STOREAS (  
    5. #                      TABLESPACE<lob segment tablespace_name>  
    6.                        ENABLE STORAGE IN ROW CHUNK 8K RETENTIONCACHE) "  
    7.    
    8. ATTRIBUTE_BINARY   "BLOB"  
    9. RASTER_STORAGE      "BLOB"  
    10. ......  
    11.    
    12. END  
    13.    
    14. -------------------------------------------分割線----------------   
    15.    
    16. ##SDO_GEOMETRY  
    17. GEOMETRY_STORAGE   "SDO_GEOMETRY"  
      1. ATTRIBUTE_BINARY   "BLOB"  
      2. RASTER_STORAGE    "SDO_GEORASTER"  
      3. SDO_COMMIT_INTERVAL  1000  
      4. RDT_STORAGE         "PCTFREE 0INITRANS 4"  
      5. #                    TABLESPACE<RDT Table tablespace name>  
      6. RDT_INDEX_COMPOSITE "PCTFREE 0 INITRANS 4  
      7. #                    TABLESPACE<RDT Composite index tablespace name>  
      8.                     NOLOGGING"  
      9. UI_TEXT             "UserInterface text description for SDO_GEOMETRY"  
      10.    
      11. COMMENT             "Anygeneral comment for SDO_GEOMETRY keyword"  
      12.    
      13. END</span>  
      <span style="font-family:'Microsoft YaHei';font-size:16px;">##DEFAULTS GEOMETRY_STORAGE "ST_GEOMETRY"ST_GEOM_LOB_STORAGE " STOREAS (# TABLESPACE<lob segment tablespace_name> ENABLE STORAGE IN ROW CHUNK 8K RETENTIONCACHE) " ATTRIBUTE_BINARY "BLOB"RASTER_STORAGE "BLOB"...... END -------------------------------------------分割線---------------- ##SDO_GEOMETRYGEOMETRY_STORAGE "SDO_GEOMETRY"ATTRIBUTE_BINARY "BLOB"RASTER_STORAGE "SDO_GEORASTER"SDO_COMMIT_INTERVAL 1000RDT_STORAGE "PCTFREE 0INITRANS 4"# TABLESPACE<RDT Table tablespace name>RDT_INDEX_COMPOSITE "PCTFREE 0 INITRANS 4# TABLESPACE<RDT Composite index tablespace name> NOLOGGING"UI_TEXT "UserInterface text description for SDO_GEOMETRY" COMMENT "Anygeneral comment for SDO_GEOMETRY keyword" END</span>

      通過這個文件說明,我們很容易看到系統數據按照什麼樣的存儲來選擇的。

       

      問題3:使用Oracle Spatial存儲的數據與ST_Geometry存儲在ArcGIS桌面表現有哪些不一樣

      表現1:使用“信息”工具,查看要素屬性時

       

      因爲數據結構不一樣,ST_Geometry存儲包括了數據的長度和麪積,但是對SDO_Geometry沒有,所以,使用SDO_geometry存儲的數據,兩者都爲0,這種情況是正常的。

       

      從上圖可以看到,由於兩者使用的索引方式不同,ST_Geometry使用Grid格網索引,而Oracle Spatial使用R Tree索引,所以用戶當看到這樣的區別也是正常的。

       

      問題4:我是否可以在不使用ArcSDE的情況下,使用ArcGIS桌面來連接Oracle Spatial數據

      回答:只有在ArcGIS10當中是可以的,因爲ArcGIS10提供了QueryLayer,QueryLayer就可以在不使用ArcSDE的情況下,來訪問非ArcGIS(ST_Geometry)的數據。

      關於QueryLayer使用:http://wenku.baidu.com/view/3bb5268271fe910ef12df8db.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章