999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Oracle Spatial三維模型存儲與可視化

2014-06-27 05:47:29王熙宇楊東興
測繪通報 2014年11期
關鍵詞:可視化測繪數據庫

韋 波,王熙宇,楊東興

(1.桂林理工大學廣西礦冶與環境科學實驗中心,廣西 桂林 541004;2.桂林理工大學測繪地理信息學院,廣西 桂林 541004)

Oracle Spatial三維模型存儲與可視化

韋 波1,2,王熙宇1,2,楊東興2

(1.桂林理工大學廣西礦冶與環境科學實驗中心,廣西 桂林 541004;2.桂林理工大學測繪地理信息學院,廣西 桂林 541004)

論述Oracle Spatial三維空間數據模型,以存儲表面的方式設計了三維模型的數據庫存儲方案,同時引入Hibernate對象持久化技術并自行設計開發了SDO_GEOMETRY映射類,結合Java 3D實現了三維模型的可視化。結果表明構建的存儲與可視化方案可行。

Oracle Spatial;三維空間數據存儲;可視化

一、引 言

Oracle Spatial作為對象-關系型數據庫的典型代表,一直是地理信息系統(GIS)研究與應用的主要對象之一。王云帆探討了Oracle Spatial的特點,并應用數據庫技術實現了空間數據管理與操作[1];盧廷軍等以Oracle Spatial為工具,建立了海量柵格數據的空間索引[2];Bianca等提出了Oracle Spatial 3D點云數據的四叉樹索引方法[3];馬奎等在.NET環境下,基于OO4O核心實現了對Oracle Spatial空間數據的互操作[4];鄔群勇等使用Oracle Spatial SDO_GEOMETRY抽象幾何數據類型存儲環境空間數據,實現了OLAP和GIS的完全集成[5];錢華明、戴建旺、高光大、馮興杰等分別應用Oracle Spatial建立了WebGIS車輛監控系統[6]、土地調查國家級數據庫[7]、鐵礦資源潛力數據庫[8]、航油公司EAM系統[9]。

雖然目前對Oracle Spatial的研究與應用取得了較多的成果,但主要集中于二維空間數據方面。Oracle從11g版本開始支持對三維空間數據的存儲與管理,因此,本文結合Hibernate對象持久化和Java 3D,討論Oracle Spatial的三維空間數據存儲與可視化技術。

二、Oracle Spatial三維空間數據模型

1.三維存儲模型

如圖1所示,表面、形體和組合類型是三維存儲模型中所特有的,在二維存儲模型中不支持。表面和構成形體的表面目前只能是三維平面,不能是三維曲面。組合類型不同于二維的復合線串、復合多邊形等復合類型[1],組合類型只能是表面、形體等同類型三維對象間的組合,復合類型在三維存儲模型中不支持。多邊形類型包括含洞的多邊形。集合可以是點、線、多邊形的集合,也可以是表面、形體的集合,包括由同類型對象構成的(同質)集合和由不同類型對象構成的(異質)集合。

圖1 Oracle Spatial三維存儲模型

2.SDO_GEOMETRY三維對象存儲

SDO_GEOMETRY在Oracle Spatial中被定義為一個對象類型,共包含5個屬性:

與二維版本相比,SDO_GEOMETRY及其5個屬性的定義形式均沒有發生變化,只是將它們擴展到三維的應用環境。

圖2中多邊形的SDO_GEOMETRY二維、三維空間存儲表示如下,可對比看出二者的明顯異同。

圖2 多邊形示例

三、三維模型存儲與可視化實例

圖3為Google Earth上的兩個建筑物三維模型,其中一個為教堂(右下角),而另一個為辦公大樓。

圖3 3D模型實例

1.總體框架

總體分為3層:數據庫層、持久化層、可視化層,如圖4所示。數據庫層使用Oracle Spatial存儲三維模型數據。持久化層通過對象-關系映射(object-relation mapping,ORM),處理面向對象和面向關系二者之間的映射,實現模型的面向對象操作,采用Hibernate技術實現。可視化層由Java 3D構建虛擬場景,完成三維模型的顯示。

引入Hibernate的原因在于當將空間對象從數據庫重新加載至內存時,由于Java、C++、C#等高級程序設計語言缺乏與SDO_GEOMETRY直接映射的數據類型,不能直接構建空間對象對應的類,進而不能直接實現面向對象的操作;而Hibernate則能夠方便而快速地建立持久化層和ORM[10],解決對象持久化問題,實現對空間對象的面向對象操作。

圖4 三維模型可視化總體框架

2.數據庫表設計與數據導入

從Google Earth位置工具欄可以看出,教堂模型共包括15個屋頂和48個墻面,而辦公大樓模型共包括14個屋頂和131個墻面。如果將模型整體存儲,會造成SDO_GEOMETRY的坐標數據太長,不方便模型的解析。因此采用分解策略,設計兩個數據庫表分別用于存儲模型的屋頂和墻面的表面數據。表1為屋頂的表結構,表2為墻面的表結構。

表1 屋頂表(BUILDING_ROOF_3D)結構

表2 墻面表(BUILDING_FACADE_3D)結構

由于三維模型數據量大,采用SDO_GEOMETRY構造函數導入數據的方法并不可行。本文首先利用Google Earth將兩個建筑物的墻面和屋頂的表面逐一轉換成KML文件,然后利用Oracle Spatial的FROM_KMLGEOMETRY函數編程將KML格式的三維數據導入到兩個數據庫表中。

3.三維模型Hibernate POJO

POJO(plain old java objects,簡單的Java對象),是Hibernate的一種持久化類。通常,一個持久化類和一個表對應,POJO的字段和屬性則分別與表的字段和記錄相對應。因此,需要創建兩個POJO:BuildingRoof3d和BuildingFacade3d類,分別與表BUILDING_ROOF_3D和BUILDING_FACADE_3D相對應。

以表BUILDING_ROOF_3D為例,根據其表結構(限于篇幅,以字段ROOF_ID、GEOM為例,下同),創建的BuildingRoof3d類為:

4.Hibernate POJO ORM文件

將Oracle表數據類型映射為Java數據類型,如NUMBER映射為Long,需要建立它們之間的映射關系。Hibernate的ORM文件為一個XML文件,一個POJO對應一個ORM文件。BuildingRoof3d類的ORM文件(BuildingRoof3d.hbm.xml)為:

5.SDO_GEOMETRY映射類

Hibernate POJO和ORM文件都使用了一個J3D_ GeometryType類作為SDO_GEOMETRY的映射類型,J3D_GeometryType類并不是Java定義的,而需要自行設計和開發。本文基于Oracle Spatial提供的JGeometry和J3D_Geometry類,實現了該類,創建的主要步驟如下。

(1)定義Hibernate方言類

該方言類為Hibernate Oracle10gDialect方言類的子類,在其構造函數中注冊SDO_GEOMETRY為

(2)定義Java映射類

即J3D_GeometryType類。Hibernate提供了UserType接口用于用戶實現自定義的Java映射類。自定義的Java映射類包含一個Oracle Spatial J3D_ Geometry類實例,并且還必須實現UserType接口中的11個方法。其中的nullSafeGet()方法、nullSafe-Set()方法實現的關鍵語句如下:

nullSafeGet()方法負責從SDO_GEOMETRY讀取數據存儲到J3D_Geometry實例中,nullSafeSet()方法則負責將J3D_Geometry實例存儲到SDO_GEOMETRY中,具體實現借助了Oracle Spatial JGeometry類實例作為SDO_GEOMETRY和J3D_Geometry實例數據轉換的中間對象。

6.模型Java 3D可視化

可視化大致分兩步:首先從數據庫中獲取三維模型的數據,然后生成模型的Java 3D對象。

獲取三維模型數據,以面向對象的方式進行。如獲取紋理、坐標的程序為(event為BuildingRoof3d或BuildingFacade3d類對象):

坐標獲取后需要先利用SDO_GEOMETRY的SDO_ELEM_INFO屬性對其進行解析,然后將其傳遞給Java 3D。

構建Java 3D對象,即創建三維形體Shape3D對象,包括定義它的幾何信息和外觀。幾何信息使用GeometryInfo類設置,外觀主要是設置紋理貼圖,使用Appearance類實現。Shape3D對象創建后,將其加入到Java 3D的TransformGroup節點中。

圖5為可視化后的效果圖,與圖3模型三維效果一致,表明構建的存儲與可視化方案可行。

圖5 Java 3D模型可視化效果

四、結束語

Oracle Spatial通過增加對表面、形體等三維空間對象類型的支持,從對二維空間數據的存儲擴展到對三維空間數據的存儲。本文通過存儲兩個三維模型表面的方式設計和實踐了Oracle Spatial的三維存儲;同時引入Hibernate對象持久化技術,結合Java 3D實現了三維模型的可視化,結果表明構建的存儲與可視化方案可行。通過自行設計開發的SDO_ GEOMETRY映射類,實現了對包含SDO_GEOMETRY數據類型字段的Oracle數據庫表的對象-關系映射,解決了其建立對應Hibernate POJO的問題,從而實現了對數據庫中三維模型的面向對象操作,也為實現對Oracle Spatial中二維或三維空間對象的面向對象操作(加載、保存、更新、刪除、查詢等)提供了一種可行的思路。

[1] 王云帆.Oracle Spatial空間數據存儲管理技術的應用研究[J].測繪通報,2011(6):76-79.

[2] 盧廷軍,黃明.海量柵格數據空間索引與存儲的研究[J].測繪通報,2010(10):24-26.

[3] BIANCA S,MO HAMMAD M,DEBRA F L,et al.Octree-based Indexing for 3D Pointclouds within an Oracle Spatial DBMS[J].Computers&Geosciences,2013(51):430-438.

[4] 馬奎,李宏偉,李勤超,等..NET下基于OO4O核心的Oracle Spatial空間數據互操作[J].計算機應用,2009,29(S1):205-208.

[5] 鄔群勇,劉夢鑫,李細杰,等.面向環境數據集的Spatial OLAP系統集成[J].地球信息科學學報,2013,15(1):90-96.

[6] 錢華明,施麗娟,王雯升.WebGIS車輛監控系統的空間數據存儲技術研究[J].計算機工程與科學,2009,31(4):124-129.

[7] 戴建旺,白曉飛.第二次全國土地調查國家級數據庫管理系統關鍵技術研究[J].中國土地科學,2010,24(6):74-80.

[8] 高光大,王永志,張道勇,等.基于GIS和SOA的我國鐵礦資源潛力數據庫開發與應用[J].吉林大學學報:地球科學版,2010,40(6):1515-1520.

[9] 馮興杰,許亞娟,王輝.基于Oracle Spatial技術的地理信息管理與優化[J].計算機工程與設計,2011,32(5):1706-1709.

[10] 王海濤,賈宗璞.基于Struts和Hibernate的Web應用開發[J].計算機工程,2011,37(9):112-114.

《數字測圖原理與技術》(第二版)內容簡介

本書由楊曉明等編著,系統地介紹了數字測圖的理論、技術和方法。其主要內容包括:數字測圖概論、數字測圖的數學基礎、硬件設備、圖根控制測量、野外數據采集、計算機繪圖原理、數字測圖內業、地圖數字化、數字測圖質量控制、數字測圖成果的應用、數字地籍測繪、數字地下管線圖測繪等。

本書為高等學校測繪工程、GIS及相關專業的教材,亦可供相關技術人員學習參考。

本書為16開本,240頁,定價34.00元。測繪出版社2014年10月出版。

Storage and Visualization of 3D Model in Oracle Spatial

WEI Bo,WANG Xiyu,YANG Dongxing

P208

B

0494-0911(2014)11-0088-04

2013-11-18

廣西自然科學基金(2012GXNSFGA060001;桂科自0991248);桂林理工大學博士基金(GUT1996015)

韋 波(1974—),男,瑤族,廣西荔浦人,博士,副教授,主要研究方向為空間信息處理理論與方法。

韋波,王熙宇,楊東興.Oracle Spatial三維模型存儲與可視化[J].測繪通報,2014(11):88-91.

10.13474/j.cnki.11-2246.2014.0371

猜你喜歡
可視化測繪數據庫
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
浙江省第一測繪院
工程測繪中GNSS測繪技術的應用
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
04 無人機測繪應用創新受青睞
無人機在地形測繪中的應用
電子制作(2017年9期)2017-04-17 03:01:00
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
主站蜘蛛池模板: 亚洲视频在线网| 国产伦精品一区二区三区视频优播| 97在线免费| 国产小视频网站| 亚洲成aⅴ人片在线影院八| 丰满人妻一区二区三区视频| 91午夜福利在线观看精品| 波多野结衣第一页| 国产成人精品免费av| 97se综合| 亚洲天堂精品视频| 三上悠亚精品二区在线观看| 国产午夜人做人免费视频中文 | 国内精品久久久久久久久久影视| www中文字幕在线观看| 国产高清色视频免费看的网址| 国产亚洲精品91| 亚洲欧美综合精品久久成人网| 国产一二三区在线| 欧美午夜在线播放| 国产成人做受免费视频| 欧美午夜视频在线| 亚洲午夜天堂| 国内精自线i品一区202| 国产在线第二页| 亚洲综合欧美在线一区在线播放| 亚洲无码高清一区二区| 欧美日韩在线成人| 91探花在线观看国产最新| 国产成人无码AV在线播放动漫| 中文字幕第1页在线播| 日韩精品毛片人妻AV不卡| 国产欧美在线观看一区| 成年人免费国产视频| 久久精品视频一| 无码日韩精品91超碰| 一级毛片免费播放视频| 日本道综合一本久久久88| 亚洲国产精品无码久久一线| 天天躁夜夜躁狠狠躁图片| 99视频精品全国免费品| 国产毛片久久国产| 亚洲日本中文字幕天堂网| 国产精品所毛片视频| 国产精品视频久| 国产精品尤物铁牛tv | 欧美国产菊爆免费观看| 亚洲成人播放| 国产高清在线丝袜精品一区| 亚洲成人一区二区| 亚洲综合久久一本伊一区| 91福利一区二区三区| 国产日韩精品一区在线不卡| 日韩av无码精品专区| 日韩免费毛片视频| 免费国产小视频在线观看| 久久亚洲天堂| 亚洲国产成人精品无码区性色| 综合人妻久久一区二区精品 | 99999久久久久久亚洲| 国产亚洲精品97在线观看| 性网站在线观看| 91精品国产一区自在线拍| 亚洲一级色| 日韩亚洲高清一区二区| 国产91在线|日本| 97视频在线观看免费视频| 久久黄色一级视频| 久久鸭综合久久国产| 欧美在线视频a| 真人高潮娇喘嗯啊在线观看| 巨熟乳波霸若妻中文观看免费| 五月天福利视频| 精品无码日韩国产不卡av| 精品国产自在在线在线观看| 色综合激情网| 福利姬国产精品一区在线| 欧美在线一级片| 又爽又大又光又色的午夜视频| 99久久性生片| 天堂在线视频精品| 久久精品无码国产一区二区三区|