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
主站蜘蛛池模板: 国产一级一级毛片永久| 久久国产精品嫖妓| 国产91视频免费观看| 亚洲AV成人一区二区三区AV| 欧美精品另类| 日韩精品无码不卡无码| 亚洲天堂日韩av电影| 亚洲欧美成aⅴ人在线观看| 国产手机在线ΑⅤ片无码观看| 亚洲第一区欧美国产综合| 亚洲 日韩 激情 无码 中出| 97久久超碰极品视觉盛宴| AV在线天堂进入| 啊嗯不日本网站| 伊人福利视频| 国产传媒一区二区三区四区五区| 日韩麻豆小视频| 国产欧美视频综合二区| 无码国内精品人妻少妇蜜桃视频| 日本在线国产| 黄色免费在线网址| 中文字幕亚洲精品2页| 亚洲成人精品久久| 伊人激情综合| 欧美a网站| 亚洲中文字幕久久无码精品A| 一级黄色欧美| 99久久精品免费看国产免费软件 | 777国产精品永久免费观看| 色成人综合| 中文字幕在线看视频一区二区三区| 亚洲精品高清视频| 欧美激情伊人| 亚洲精品制服丝袜二区| 动漫精品啪啪一区二区三区| 72种姿势欧美久久久大黄蕉| 国产成人1024精品下载| 午夜毛片免费看| 欧美有码在线| 欧美午夜在线播放| 国产91视频免费观看| 亚洲第一色网站| 亚洲欧美日韩天堂| 亚洲国模精品一区| 国产男人的天堂| 中国国产高清免费AV片| 无码福利视频| 最近最新中文字幕免费的一页| 亚洲成aⅴ人在线观看| 欧美第二区| 国产欧美另类| 国产人成在线观看| 国产成人精品一区二区秒拍1o| 国产另类视频| 亚洲欧美日韩中文字幕在线| 欧美午夜视频| 亚洲无码视频一区二区三区 | 欧美精品v欧洲精品| 9丨情侣偷在线精品国产| 婷婷综合缴情亚洲五月伊| 中文字幕精品一区二区三区视频 | 久久国产乱子| 欧美午夜理伦三级在线观看| 午夜毛片福利| 在线观看免费黄色网址| 波多野吉衣一区二区三区av| 东京热av无码电影一区二区| 中文字幕永久在线看| 欧美日韩午夜| 高潮毛片免费观看| 在线观看国产精美视频| 国产成人啪视频一区二区三区 | 专干老肥熟女视频网站| 国产原创演绎剧情有字幕的| 人妻无码一区二区视频| 久久伊人操| 日韩av电影一区二区三区四区| 中文字幕无码中文字幕有码在线| 久久动漫精品| 91视频精品| 波多野结衣无码AV在线| 毛片a级毛片免费观看免下载|