GB-T 30320-2013地理空間數(shù)據(jù)庫訪問接口_第1頁
GB-T 30320-2013地理空間數(shù)據(jù)庫訪問接口_第2頁
GB-T 30320-2013地理空間數(shù)據(jù)庫訪問接口_第3頁
GB-T 30320-2013地理空間數(shù)據(jù)庫訪問接口_第4頁
GB-T 30320-2013地理空間數(shù)據(jù)庫訪問接口_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

地理空間數(shù)據(jù)庫訪問接口Geospatialdatabasecall-levelinterface中華人民共和國國家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局發(fā)布IGB/T30320—2013前言 V 12規(guī)范性引用文件 13術(shù)語和定義 14符號和縮略語 34.1符號 34.2縮略語 34.3UML圖示符號 44.4UML多樣性描述 45空間數(shù)據(jù)庫數(shù)據(jù)訪問對象邏輯關(guān)系 55.1概述 55.2數(shù)據(jù)源 55.3數(shù)據(jù)集 55.4矢量數(shù)據(jù)集 55.5要素集 65.6柵格數(shù)據(jù)集 65.7空間數(shù)據(jù)模型 66空間數(shù)據(jù)庫數(shù)據(jù)訪問對象描述 66.1數(shù)據(jù)源 66.2數(shù)據(jù)連接 96.3數(shù)據(jù)集 6.4數(shù)據(jù)集類型 6.5矢量數(shù)據(jù)集 6.7查詢對象 6.8要素 6.9字段信息 6.10字段信息集合 6.11柵格數(shù)據(jù)集 6.12波段信息 6.13像素格式 6.14像素 6.15掃描線 6.16數(shù)據(jù)塊 7元數(shù)據(jù)訪問對象 ⅡGB/T30320—20137.1元數(shù)據(jù)對象邏輯關(guān)系 7.2元數(shù)據(jù)訪問對象定義 8空間參照系 8.1空間參照系對象邏輯關(guān)系 8.2空間參照系對象定義 9數(shù)據(jù)提供者加載與卸載 9.2數(shù)據(jù)提供者管理器 9.3數(shù)據(jù)提供者 參考文獻(xiàn) 圖1GDB-CLI數(shù)據(jù)訪問對象UML圖 5圖2數(shù)據(jù)源相關(guān)對象UML圖 7圖3數(shù)據(jù)源對象屬性和方法 7圖4連接對象屬性 9圖5數(shù)據(jù)集相關(guān)對象UML圖 圖6數(shù)據(jù)集對象屬性和方法 圖7數(shù)據(jù)集類型 圖8矢量數(shù)據(jù)集相關(guān)對象UML圖 圖9矢量數(shù)據(jù)集屬性和方法 圖10要素集對象的方法 圖13字段信息對象UML圖 圖14柵格數(shù)據(jù)集對象UML圖 圖16像素格式枚舉對象UML圖 圖17像素對象UML圖 圖18掃描線對象UML圖 圖19數(shù)據(jù)塊對象UML圖 圖21元數(shù)據(jù)庫對象屬性和方法 圖22元數(shù)據(jù)集對象屬性和方法 圖23空間參考系對象UML圖 圖24數(shù)據(jù)提供者管理器類圖 表1符號對照表 3表2縮寫對照表 3表3UML圖符號對照表 4表4UML圖多樣性描述 4表5數(shù)據(jù)集與空間對象的存儲對應(yīng)關(guān)系 6ⅢGB/T30320—2013表6數(shù)據(jù)集類型描述 表7查詢選項(xiàng)枚舉 表8查詢類型枚舉 表9游標(biāo)類型枚舉 表10字段標(biāo)記列表 表11字段類型描述列表 表12像素格式描述 V本標(biāo)準(zhǔn)按照GB/T1.1—2009給出的規(guī)則起草。本標(biāo)準(zhǔn)由國家測繪地理信息局提出。本標(biāo)準(zhǔn)由全國地理信息標(biāo)準(zhǔn)化技術(shù)委員會(SAC/TC230)歸口。本標(biāo)準(zhǔn)起草單位:北京超圖軟件股份有限公司、武大吉奧信息技術(shù)有限公司、武漢中地?cái)?shù)碼科技有限公司、中遙地網(wǎng)信息技術(shù)有限公司、北京大學(xué)遙感與地理信息系統(tǒng)研究所。謝林。1地理空間數(shù)據(jù)庫訪問接口1范圍本標(biāo)準(zhǔn)規(guī)定了地理空間數(shù)據(jù)庫的數(shù)據(jù)訪問對象模型及接口,對滿足本標(biāo)準(zhǔn)接口的空間數(shù)據(jù)提供者的加載和卸載作出規(guī)定。本標(biāo)準(zhǔn)適用于通過標(biāo)準(zhǔn)接口訪問或共享地理空間數(shù)據(jù)庫的應(yīng)用,側(cè)重于從數(shù)據(jù)使用者和數(shù)據(jù)提供者角度描述訪問對象模型及接口,不適用于坐標(biāo)參照系和元數(shù)據(jù)的具體內(nèi)容。2規(guī)范性引用文件下列文件對于本文件的應(yīng)用是必不可少的。凡是注日期的引用文件,僅注日期的版本適用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T19710—2005地理信息元數(shù)據(jù)(ISO19115:2003,MOD)ISO19111:2007地理信息基于坐標(biāo)的空間參照(Geographicinformation—Spatialreferencingbycoordinates)ISO19125-1:2004地理信息簡單要素存取第1部分:通用框架(Geographicinformation—Simplefeatureaccess—Part1:Commonarchitecture)3術(shù)語和定義下列術(shù)語和定義適用于本文件。地理空間數(shù)據(jù)庫geospatialdatabase用來存貯、管理和檢索空間數(shù)據(jù),表達(dá)空間實(shí)體的位置、形狀、大小及其分布特征等方面信息的數(shù)據(jù)庫。數(shù)據(jù)提供者dataprovider實(shí)現(xiàn)了地理空間數(shù)據(jù)庫訪問接口以及相關(guān)的配置說明的對象。數(shù)據(jù)提供者管理器dataprovidermanager管理數(shù)據(jù)提供者的對象,包括對數(shù)據(jù)提供者的加載、卸載、查找等操作。數(shù)據(jù)使用者datacustomer調(diào)用地理空間數(shù)據(jù)庫訪問接口操作數(shù)據(jù)提供者的空間數(shù)據(jù)的對象。數(shù)據(jù)使用者可以使用標(biāo)準(zhǔn)的接口訪問不同數(shù)據(jù)提供者的空間數(shù)據(jù)。現(xiàn)實(shí)世界現(xiàn)象的抽象。2代表要素空間特征的對象。柵格數(shù)據(jù)rasterdata被表示成有規(guī)則的空間陣列的數(shù)據(jù)。由幾何元素所表示的數(shù)據(jù)。數(shù)據(jù)集dataset可以標(biāo)識的數(shù)據(jù)集合。矢量數(shù)據(jù)集vectordataset一組矢量數(shù)據(jù)要素(feature)的集合,具有相同的幾何對象類型、相同的空間參照系和相同的字段信息結(jié)構(gòu)。柵格數(shù)據(jù)集rasterdataset具有長度和寬度范圍的一組有規(guī)則的空間陣列數(shù)據(jù)的集合,這些陣列數(shù)據(jù)有相同的空間參照系,陣列數(shù)據(jù)值即代表對應(yīng)空間位置的屬性且所有值描述的是同類屬性,比如溫度、高程值或其他。數(shù)據(jù)源datasource由數(shù)據(jù)提供者提供的各種類型的數(shù)據(jù)集(如點(diǎn)、線、面、影像、格網(wǎng)數(shù)據(jù)集)組成的數(shù)據(jù)集集合。一個(gè)數(shù)據(jù)源可包含一個(gè)或多個(gè)不同類型的數(shù)據(jù)集;一個(gè)數(shù)據(jù)源可以對應(yīng)一個(gè)數(shù)據(jù)文件或者數(shù)據(jù)庫。對矢量數(shù)據(jù)集進(jìn)行條件查詢的結(jié)果集。查詢條件可以是空間關(guān)系或者屬性條件。游標(biāo)類型cursortype標(biāo)識要素集遍歷數(shù)據(jù)的方式。表示屬性信息的集合。坐標(biāo)coordinate用來指示N維空間中點(diǎn)的位置的數(shù)值序列。3坐標(biāo)參照系coordinatereferencesystem通過基準(zhǔn)與現(xiàn)實(shí)世界相關(guān)的坐標(biāo)系。大地坐標(biāo)系geodeticcoordinatesystem位置由大地經(jīng)度和緯度及大地高程(在三維的情況下)確定的坐標(biāo)系。投影坐標(biāo)系projectedcoordinatesystem由地圖投影產(chǎn)生的二維坐標(biāo)系。元數(shù)據(jù)metadata關(guān)于數(shù)據(jù)的內(nèi)容、質(zhì)量、狀況和其他特性的描述性數(shù)據(jù)。4符號和縮略語4.1符號表1描述的符號適用于本文件。表1符號對照表符號~表示在符號前后對象之間取值l表示符號前后項(xiàng)任選其一表示括號內(nèi)的對象為可選n表示數(shù)字表示在符號左端數(shù)值到右端數(shù)值的區(qū)間中任取其一,()表示開區(qū)間;[]表示閉區(qū)間表2描述的縮略語適用于本文件。表2縮寫對照表描述符中文名稱英文名稱空間數(shù)據(jù)庫訪問接口GeospatialDatabaseCall-LevelInterf數(shù)據(jù)定義語言DataDefinitionLanguage數(shù)據(jù)操縱語言DataManipulationLanguage4表2(續(xù))描述符中文名稱英文名稱統(tǒng)一建模語言UnifiedModellingLanguage空間參照系唯一標(biāo)識通用唯一識別碼UniversallyUniqueIdentifier本標(biāo)準(zhǔn)出現(xiàn)的圖用UML靜態(tài)結(jié)構(gòu)表示,所有數(shù)據(jù)模型UML圖示中符號表示的規(guī)定見表3。表3UML圖符號對照表符號名稱說明AB雙向關(guān)聯(lián)表示A、B兩個(gè)類之間的一般關(guān)系,兩個(gè)類都知道另一個(gè)類的公共屬性和方法AB單向關(guān)聯(lián)表示A、B兩個(gè)類之間的關(guān)聯(lián)關(guān)系,A類知道B類的公共屬性和方法,但B類不知道A類的公共屬性和方法AB聚合A對象擁有B對象,A對象可以包含B對象,但B對象不是A對象的組成部分,二者生命周期可以不同AB組合A對象擁有B對象,是整體和部分的關(guān)系,且生命周期一致AB泛化B對象繼承A對象,即B對象由A對象派生AB依賴A類依賴于B類,B類的變化將影響A類。如果A類依賴B類,則B可以體現(xiàn)為A的局部變量、方法的參數(shù)或者靜態(tài)方法的調(diào)用本標(biāo)準(zhǔn)涉及的UML圖中多樣性描述含義見表4。表4UML圖多樣性描述多樣性0..11只能1個(gè)0..n0個(gè)或多個(gè)1個(gè)或多個(gè)55空間數(shù)據(jù)庫數(shù)據(jù)訪問對象邏輯關(guān)系GDB-CLI的空間數(shù)據(jù)庫訪問對象如圖1所示。數(shù)據(jù)源(GDBDataSource)是各種數(shù)據(jù)集(GDB-Dataset)的容器,統(tǒng)一管理所有的數(shù)據(jù)集。數(shù)據(jù)源和數(shù)據(jù)集可以關(guān)聯(lián)相關(guān)的元數(shù)據(jù)(GDBMetaData),數(shù)據(jù)集還可以具有相應(yīng)的空間參照系統(tǒng)(GDBCoordReferenceSys)。GDBMetadataGDBMetadataGDBCoordReferenceSysGDBQueryDefGDBVectorDatasetGDBScanlineGDBFieldValueGDBGeometryGDBFieldInfos1GDBFieldInfoGDBRasterBlockGDBFeatureGDBRasterDatasetGDBDataSourceGDBFeaturesetGDBDataset11圖1GDB-CLI數(shù)據(jù)訪問對象UML圖5.2數(shù)據(jù)源數(shù)據(jù)源(GDBDataSource)是由各種類型的數(shù)據(jù)集(如點(diǎn)、線、面、影像、格網(wǎng)數(shù)據(jù)集)組成的數(shù)據(jù)集集合。一個(gè)數(shù)據(jù)源可包含一個(gè)或多個(gè)相同類型的數(shù)據(jù)集,也可以同時(shí)管理多個(gè)不同類型的數(shù)據(jù)集。數(shù)據(jù)集(GDBDataset)是由相同特征的空間對象組成的數(shù)據(jù)集合。根據(jù)對空間信息的描述方式不同而派生兩大子類:矢量數(shù)據(jù)集(GDBVectorDataset)和柵格數(shù)據(jù)集(GDBRasterDataset)。5.4矢量數(shù)據(jù)集矢量數(shù)據(jù)集是矢量要素(GDBFeature)的聚合,每個(gè)要素可以有幾何(GDBGeometry)和屬性(GD-BFieldValue)數(shù)據(jù)。對矢量數(shù)據(jù)集的查詢結(jié)果可以用要素集(GDBFeatureset)表示。6要素集是要素的聚合,它是數(shù)據(jù)集中數(shù)據(jù)的一個(gè)投影或訪問窗口。矢量數(shù)據(jù)集和要素集使用字段信息集合(GDBFieldInfos)表示屬性結(jié)構(gòu)信息。矢量數(shù)據(jù)的編輯操作包括添加或修改要素的空間或?qū)傩孕畔ⅰh除要素。編輯操作提供兩種方式:●要素集方式。對矢量數(shù)據(jù)集進(jìn)行查詢得到要素集(GDBFeatureset),通過要素集分別操作空間數(shù)據(jù)和屬性數(shù)據(jù)。參見6.6.2?!駥ο蠓绞?。以要素(GDBFeature)為基本單元的數(shù)據(jù)操作。通過操作矢量數(shù)據(jù)集或要素集中的要素(GDBFeature)來操作空間數(shù)據(jù)和屬性數(shù)據(jù)。參見6.5.3和6.6.2。5.6柵格數(shù)據(jù)集柵格數(shù)據(jù)集是按規(guī)則排列的一系列像素點(diǎn)或數(shù)值的聚合,它用一個(gè)規(guī)則格網(wǎng)來描述與每一個(gè)格網(wǎng)單元位置相對應(yīng)的空間現(xiàn)象特征的位置和取值,每一個(gè)格網(wǎng)單元為一個(gè)像素。柵格數(shù)據(jù)集常用來存儲GDB-CLI通過數(shù)據(jù)塊(GDBRasterBlock)、掃描線(GDBScanline)、像素點(diǎn)(GDBPixel)三種模式來訪問柵格數(shù)據(jù)集中的數(shù)據(jù)。5.7空間數(shù)據(jù)模型GDB-CLI的空間數(shù)據(jù)模型采用ISO19125-1:2004規(guī)定的簡單對象模型,各空間對象(GDBGeome-try)與數(shù)據(jù)集的存儲對應(yīng)關(guān)系見表5。表中空間對象的is3D()和isMeasuered()應(yīng)與數(shù)據(jù)集的hasZDi-mension和hasMDimension屬性對應(yīng),即如果空間對象的is3D()方法返回TRUE,則應(yīng)存儲在hasZDi-mension屬性為TRUE的數(shù)據(jù)集中,對Measure屬性類同表5數(shù)據(jù)集與空間對象的存儲對應(yīng)關(guān)系數(shù)據(jù)集類型空間對象類型LineString,Line,LinearRing,MultiLineStringPolygon,Triangle,MultiPolygon以上各種空間對象,GeometryCollection6空間數(shù)據(jù)庫數(shù)據(jù)訪問對象描述6.1數(shù)據(jù)源數(shù)據(jù)源的職責(zé)包括:1)建立到后臺數(shù)據(jù)庫或數(shù)據(jù)文件的訪問鏈接;2)對各數(shù)據(jù)集的組織和管理(如對數(shù)據(jù)集元數(shù)據(jù)的查詢、修改,以及對數(shù)據(jù)集的創(chuàng)建、刪除等);3)數(shù)據(jù)源自身的元數(shù)據(jù)說明。數(shù)據(jù)源的對象UML圖見圖2。7GDBConnection1Vo.n0..n0..化數(shù)據(jù)源對象的屬性和方法圖見圖3。GDBDataSource+connection:GDBConnectionalias:CharaterString+engineClass:IntegerengineName:CharacterStnng+providerUUID:CharacterStning+descnption:CharacterString+verson:CharaterStnng+metaUUID:CharaterStning+datasets:Set<GDBDataset>+Create():Boolean+Open():Boolean+Cloe():void+lsOpen():BooleanGetDataset(cDatasetName:CharacterString):GDBDataset+DeleteDataset(cDatasetName:CharacterStning):BooleanCreateDatasetVector(cDataetName:CharacterStnng,type:GDBDatasetType):GDBVectorDataset+CreateDatasetRaser(cDatasetName:CharacterString,type:GDBDataetType,format:GDBPixcelFormat…):GDBRaserDatasetCreateDatasetFrom(cNewName:CharacterString,refDataset:GDBDataset):GDBDatasetCopyDataset(dataet:GDBDataset,cDesDatasetName:CharacterString):GDBDataset+IsModified():BooleanSetModifiedFlag(bModified:Boolean=TRUE):void+Savelnfo():Boolean+Execute(cSQL:CharacterStning):Boolean+lsConnected():BooleanConnect():BooleanGetDateLasUpdated():TimeGetDateCreated():TimeChangePassword(cNewPassvord:CharacterString):BooleanGetUnoccupiedDatasetName(cDatasetName:CharacterString):CharacterStringIsAvailableDataetName(cDatasetName:CharacterString):Boolean+TransBegin():Boolean+TransCommit():void+TransRollback():void+InitMetaDatabae():GDBMetaDatabase+GetMetaDatabase():GDBMetaDatabaseSetMetaUUID(cMetaUUID:CharacterString):Boolean+GetMetaUUID():CharacterStringFindDatasetByMetaData(cMetaUUID:CharacterString):GDBDataset圖3數(shù)據(jù)源對象屬性和方法數(shù)據(jù)源對象的屬性如下:8●connection:GDBConnection—數(shù)據(jù)源的連接信息,通過此信息打開數(shù)據(jù)源;●alias:CharaterString—數(shù)據(jù)源別名,是當(dāng)前環(huán)境下數(shù)據(jù)源實(shí)例對象的唯一標(biāo)識;●engineClass:Integer—數(shù)據(jù)源的引擎類型,與對應(yīng)的數(shù)據(jù)提供者的該屬性值相等,見9.3.3;·engineName:CharacterString—數(shù)據(jù)源的引擎名稱;·providerUUID:CharacterString—數(shù)據(jù)源的提供者的唯一標(biāo)識,與對應(yīng)數(shù)據(jù)提供者的uuid屬性●description:CharacterString—數(shù)據(jù)源描述信息;●version:CharaterString—數(shù)據(jù)源的版本名稱,與對應(yīng)數(shù)據(jù)提供者的version屬性值相等,見9.3.3;●metadataUUID:CharaterString—關(guān)聯(lián)的元數(shù)據(jù)的唯一標(biāo)識字符串,可以為空,為空則表示該數(shù)據(jù)源對象沒有關(guān)聯(lián)元數(shù)據(jù);●datasets:Set<GDBDataset>—數(shù)據(jù)源中的所有數(shù)據(jù)集的集合。數(shù)據(jù)源對象的方法如下:●Create():Boolean—?jiǎng)?chuàng)建數(shù)據(jù)源,需要預(yù)先設(shè)置好connection屬性?!馩pen():Boolean—連接數(shù)據(jù)庫,打開數(shù)據(jù)源,需要預(yù)先設(shè)置好connection屬性?!馛lose():void—關(guān)閉數(shù)據(jù)源?!馡sOpen():Boolean—判斷數(shù)據(jù)源是否已經(jīng)打開?!馟etDataset(cDatasetName:CharacterString):GDBDataset—通過指定名稱返回?cái)?shù)據(jù)集對象。●DeleteDataset(cDatasetName:CharacterString):Boolean—通過指定名稱刪除數(shù)據(jù)集?!reateDatasetVector(cDatasetName:CharacterStriDataset—?jiǎng)?chuàng)建新的矢量數(shù)據(jù)集。矢量數(shù)據(jù)集可以有自己的子數(shù)據(jù)集,參見6.3.2。CreateDatasetRaster(cDatasetName:CharacterString,type:GDBDatasetType,format:GDB-PixcelFormat,nWidth:Integer,nHeight:Integer,nBlocksizeX:Integer,nBlocksizeY:Integer,nBandCount:Integer):GDBRasterDataset—?jiǎng)?chuàng)建新的柵格數(shù)據(jù)集。柵格數(shù)據(jù)集也可以有自己●CreateDatasetFrom(cNewName:CharacterString,refDataset:GDBDataset):GDBDataset—過模板數(shù)據(jù)集創(chuàng)建新的數(shù)據(jù)集,newName為新數(shù)據(jù)集名稱,refDataset為模板數(shù)據(jù)集。集,源數(shù)據(jù)集合srcDataset可以來自不同的數(shù)據(jù)源,datasetName是復(fù)制后的數(shù)據(jù)集名稱?!馡sModified():Boolean—判斷數(shù)據(jù)源對象是否有信息需要保存?!馭etModifiedFlag(bModified:Boolean=TRUE):void—設(shè)置數(shù)據(jù)源修改標(biāo)記,默認(rèn)bModified為TRUE,即標(biāo)識數(shù)據(jù)源已被修改,有信息需要保存?!馭avelnfo():Boolean—保存數(shù)據(jù)源信息?!馝xecute(cSQL:CharacterString):Boolean—執(zhí)行SQL語句,主要用于在數(shù)據(jù)庫級執(zhí)行的數(shù)據(jù)操作,用以執(zhí)行DDL和DML,不返回結(jié)果集?!馛heckConnection():Boolean—判斷數(shù)據(jù)源是否仍然處于連接狀態(tài)以及連接是否可用,主要用于數(shù)據(jù)庫型的數(shù)據(jù)源。●Refresh():Boolean—刷新數(shù)據(jù)源以獲取最新信息;此外,如果數(shù)據(jù)庫型數(shù)據(jù)源因網(wǎng)絡(luò)連接斷開導(dǎo)致CheckConnection()方法檢查到數(shù)據(jù)源的連接已經(jīng)失效,恢復(fù)網(wǎng)絡(luò)連接后,可以用Refresh9()方法刷新數(shù)據(jù)源后繼續(xù)訪問數(shù)據(jù)?!馟etDateLastUpdated():Time—獲取數(shù)據(jù)源最后修改的時(shí)間?!馟etDateCreated():Time—獲取數(shù)據(jù)源創(chuàng)建的時(shí)間。●ChangePassword(cNewPassword:CharacterString):Boolean—修改數(shù)據(jù)源連接密碼。本地文件型數(shù)據(jù)源可以使用此接口修改數(shù)據(jù)源連接密碼?!馟etUnoccupiedDatasetName(cDatasetName:CharacterString):CharacterString—獲取唯一數(shù)●IsAvailableDatasetName(cDatasetName:CharacterString):Boolean—判斷數(shù)據(jù)集名是否可用?!馡nitMetaDatabase():Boolean—初始化與數(shù)據(jù)源對象關(guān)聯(lián)的元數(shù)據(jù)庫對象?!馟etMetaDatabase():GDBMetaDatabase—獲取元數(shù)據(jù)庫對象?!馭etMetaUUID(cMetaUUID:CharacterString):Boolean—給數(shù)據(jù)源設(shè)置元數(shù)據(jù)的UUID,通過該標(biāo)識就能在數(shù)據(jù)源關(guān)聯(lián)的元數(shù)據(jù)庫中找到對應(yīng)的元數(shù)據(jù)?!馟etMetaUUID():CharacterString—獲取數(shù)據(jù)源的元數(shù)據(jù)對象的UUID?!馞indDatasetByMetaData(cMetaUUID:CharacterString):GDBDataset—通過元數(shù)據(jù)的UUID獲取數(shù)據(jù)集,返回的數(shù)據(jù)集對象。如果該數(shù)據(jù)源中沒有數(shù)據(jù)集的元數(shù)據(jù)UUID與傳入的數(shù)據(jù)連接對象(GDBConnection)的屬性見圖4。數(shù)據(jù)源通過GDBConnection提供的信息與數(shù)據(jù)庫建立連接。+server:CharacterString+user:CharacterString+password:CharacterString+readOnly:Boolean+transacted:Boolean+exclusive:Boolean+authorization:Boolean+database:CharacterString+driver:CharacterString+pipe:Boolean+port:Integer+connMaxNum:Integer+connMinNum:Integer+connIncNum:Integer圖4連接對象屬性數(shù)據(jù)連接對象的屬性如下:●server:CharacterString—服務(wù)名。例如:對網(wǎng)絡(luò)數(shù)據(jù)庫型數(shù)據(jù)源,表示Oracle數(shù)據(jù)庫的實(shí)例名,或者SQLSever的服務(wù)器名;對本地文件型數(shù)據(jù)源,該屬性為文件路徑;對網(wǎng)絡(luò)服務(wù)型數(shù)據(jù)源,該屬性為網(wǎng)絡(luò)服務(wù)地址?!駌eadOnly:Boolean—是否只讀打開。只讀打開后數(shù)據(jù)所有的信息都不可修改?!駎ransacted:Boolean—是否以事務(wù)方式打開?!馿xclusive:Boolean—是否獨(dú)占打開?!馻uthorization:Boolean—數(shù)據(jù)庫是否需要密碼打開?!馾river:CharacterString—驅(qū)動(dòng)程序名稱,例如不同數(shù)據(jù)庫的ODBC驅(qū)動(dòng)名稱?!駊ipe:Boolean—是否用命名管道中連接方式,MySQL數(shù)據(jù)庫連接時(shí)使用?!駊ort:Integer—連接端口,例如MySQL中普通連接方式的端口號。●connMaxNum:Integer—數(shù)據(jù)庫連接池的最大連接數(shù)?!馽onnMinNum:Integer—數(shù)據(jù)庫連接池的最小連接數(shù)?!馽onnIncNum:Integer—數(shù)據(jù)庫連接池的增長連接數(shù)。數(shù)據(jù)集與相關(guān)對象關(guān)聯(lián)的UML圖見圖5,數(shù)據(jù)集對象的方法和屬性見圖6。GDBMetadata1GDBDatasetType0..n圖5數(shù)據(jù)集相關(guān)對象UML圖+datasetName:CharacterString+tableName:CharacterString+datasetType:GDBDatasetType+rcBounds:GDBGeometry+isRaster:Boolean+parentDataset:GDBDataset+childDatasets:Set<GDBDataset>+datasource:GDBDataSource+spatialReferenceSys:GDBCoordReferenceSys+description:CharactorString+metadataUUID:CharacterString+Open():Boolean+Close():void+IsOpen():Boolean+IsReadOnly():Boolean+Rename():Boolean+ComputeBounds():Boolean+IsModified():Boolean+SetModifiedFlag(bModified:Boolean=TRUE):void+Savelnfo():Boolean+RefreshInfo():Boolean+GetDateLastUpdated():Time+GetDateCreated():Time+GetMetadata():GDBMetadata圖6數(shù)據(jù)集對象屬性和方法數(shù)據(jù)集對象的屬性如下:●datasetName:CharacterString—數(shù)據(jù)集名稱?!駎ableName:CharacterString—數(shù)據(jù)集在數(shù)據(jù)庫中的數(shù)據(jù)表名稱?!馾atasetType:GDBDatasetType—數(shù)據(jù)集類型,為枚舉值。見6.4?!駌cBounds:GDBGeometry—數(shù)據(jù)集范圍?!駃sRaster:Boolean—是否是柵格數(shù)據(jù)集。●parentDataset:GDBDataset—數(shù)據(jù)集的父數(shù)據(jù)集?!馽hildDatasets:Set<GDBDataset)—數(shù)據(jù)集的子數(shù)據(jù)集集合。子數(shù)據(jù)集強(qiáng)依賴于父數(shù)據(jù)集,如果父數(shù)據(jù)集消亡,則其子數(shù)據(jù)集也隨之消亡,例如:柵格數(shù)據(jù)集的影像金字塔,可以將金字塔作為原柵格數(shù)據(jù)集的子數(shù)據(jù)集集合存儲和管理,從而維護(hù)二者的關(guān)系?!馾atasource:GDBDataSource—數(shù)據(jù)集所在的數(shù)據(jù)源對象?!駍patialReferenceSys:GDBCoordReferenceSys—數(shù)據(jù)集空間參照系信息?!馾escription:CharactorString—數(shù)據(jù)集的描述信息?!駇etadataUUID:CharacterString—數(shù)據(jù)集關(guān)聯(lián)的元數(shù)據(jù)的唯一標(biāo)識。數(shù)據(jù)集對象的方法如下:●Open():Boolean—打開數(shù)據(jù)集;●Close():void—關(guān)閉數(shù)據(jù)集;●IsOpen():Boolean—判斷數(shù)據(jù)集是否已經(jīng)打開;●IsReadOnly():Boolean—數(shù)據(jù)是否能夠被修改;●Rename():Boolean—數(shù)據(jù)集重命名;●ComputeBounds():Boolean—計(jì)算數(shù)據(jù)集范圍,一般在數(shù)據(jù)集中元素被刪除或修改后使用;●IsModified():Boolean—判斷數(shù)據(jù)集對象是否有信息需要保存;●SetModifiedFlag(bModified:Boolean=TRUE):void—設(shè)置數(shù)據(jù)集修改標(biāo)記,默認(rèn)bModified為TRUE,即標(biāo)識數(shù)據(jù)集已被修改,有信息需要保存;●Savelnfo():Boolean—保存數(shù)據(jù)集信息;●Refreshlnfo():Boolean—刷新數(shù)據(jù)集信息;●GetDateLastUpdated():Time—獲取數(shù)據(jù)集最后修改的時(shí)間;●GetDateCreated():Time—獲取數(shù)據(jù)集創(chuàng)建的時(shí)間;●GetMetadata():GDBMetadata—獲取數(shù)據(jù)集元數(shù)據(jù)對象。6.4數(shù)據(jù)集類型在GDB-CLI中矢量數(shù)據(jù)集包括7種:純屬性數(shù)據(jù)集、點(diǎn)數(shù)據(jù)集、線數(shù)據(jù)集、面數(shù)據(jù)集、模型數(shù)據(jù)集、文本數(shù)據(jù)集、復(fù)合數(shù)據(jù)集;柵格數(shù)據(jù)集包括2種:GRID數(shù)據(jù)集、Image數(shù)據(jù)集。數(shù)據(jù)集類型以枚舉對象提供,見圖7。每種類型的描述信息見表6。+Unknown+Tabular+Point+Line+Polygon+Model+Annotation+Compound+Image+Grid圖7數(shù)據(jù)集類型表6數(shù)據(jù)集類型描述Unknown未知類型,用于標(biāo)記不識別的數(shù)據(jù)集Tabular僅包含屬性信息,沒有空間數(shù)據(jù)的數(shù)據(jù)集Point點(diǎn)數(shù)據(jù)集,存儲點(diǎn)對象表6(續(xù))Line線數(shù)據(jù)集,存儲線對象Polygon面數(shù)據(jù)集,存儲面對象Model模型數(shù)據(jù)集,存儲三維場景中的模型對象,一般包括模型的骨架和紋理等信息Annotation文本標(biāo)注數(shù)據(jù)集,存儲文本對象Compound復(fù)合數(shù)據(jù)集,可以存儲多種類型的要素對象影像數(shù)據(jù)集,像素值代表顏色值Grid格網(wǎng)數(shù)據(jù)集,像素值具有具體的含義,如代表高程值、降雨量或光照量等矢量數(shù)據(jù)集是矢量要素(Feature)的集合,同一數(shù)據(jù)集中的要素具有相同的屬性特征。矢量數(shù)據(jù)集相關(guān)的對象UML圖見圖8。矢量數(shù)據(jù)集的屬性和方法見圖9。0..n圖8矢量數(shù)據(jù)集相關(guān)對象UML圖GDBVectorDataset+featuresets:Set<GDBFeatureset>+hasZDimension:Boolean+hasMDimension:Boolean+GetFeatureCount():Integer+AddFeature(feature:GDBFeature):Boolean+UpdateFeature(feature:GDBFeature):Boolean+DeleteFeature(nID:Integer):Boolean+DeleteFeatures(IDs:Set<Integer>):Boolean+GetFeature(nID:Integer):GDBFeature+Append(featureset:GDBFeatureset):Boolean+DeleteAlIFeatures():Boolean+BuildSpatiallndex():Boolean+DropSpatiallndex():Boolean+IsSpatiallndexDirty():Boolean+Query(querydef:GDBQueryDef&):GDBFeatureset+ReleaseFeatureset(pRecordset:GDBFeatureset):Boolean+ReleaseAlFeaturesets():void+UpdateField(cFieldName:CharacterString,cExpress:CharacterString,cFilter:CharacterString):Boolean+CopyField(cSrcFieldName:CharacterString,cDestFieldName:CharacterString):Boolean+CreateFieldIndex(cFieldNames:Set<CharacterString>,clndexName:CharacterString):Boolean+DropFieldIndex(clndexName:CharacterString):Boolean+CreateFields(fieldlnfos:GDBFieldlnfos):Boolean+DeleteField(cFieldName:CharacterString):Boolean+GetFieldlnfos(fieldInfos:GDBFieldlnfos,bSystemFieldExcluded:Boolean=FALSE):Boolean+GetFieldInfo(cFieldName:CharacterString,fieldInfo:GDBFieldInfo):Boolean+SetFieldInfo(cFieldName:CharacterString,fieldInfo:GDBFieldInfo):Boolean+Statistic(cFieldName:CharacterString,nMode:GDBFeatureset:GDBStatisticMode):Variant+GetUnoccupiedFieldName(cFieldName:CharacterString):CharacterString+IsAvailableFieldName(cFieldName:CharacterString):Boolean圖9矢量數(shù)據(jù)集屬性和方法矢量數(shù)據(jù)集對象的屬性如下:●featuresets:Set<GDBFea數(shù)據(jù)集查詢出來的要素集的集合。由數(shù)據(jù)集對象統(tǒng)一●hasZDimension:Boolean—是否帶有Z屬性,如果帶有Z屬性則存儲帶高程值(Z)的空間對象?!駂asMDimension:Boolean—是否帶有M屬性,如果帶有M屬性則存儲帶度量值(M)的空間矢量數(shù)據(jù)集對象的方法如下:●GetFeatureCount():Integer—數(shù)據(jù)集中要素個(gè)數(shù)?!馎ddFeature(feature:GDBFeature):Boolean—向數(shù)據(jù)集中添加新的Feature?!馯pdateFeature(feature:GDBFeature):Boolean—根據(jù)feature的ID更新要素。●DeleteFeature(nID:Integer):Boolean—?jiǎng)h除指定ID的要素?!馜eleteFeatures(IDs:Set<Integer>):Boolean—?jiǎng)h除ID包含在傳入ID集合中的要素?!馟etFeature(nID:Integer):GDBFeature—獲取指定ID的要素?!馎ppend(featureset:GDBFeatureset):Boolean—追加要素集?!馜eleteAllFeatures():Boolean—清空數(shù)據(jù)集中所有要素?!馚uildSpatialIndex():Boolean—?jiǎng)?chuàng)建空間索引。●DropSpatiallndex():Boolean—?jiǎng)h除空間索引。●IsSpatiallndexDirty():Boolean—判斷空間索引是否為臟?!馫uery(querydef:GDBQueryDef&.):GDBFeatureset—根據(jù)指定條件查詢數(shù)據(jù)集。●ReleaseFeatureset(pRecordset:GDBFeatureset):Boolean—釋放指定的要素集?!馬eleaseAllFeaturesets():void—釋放所有查詢出來的要素集。UpdateField(cFieldName:CharacterString,cExpress:CharacterString,cFilter:CharacterString):Bool-●CopyField(cSrcFieldName:CharacterString,cDestFieldName:CharacterString):Boolean—復(fù)制字段值,目的字段名應(yīng)都存在且目的字段要與源字段類型匹配?!馛reateFieldIndex(cFieldNames:Set<CharacterString),clndexName:CharacterString):Boolean—?jiǎng)?chuàng)建●DropFieldIndex(clndexName:CharacterString):Boolean—?jiǎng)h除指定索引名稱的字段索引?!馛reateFields(fieldInfos:GDBFieldInfos):Boolean—?jiǎng)?chuàng)建字段?!馜eleteField(cFieldName:CharacterString):Boolean—?jiǎng)h除指定名字的字段?!馟etFieldInfos(fieldInfos:GDBFieldInfos,bSystemFieldExcluded:Boolean=FALSE):Boolean—獲取字段信息。bSystemFieldExcluded表示是否將系統(tǒng)字段一起返回。●GetFieldInfo(cFieldName:CharacterString,fieldInfo:GDBFieldInfo):Boolean—根據(jù)字段名獲取字段信息?!馭etFieldInfo(cFieldName:CharacterString,fieldInfo:GDBFieldInfo):Boolean—設(shè)置字段●Statistic(cFieldName:CharacterString,nMode:GDBFeatureset::GDBStatisticMode):Variant—統(tǒng)計(jì)●GetUnoccupiedFieldName(cFieldName:CharacterString):CharacterString—獲取新的合法的●IsAvailableFieldName(cFieldName:CharacterString):Boolean—判斷輸入的字段名稱是否可以作為新的字段名。要素集(GDBFeatureset)是矢量數(shù)據(jù)集的一個(gè)子集。要素集可以是根據(jù)一定的條件對矢量數(shù)據(jù)集(GDBDatasetVector)進(jìn)行查詢得到的結(jié)果集。要素集是訪問矢量數(shù)據(jù)的主要對象,可以通過要素集獲取、修改和存儲矢量數(shù)據(jù)。要素集對象的方法見圖10。<<enum>>FindMode+First+<<enum>>FindMode+First+Last+Next+Previous<<enum>>MovePosition+Curent+Begin<<enum>>StatisticMode+Average+Summary+StandardDeviation+VananceGDBFeatureset+IsEmpty():Boolean+IsBOF():Boolean+IsEOF():Boolean+SeekID(nID:Integer):Boolean+Move(fromPosition:GDBFeatureset:MovePosition=GDBFeatureset:Curent,nRows:Integer=1):BooleanGetID():IntegerGetGeometry():GDBGecmetryGetFieldValue(cName:CharacterString,varVal:Variant):BooleanGetFieldValue(nIndex:Integer,varVal:Variant):BooleanFind(cFilter:CharacterString,nFindMode:GDBFeatureset:FindMode):BooleanGetFeatureCount():IntegerGetFieldlnfos():GDBFieldinfosGetFieldlnfo(incName:CharacterString,outfieldinfo:GDBFieldInfo):BooleanCopyField(cSrcExpression:CharacterString.cDestFieldName:CharacterStning):BooleanStatistic(cFieldName:CharacterString,nMode:GDBFeatureset:StatisticMode):VariantRefresh():BooleanComputeBounds(rc2Bounds:GDBGeometry):BooleanGetFeature():GDBFeatureUpdateFeature(feature:GDBFeature):BooleanAddFeature(feature:GDBFeature):BooleanCanUpdate():Boolean+AddNew(geo:GDBGeometry,bRetunlD:Boolean=FALSE):Integer+Edit():BooleanSetGeometry(geo:GDBGecmetry):Bcolean+SetFieldValue(cName:CharacterString,varVal:Variant):Boolean+SetFieldValue(nindex:Integer,varVal:Variant):Boolean+Update():IntegerCancelUpdate():BooleanDelete():BooleanDeleteAll():Boolean+GetDataset():GDBVectorDatasetClose():void圖10要素集對象的方法要素集對象的方法如下:●IsEmpty():Boolean—判斷要素集是否為空?!馡sBOF():Boolean—判斷游標(biāo)位置是否已在表頭?!馡sEOF():Boolean—判斷游標(biāo)位置是否已在表尾?!馭eekID(nID:Integer):Boolean—將游標(biāo)移動(dòng)到指定ID的位置?!馦ove(fromPosition:GDBFeatureset::MovePosition=GDBFeatureset::Current,nRows:In-teger=1):Boolean—將游標(biāo)移動(dòng)到指定位置。參數(shù)nRows表示移動(dòng)的記錄數(shù),大于0時(shí)向后移動(dòng),小于0時(shí)向前移動(dòng);參數(shù)fromPosition為GDBFeatureset::MovePosition類型,表示移動(dòng)●GetID():Integer—獲取當(dāng)前記錄的ID?!馟etGeometry():GDBGeometry—獲取當(dāng)前位置的空間對象?!馟etFieldValue(cName:CharacterString,varVal:Variant):Boolean—獲取當(dāng)前名稱的字段●GetFieldValue(nIndex:Integer,varVal:Variant):Boolean—獲取當(dāng)前位置指定字段的值。·Find(cFilter:CharacterString,nFindMode:GDBFeatureset::Find條件的記錄。cFilter為查詢條件,例如“ID=式,查找當(dāng)前模式下滿足條件的記錄。GDBFeatureset::FindMode為枚舉常量,表示查找?!馟etFieldInfos():GDBFieldInfos—結(jié)果集字段信息?!馟etFieldInfo(incName:CharacterString,outfieldInfo:GDBFieldInfo):Boolean—通過字段名·CopyField(cSrcExpression:CharacterString,cDestFieldName:CharacterString):Bool●Statistic(cFieldName:CharacterString,nMode:GDBFeatureset::StatisticMode):Variant指定的字段進(jìn)行數(shù)理統(tǒng)計(jì)。GDBFeatureset::StatisticMode為枚舉類型,包括:Max—最大值,●Refresh():Boolean—重新執(zhí)行查詢刷新要素集。●ComputeBounds(rc2Bounds:GDBGeometry):Boolean—計(jì)算要素集的范圍?!馟etFeature():GDBFeature—獲取當(dāng)前要素的Feature?!馯pdateFeature(feature:GDBFeature):Boolean—更新當(dāng)前要素?!馎ddFeature(feature:GDBFeature):Boolean—添加新的Feature。●CanUpdate():Boolean—是否能夠修改要素集?!馎ddNew(geo:GDBGeometry,bReturnID:Boolean=FALSE):Integer—增加新記錄?!馭etGeometry(geo:GDBGeometry):Boolean—改寫當(dāng)前記錄的幾何對象?!馭etFieldValue(cName:CharacterString,varVal:Variant):Boolean—根據(jù)名稱更新當(dāng)前記錄的屬性數(shù)據(jù)?!馭etFieldValue(nIndex:Integer,varVal:Variant):Boolean—根據(jù)索引號更新當(dāng)前記錄的屬性●CancelUpdate():Boolean—取消當(dāng)前要素的修改操作?!馜eleteAll():Boolean—?jiǎng)h除所有記錄?!馟etDataset():GDBDatasetVector—獲取要素集對應(yīng)的數(shù)據(jù)集。查詢對象(GDBQueryDef),用以構(gòu)造查詢參數(shù)。GDBVectorDataset的Query方法中傳入此對象進(jìn)行查詢,得到結(jié)果要素集GDBFeatureset。查詢對象的UML圖見圖11。<<enum>>(fromGDBQueryDef)<<enum>>(fromGDBQueryDef)toptionstoptions+fields:Set<CharacterStr<<enum>>(fromGDBQueryDef)+foreignTable:CharacterStr+joinFilter:CharacterS<<enum>>(fromGDBJoinltem)in圖11查詢對象UML圖查詢對象的屬性如下:●fields:Set<CharacterString>—需要查詢的字段列表;●joinltems:Set<GDBJoinltem>—關(guān)聯(lián)查詢條件設(shè)置;●rc2Bounds:GDBGeometry—二維矩形定義的查詢范圍,范圍查詢使用;●IDs:Set<Integer)—需要查詢的ID列表;●geometry:Geometry—用來空間查詢的空間對象;·joinItems:Set<GDBJoinltem>—關(guān)聯(lián)查詢條件。查詢選項(xiàng)(GDBQueryDef:QueryOption),枚舉類型見表7。表7查詢選項(xiàng)枚舉Geometry僅查出空間對象Attribute僅查出屬性數(shù)據(jù)Both空間對象和屬性同時(shí)查詢查詢類型(GDBQueryDef:QueryType),枚舉類型見表8。表8查詢類型枚舉General一般的屬性條件查詢Bounds使用地理范圍矩形查詢指定ID數(shù)組查詢Distance距離查詢Identical空間查詢:同一。返回被搜索圖層中與搜索對象完全相同的對象,包括對象類型和坐標(biāo)Disjoint空間查詢:相離。返回被搜索圖層中與搜索對象相離的對象Intersects空間查詢:交疊。如果搜索對象是面,返回全部或部分被搜索對象包含的對象以及全部或部分包含搜索對象的對象;如果搜索對象不是面,返回全部或部分包含搜索對象的對象(面)Touches空間查詢:接觸。返回被搜索圖層中其邊界與搜索對象邊界相觸的對象Overlaps空間查詢:重疊。返回被搜索圖層中與搜索對象部分有重疊的對象Crosses空間查詢:相交。返回被搜索圖層中與搜索對象(線或面)相交的所有對象(點(diǎn)、線或面)Within空間查詢:被包含。返回被搜索圖層中包含搜索對象的對象。如果返回的對象是面,其應(yīng)全部包含(包括邊接觸)搜索對象;如果返回的對象是線,其應(yīng)完全包含搜索對象;如果返回的對象是點(diǎn),其應(yīng)與搜索對象重合Contains空間查詢:包含。返回被搜索圖層中被搜索對象包含的對象。包括在搜索對象邊界上的情況ExtentIntersect空間查詢:邊界矩形相交。返回被搜索圖層中其邊界矩形與搜索對象的邊界矩形相交但其自身不與搜索對象相交的所有對象CommonPoint空間查詢算子。返回被搜索圖層中與搜索對象至少有一個(gè)公共節(jié)點(diǎn)的所有對象CommonSegment空間查詢算子。返回被搜索圖層中與搜索對象至少有一條公共邊(完全重合,即在重合的邊上共所有節(jié)點(diǎn)(頂點(diǎn)Vertex或端點(diǎn)Endpoint))的所有對象CentroidInPolygon空間查詢算子。返回被搜索圖層中內(nèi)點(diǎn)在搜索對象內(nèi)部的面對象游標(biāo)類型(GDBQueryDef:CursorType),枚舉類型見表9。表9游標(biāo)類型枚舉OpenUnspecified未定義的游標(biāo)類型OpenForwardOnly只向前游標(biāo)OpenKeyset關(guān)鍵集游標(biāo)OpenDynamic動(dòng)態(tài)游標(biāo),可編輯OpenStatic靜態(tài)游標(biāo),不可編輯游標(biāo)位置(GDBQueryDef:CursorLocation),枚舉類型如下關(guān)聯(lián)條件(GDBJoinItem),其屬性如下:oname:CharacterString—關(guān)聯(lián)對象本身的名稱,主要起標(biāo)識作用?!駀oreignTable:CharacterString—外部關(guān)聯(lián)表;連接類型(GDBJoinItem:JoinType)的枚舉類型如下:要素是矢量數(shù)據(jù)集中的基本數(shù)據(jù)單元,一個(gè)矢量數(shù)據(jù)集由多個(gè)要素構(gòu)成。要素的對象UML圖見圖12。GDBFeature+GetID():Integer+SetlD(nID:Integer):void+GetGeometry():GDBGeometry+SetGeometry(geo:GDBGeometry):Boolean+GetValue(nlndex:Integer,outvarValue:Variant):Boolean+GetValue(incFieldName:CharacterString,outvarValue:Variant):Boolean+SetValue(nindex:Integer,varValue:Variant):Boolean+SetValue(cFieldName:CharacterString,varValue:Variant):Boolean+fieldInfos1GDBFieldInfosGDBGeometry圖12要素對象UML圖要素對象的方法如下:●SetID(nID:Integer):void—設(shè)置要素的ID;●GetGeometry():GDBGeometry—要素的幾何對象;●SetGeometry(geo:GDBGeometry):Boolean—設(shè)置要素的幾何對象;●GetValue(nIndex:Integer,outvarValue:Variant):Boolean—根據(jù)索引號獲取要素的屬性字●GetValue(incFieldName:CharacterString,outvarValue:Variant):Boolean—根據(jù)字段值獲取要素的屬性字段值;●SetValue(nIndex:Integer,varValue:Variant):Boolean—根據(jù)索引號設(shè)置字段值;●SetValue(cFieldName:CharacterString,varValue:Variant):Boolean—根據(jù)字段名設(shè)置字段值。矢量數(shù)據(jù)集中的一列為一個(gè)字段,字段信息定義了列中的數(shù)據(jù)的類型、長度、是否必填等信息。字段信息的對象UML圖見圖13。+name:CharacterString+foreignName:CharacterString+size:Integer+scale:Integer+precision:Integer+defaultValue:CharacterString+isAllowZeroLength:Boolean+isRequired:Boolean+updatable:Boolean+signID<<enum>>-UInt32+UInt64圖13字段信息對象UML圖字段信息對象的屬性如下:●foreignName:CharacterString—字段的外鍵名;●precision:Integer—字段的精度;●defaultValue:CharacterString—字段的默認(rèn)值;·isAllowZeroLength:Boolean—字段長度是否允許為零;●isRequired:Boolean—是否為必填字段;●updatable:Boolean字段標(biāo)記(GDBFieldSign)用于標(biāo)記字段在要素中的意義。其枚舉類型見表10。表10字段標(biāo)記列表字段標(biāo)記signNone普通字段signNodeID結(jié)點(diǎn)ID字段,主要用于標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)集的結(jié)點(diǎn)字段signFNode弧段起始結(jié)點(diǎn)ID字段,主要用于標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)集弧段的起始結(jié)點(diǎn)的ID字段signTNode弧段終止結(jié)點(diǎn)ID字段,主要用于標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)集弧段的終止結(jié)點(diǎn)的ID字段signEdgeID弧段ID字段,主要用于標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)集弧段的ID字段signRoutelD路由ID字段,主要用于標(biāo)記路由數(shù)據(jù)集的ID字段要素的ID字段signGeometry要素的Geometry字段字段類型(GDBFieldType)枚舉類型及其描述見表11。表11字段類型描述列表類型長度(字節(jié))取值范圍描述Boolean1布爾型Byte1單字節(jié)Charn定長字符串2[-32768,32767]短整型UInt162無符號短整型4[-2147483648,2147483647]整型UInt324[0,4294967295]無符號整型8長整型UInt648無符號長整型Float4[-3.4*10-38,3.4*1038]單精度浮點(diǎn)型Double8[-1.7*10~3081.7×10308]雙精度浮點(diǎn)型Textn變長字符串Date4日期型Time4 時(shí)間型TimeStamp8—日期時(shí)間型Binaryn固定長度二進(jìn)制型,需指定長度LongBinary—不定長二進(jìn)制類型6.10字段信息集合字段信息集合(GDBFieldInfos),多個(gè)字段信息的集合數(shù)組,可以獲取字段的個(gè)數(shù),也可以通過字段名稱或序號來獲取指定的字段信息。矢量數(shù)據(jù)集(GDBVectorDataset)獲取的字段信息集合為數(shù)據(jù)集中的所有字段列表,即表結(jié)構(gòu)。6.11柵格數(shù)據(jù)集柵格數(shù)據(jù)集用一個(gè)規(guī)則格網(wǎng)來描述與每一個(gè)格網(wǎng)單元位置相對應(yīng)的空間現(xiàn)象特征的位置和取值,每一個(gè)格網(wǎng)單元為一個(gè)像素。柵格數(shù)據(jù)集常用來存儲衛(wèi)星影像、數(shù)字高程模型(DEM)、格網(wǎng)數(shù)據(jù)(GRID)。柵格數(shù)據(jù)集對象的UML圖見圖14。+bandInfos:Set<GDBRasterBandinfo>+BuildPyramid():Boolean+DropPyramid():Boolean+IsBuildPyramid():Boolean+GetPixel(nCol:Integer,nRow:Integer):GDBPixel+SetPixel(pixel:GDBPixel):Boolean+GetColor(nCol:Integer,nRow:Integer):Integer+SetColor(nCol:Integer,nRow:Integer,nColor:Integer):void+GetValue(nCol:Integer,nRow:Integer):Double+SetValue(nCol:Integer,nRow:Integer,dValue:Double):oid+GetViewBlock(rcView:GDBGeometry,nDeviceWidth:Integer,nDeviceHeight:Integer):GDBRasterBlock+GetBandCount():Integer+SetBandIndex(nBandindex:Integer):oid+GetBandIndex():Integer+SetBandCombineMode(aryBand:Set<Integer-,nColorSpace:ImgColorSpace):oid+GetBandCombineMode(outaryBand:Set<Integer>,outnColorSpace:ImgColorSpace):Boolean+AddBand(rasterDataset:GDBRasterDataset,nBandIndex:Integer):Boolean+DeleteBand(nBandlndex:Integer):Boolean+LoadBlock(nRowBlock:Integer,nColBlock:Integer):GDBRasterBlock+SaveBlock(imgBlock:GDBRasterBlock):BooleanReleaseAllBlocks():void圖14柵格數(shù)據(jù)集對象UML圖柵格數(shù)據(jù)集對象的屬性如下:●width:Integer—寬度(像素?cái)?shù));各波段的波段信息集合。柵格數(shù)據(jù)集對象的方法如下:●BuildPyramid():Boolean—建立影像金字塔。●DropPyramid():Boolean—移除影像金字塔?!馡sBuildPyramid():Boolean—數(shù)據(jù)集是否已經(jīng)建立了金字塔。●GetPixel(nCol:Integer,nRow:Integer):GDBPixel—獲取指定位置的像素?!馭etPixel(pixel:GDBPixel):Boolean—設(shè)置像●GetColor(nCol:Integer,nRow:Integer):Integer—獲取像素的顏色值?!馭etColor(nCol:Integer,nRow:Integer,nColor:Integer):void—設(shè)置獲取像素的顏色值,針對●GetValue(nCol:Integer,nRow:Integer):Double—獲取像素的值?!馭etValue(nCol:Integer,nRow:Integer,dValue:Double):void—設(shè)置像素值,針對GRID數(shù)GetViewBlock(rcView:GDBGeometry,nDeviceWidth:Integer,nDeviceHeight:Integer):GD-BRasterBlock—獲取指定視口范圍的影像塊,主要用于數(shù)據(jù)顯示?!馭etBandIndex(nBandIndex:Integer):void—設(shè)置當(dāng)前操作波段的索引號。如果設(shè)置了當(dāng)前波段索引號,則對柵格數(shù)據(jù)集的操作作用于當(dāng)前波段;如果不設(shè)置當(dāng)前波段索引號,則是作用于所有波段;GetPixel、GetColor、GetValue方法應(yīng)先設(shè)置波段索引號。●GetBandIndex():Integer—獲取當(dāng)前波段索引號。返回-1表示未設(shè)置當(dāng)前的波段索引號。●SetBandCombineMode(aryBand:Set<Integer〉,nColorSpace:ImgColorSpace):void—設(shè)置合成顯示的波段和顏色模式。●GetBandCombineMode(outaryBand:Set〈Integer),outnColorSpace:ImgColorSpace):Boolean—獲取合成顯示的波段和顏色合成模式。●AddBand(rasterDataset:GDBRasterDataset,nBandIndex:Integer):Boolean—將柵格數(shù)據(jù)集rasterDataset的第nBandIndex個(gè)波段追加到當(dāng)前數(shù)據(jù)集中。●DeleteBand(nBandIndex:Integer):Boolean—?jiǎng)h除第nBandIndex個(gè)波段?!馤oadBlock(nRowBlock:Integer,nColBlock:Integer):GDBRasterBlock—獲取數(shù)據(jù)塊?!馭aveBlock(imgBlock:GDBRasterBlock):Boolean—保存數(shù)據(jù)塊?!馬eleaseAllBlocks():void—釋放所有數(shù)據(jù)塊。波段信息用于描述多

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論