SuperMap的基本概念主要包括數(shù)據(jù)和地圖的概念,下面將介紹這兩個(gè)概念。
有關(guān)數(shù)據(jù)方面的概念??工作空間
工作空間是用戶的工作環(huán)境,主要完成對(duì)數(shù)據(jù)的組織和管理,包括打開(kāi)、關(guān)閉、創(chuàng)建和保存工作區(qū)文件。構(gòu)建工作空間的目的是為了使管理更容易,結(jié)構(gòu)更清晰。
工作空間存儲(chǔ)了一個(gè)項(xiàng)目中所有數(shù)據(jù)源和地圖的組織關(guān)系(同一事務(wù)過(guò)程),工作空間通過(guò)其中的數(shù)據(jù)源集合和地圖集合對(duì)其下的數(shù)據(jù)源和地圖進(jìn)行管理。其中:
數(shù)據(jù)源集合:對(duì)數(shù)據(jù)源進(jìn)行管理,其中存儲(chǔ)了每個(gè)數(shù)據(jù)源的邏輯連接信息,實(shí)際數(shù)據(jù)源存儲(chǔ)在數(shù)據(jù)庫(kù)或UDB中。實(shí)際的數(shù)據(jù)源存儲(chǔ)在數(shù)據(jù)庫(kù)或UDB中。數(shù)據(jù)源只有在建立連接時(shí)才可用。數(shù)據(jù)源集合可以管理多種類(lèi)型的數(shù)據(jù)源,實(shí)現(xiàn)對(duì)多種類(lèi)型和來(lái)源的數(shù)據(jù)源的無(wú)縫管理。
地圖集合:存儲(chǔ)的是地圖的一些配置信息,如地圖包含的層數(shù)、層所引用的數(shù)據(jù)集、背景風(fēng)格等。只有當(dāng)前工作區(qū)所包含的地圖的名稱(chēng)可以通過(guò)這個(gè)類(lèi)來(lái)訪問(wèn)。
在當(dāng)前版本中,允許多個(gè)工作空間共存于一個(gè)應(yīng)用程序中,每個(gè)工作空間可以管理自己的數(shù)據(jù)源、地圖等集合,但值得注意的是,不同的工作空間是不能互通的。多個(gè)工作空間共存的優(yōu)點(diǎn)主要有以下幾點(diǎn):
為用戶對(duì)工作空間的動(dòng)態(tài)訪問(wèn)提供了有利的保障和基礎(chǔ),即對(duì)工作空間的動(dòng)態(tài)訪問(wèn)和動(dòng)態(tài)數(shù)據(jù)分布。
為安全控制提供了有效保障,即不同權(quán)限和級(jí)別的用戶可以訪問(wèn)不同的工作空間,不會(huì)出現(xiàn)意外的誤操作等。
數(shù)據(jù)源集合
數(shù)據(jù)源集合管理數(shù)據(jù)源,包括創(chuàng)建、打開(kāi)和關(guān)閉數(shù)據(jù)源的功能。可以同時(shí)管理多種類(lèi)型的數(shù)據(jù)源(UDB、Oracle、SQL),實(shí)現(xiàn)數(shù)據(jù)源的無(wú)縫管理。
在當(dāng)前版本中,數(shù)據(jù)源集合支持多線程訪問(wèn)。
一個(gè)工作空間中的所有數(shù)據(jù)源都由數(shù)據(jù)源集合管理。當(dāng)創(chuàng)建一個(gè)數(shù)據(jù)源時(shí),需要注意數(shù)據(jù)源的類(lèi)型和相應(yīng)的數(shù)據(jù)引擎。
數(shù)據(jù)源
數(shù)據(jù)源是存儲(chǔ)空間數(shù)據(jù)的場(chǎng)所。所有的空間數(shù)據(jù)都是存儲(chǔ)于數(shù)據(jù)源而不是工作空間,任何對(duì)空間數(shù)據(jù)的操作都需要打開(kāi)或獲取數(shù)據(jù)源,數(shù)據(jù)源可以管理數(shù)據(jù)源與文件或數(shù)據(jù)庫(kù)的連接、數(shù)據(jù)源的投影、數(shù)據(jù)源的事務(wù)、長(zhǎng)事務(wù)、事務(wù)回滾和事務(wù)的版本等信息。
一個(gè)數(shù)據(jù)源對(duì)應(yīng)著一種數(shù)據(jù)引擎。SuperMap 產(chǎn)品中提供了多種數(shù)據(jù)源類(lèi)型,其中包括文件型數(shù)據(jù)源和數(shù)據(jù)庫(kù)型數(shù)據(jù)源。UDB 數(shù)據(jù)源屬于文件型數(shù)據(jù)源,Oracle 和 SQL 數(shù)據(jù)源屬于數(shù)據(jù)庫(kù)型數(shù)據(jù)源。
數(shù)據(jù)源只是定義了一致的數(shù)據(jù)訪問(wèn)接口和規(guī)范,并沒(méi)有定義數(shù)據(jù)源的存儲(chǔ)細(xì)節(jié)。數(shù)據(jù)源的物理存儲(chǔ)既可以是文件方式的,也可以是數(shù)據(jù)庫(kù)方式的,區(qū)別不同的存儲(chǔ)方式主要在于采用的數(shù)據(jù)引擎類(lèi)型,采用 UDB 引擎時(shí),數(shù)據(jù)源就以文件方式存儲(chǔ)(*.udb,*.udd),而采用空間數(shù)據(jù)庫(kù)引擎時(shí),數(shù)據(jù)源被存儲(chǔ)到指定的 DBMS 中。
特性
SuperMap 提供兩種數(shù)據(jù)源與數(shù)據(jù)庫(kù)之間的連接方式:手動(dòng)連接、自動(dòng)連接。如果用戶選擇自動(dòng)連接,在打開(kāi)工作空間時(shí),數(shù)據(jù)源會(huì)自動(dòng)連接數(shù)據(jù)庫(kù)中的數(shù)據(jù),但是此時(shí)存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)集是處于關(guān)閉狀態(tài)的,用戶需要打開(kāi)數(shù)據(jù)集才可以對(duì)數(shù)據(jù)集內(nèi)的數(shù)據(jù)進(jìn)行修改等操作(用戶可以通過(guò) Dataset 類(lèi)中提供的 open 方法打開(kāi)數(shù)據(jù)集);如果用戶不選擇自動(dòng)連接,則需要進(jìn)行手動(dòng)連接。
有關(guān)地圖方面的概念地圖
地圖(Map)是由一個(gè)或多個(gè)圖層疊加而成,而圖層是對(duì)數(shù)據(jù)集的引用,是采用設(shè)定的風(fēng)格對(duì)數(shù)據(jù)集的顯示,因而,一個(gè)或者多個(gè)數(shù)據(jù)集被賦予一定的顯示風(fēng)格而顯示在一個(gè) SuperMap 地圖窗口中,就成為地圖。地圖中定義了各圖層的名稱(chēng)、顯示風(fēng)格、視野范圍、圖層狀態(tài)和圖層順序等信息,保存地圖時(shí)這些信息都將一起保存下來(lái)。
地圖集合
地圖存儲(chǔ)在工作空間文件中,一個(gè)工作空間中的所有地圖的集合稱(chēng)為一個(gè)地圖集合(Maps)。一個(gè)工作空間中存在一個(gè)地圖集合,在該工作空間中創(chuàng)建的,引用該工作空間中的數(shù)據(jù)的地圖都由此地圖集合來(lái)管理。
地圖窗口
地圖窗口是用來(lái)顯示地圖的一個(gè)窗口,一個(gè)地圖可以在一個(gè)地圖窗口中打開(kāi),多個(gè)圖層可以在地圖窗口中疊加,并保存成地圖。在一個(gè)地圖窗口中,不管其中顯示一個(gè)圖層,還是多個(gè)圖層,其都稱(chēng)為地圖。地圖窗口是提供地圖的臨時(shí)顯示的區(qū)域,并不保存地圖,當(dāng)?shù)貓D窗口關(guān)閉,其中的地圖也就不存在了;但如果將地圖保存到工作空間中,則可以在任何時(shí)候用地圖窗口來(lái)打開(kāi)它。
地圖中的數(shù)據(jù)集來(lái)源于各數(shù)據(jù)源。在制作地圖并保存后,如將對(duì)應(yīng)的數(shù)據(jù)源刪除,則相應(yīng)的地圖也就不存在了,所以,當(dāng)打開(kāi)工作空間中的地圖時(shí),將會(huì)出錯(cuò)或出現(xiàn)沒(méi)有數(shù)據(jù)的情況。此外,在制作地圖后,如對(duì)相應(yīng)數(shù)據(jù)集中的對(duì)象進(jìn)行了編輯修改,則地圖刷新后也會(huì)相應(yīng)更新。因此,地圖的概念類(lèi)似于關(guān)系數(shù)據(jù)庫(kù)中視圖的概念,地圖中并沒(méi)有存儲(chǔ)數(shù)據(jù)集。地圖并不包含數(shù)據(jù)本身的內(nèi)容,只是一種可視化定義,是工作空間的一部分。要保存地圖,還需要保存工作空間。?