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

基于CityMaker SDK的3D GIS開發方法

2011-04-18 06:53:36劉娟
城市勘測 2011年5期
關鍵詞:方法模型

劉娟

(哈爾濱市勘察測繪研究院,黑龍江哈爾濱 150010)

基于CityMaker SDK的3D GIS開發方法

劉娟?

(哈爾濱市勘察測繪研究院,黑龍江哈爾濱 150010)

CityMaker是一款優秀的國產3D GIS平臺軟件。本文介紹了其4個主要產品類型,分析了CityMaker平臺的三維數據組織以及二次開發接口,提出了基于CityMaker SDK的3D GIS開發的4個步驟:初始化三維地球控件、加載三維場景數據獲取三維場景實體處理業務邏輯。并詳細介紹了以此為基礎開發的一個三維地下管線系統實例,為3D GIS的開發提供了可行的解決方案。

CityMaker SDK;3D GIS;三維場景;系統開發;地下管線

1 引 言

三維數字城市建設近幾年來在我國方興未艾,各大中型城市都基于三維可視化技術建設了自己的三維虛擬城市和系統。從應用成果來看,大部分三維虛擬城市系統建設偏重于場景建模,即城市三維數據采集、模型生產和場景搭建,而對場景驅動,即基于三維場景的業務系統開發和應用則關注不多,在一定程度上影響了三維數字城市建設水平和應用效果。本文以CityMaker三維平臺為例,分析了該平臺的三維數據組織以及二次開發接口,并詳細介紹了以此為基礎開發的一個三維地下管線系統,為3D GIS的開發提供了可行的解決方案。

2 CityMaker產品體系

CityMaker系列產品是北京偉景行數字城市科技有限公司研發的,擁有完全自主知識版權,且核心技術處于國際領先水平的3D GIS平臺軟件。CityMaker系列軟件致力于全空間的、逼真、完美的虛擬三維可視化,將二維信息融入三維場景中,并將傳統的二維分析運算擴展成三維分析運算,實現可視化、分析功能的二三維一體化。

CityMaker系列產品覆蓋了三維數據生產、管理、應用開發整個過程,具體包括城市級海量3D GIS數據生產與維護平臺CityMaker Builder、企業級的3D GIS服務聚合與發布平臺CityMaker Server、通用的3D GIS應用平臺CityMaker Explore以及3D GIS二次開發組件庫CityMaker SDK。

3 CityMaker SDK開發方法

3.1 三維場景數據內容

CityMaker平臺中,構成三維場景的數據內容主要包括如下幾個部分:

(1)三維模型數據

三維模型數據用以表達現實世界中的離散分布的三維實體,是構成三維場景的最重要組成部分。在City-Maker中,三維模型數據采用面片模型表達三維實體,即用不同形狀的面片近似表示三維實體的表面,優點是便于顯示和更新。三維模型數據可從外部文件導入,如?.3ds,?.osg等,也可以在CityMaker Builder中創建。

三維模型數據在邏輯上是以場景組的形式組織的,即將同一種類別的三維模型組織在一個圖層中,將相似類別圖層再組織成場景組,多個場景組還可以組成一個大的場景組。呈現一個樹型的組織方式。

三維模型組成的場景以本地文件的形式保存(?.scd、?.sdb),也可以發布到服務器形成數據服務。

(2)矢量數據

CityMaker支持本地矢量數據的加載(如Shapefile數據)、CityMaker定義的矢量數據服務(CityMaker Data Server)的加載、空間數據庫加載(如ArcSDE Database)以及符合OGC規范的數據服務(如WFS)。這些數據能夠直接被平臺識別和解析、并能加載到三維場景中。

(3)地形數據

地形數據可由平臺提供的CityMaker TerrainPush工具,可以將影像(DOM)及高程(DEM)數據發布成文件數據(?.ted),或者發布到MySQL、Oracle數據庫中,形成平臺能夠讀取的地形數據。

3.2 組件庫介紹

CityMaker SDK是采用組件技術封裝的二次開發接口,提供COM控件、JS類庫兩種版本,支持VB、VC++、Microsoft Visual Studio以及Delphi等開發環境。組件庫中提供的所有功能都封裝為接口,這些接口可以劃分為兩類:

(1)IObject Interface

該類接口繼承于IObject的各個接口。這些接口無法直接實例化,只能通過IObjectManager的CreateXXX()方法返回得到,具體可以劃分為4個層次,如圖1所示。

圖1 接口層次圖

IObject Interface類型的接口是二次開發接口中最核心的部分,它們是三維場景中各個可視對象的抽象表達。通過這些接口,我們可以獲取和設置三維場景中的對象,實現三維場景操作。

(2)CoClass Interface

該類接口主要封裝了三維地球控件操作、服務注冊、幾何形體創建、三維分析等接口,輔助三維程序開發。

3.3 開發方法

基于CityMaker SDK的3D GIS開發方法一般遵循以下4步:

(1)初始化三維地球控件

初始化三維地球控件的目的是為了讓客戶端具有使用權限,且能夠調用控件提供的接口。初始化三維地球控件的方法是使用IConfig接口的Initialize方法,示例代碼如下:

(2)加載三維場景數據

三維場景數據為3.1節介紹的3種類型的數據。加載三維場景數據到三維地球控件主要有兩種方法。

第一種方法是加載工程文件(?.cep)。該文件實際上是一個配置文件,記錄了一個三維場景中的加載的各種三維場景數據層及屬性、特定場景、動畫導航等。加載工程文件的方法是使用IConfig接口的Load方法,示例代碼如下:

_dct3DWindow.config.Load(fileName,psd,asynchronous);

其中Load方法的第1個參數fileName表示工程文件的路徑,第2個參數psd表示工程文件的密碼,第3個參數asynchronous表示是否異步加載。

第二種方法是直接加載3.1節中的各種數據層。

①加載三維模型圖層

加載三維模型圖層的方法是使用IInfomationTree接口的CreateSceneLayer方法,可以從服務器上加載發布的三維模型圖層數據服務,也可以從本地加載場景大文件。目前支持的場景圖層數據格式為?.scd、?. sdb,示例代碼如下:

參數sceneLayerName表示自定義的圖層名稱。參數password表示圖層密碼。參數layerInfo表示圖層數據源。參數parentGroupID表示組容器ID,也即要創建到哪個組下面。

當加載成功后,三維地球控件會自動繪制該圖層中的數據,并返回一個ISceneLayer類型的對象,通過該對象的屬性和方法,可以獲取三維模型圖層的內部組織結構。

②加載矢量圖層

加載矢量圖層的方法是使用IInfomationTree接口的CreateFeatureLayer方法,可以從服務器上加載發布的矢量圖層數據服務,也可以從本地加載Shapefile文件,示例代碼如下:

參數featureLayerName表示自定義的圖層名稱。參數password表示圖層密碼。參數layerInfo表示圖層數據源。參數parentGroupID表示組容器ID,也即要創建到哪個組下面。

當加載成功后,三維地球控件會自動繪制該圖層中的數據,并返回一個IFeatureLayer類型的對象,通過該對象的屬性和方法,可以獲取和設置矢量圖層的屬性。

③加載地形圖層

加載矢量圖層的方法是使用IConfig接口的Load方法,可以從服務器上加載發布的地形數據服務,也可以從本地加載地形文件(?.ted),示例代碼如下:

參數terrainInfo表示地形圖層數據源,如果加載的是服務器數據服務,該參數形如@"hrb@192.168.2. 53",其中hrb表示數據服務名稱,192.168.2.53是服務器地址。如果加載的是本地地形文件,該參數形如@" F:\樣例數據\地形數據\hrb.ted"。參數asyn表示是否采用異步加載。

當加載成功后,三維地球控件會自動繪制該圖層中的數據。可以通過ITerrain接口對地形數據進行操作。

(3)三維場景實體獲取

根據業務邏輯,獲取三維場景中的實體,是3D GIS中的核心,如通過鼠標在三維場景中拾取地物,通過屬性在三維場景中定位指定的地物等。在CityMaker SDK中,通過鼠標在三維場景中拾取地物的方法是使用IRender接口的ScreenToWorld方法,示例代碼如下:

該方法中,前2個參數x、y表示屏幕坐標,也就是鼠標點擊處的坐標。參數infoTree.rootId表示參與拾取的群組,也即從場景樹的哪個層次來遍歷三維實體,一般是從根節點處。參數type表示參與拾取的對象類型,這是一個枚舉值。

參數dx、dy、dz表示拾取到地物時,鼠標點擊位置的東西向坐標、南北向坐標以及高度值。參數object-GUID表示拾取到的地物的唯一ID值。以這個ID值為參數,通過IObjectManager接口的GetObject方法,可以獲取這個地物的實例對象IObject。通過接口查詢,可以獲取這個對象的具體類型,如拾取的對象是三維實體,則通過IEntity ent=obj as IEntity語句,將IObject類型的對象轉換為IEntity類型的對象,并通過IEntity接口的屬性獲取該三維實體的詳細信息。

如果知道了某個三維場景中地物的ID值,則無需鼠標拾取,直接使用IObjectManager接口的GetObject方法獲取對象。

(4)業務邏輯處理

當獲取了三維場景實體后,以這些三維場景實體為對象,根據我們的系統需求,進行相應的業務邏輯處理。如進行信息查詢、統計,空間分析等。業務邏輯處理可以借助SDK中提供的相關接口,如使用IVisualAnalysis接口進行可視化分析,也可以自己編寫代碼處理。

4 開發實例

借助CityMaker SDK,筆者開發了三維地下管線系統。該系統以三維城市地上景觀模型為背景,疊加三維地下管線專題數據,面向管線行業管理,開發了相應的管理和分析功能,輔助管線管理部門的日常管理。該系統的功能結構圖如圖2所示。

圖2 功能結構圖

系統運行效果圖如圖3所示。

圖3 系統運行效果圖

5 結 語

3D GIS是GIS發展的一個趨勢,利用CityMaker SDK能夠快速構建三維可視化系統。但是,利用City-Maker SDK開發3D GIS仍然會遇到一些問題,如開發包封裝程度較高,無法從較低層次進行開發,空間分析功能較弱,對三維實體的屬性支持不夠等。這些問題的解決,一方面期待于CityMaker SDK的不斷完善,另一方面,也需要開發人員在系統開發過程中靈活解決。

[1] 劉剛,吳沖龍;,何珍文等.地上下一體化的三維空間數據庫模型設計與應用[J].地球科學(中國地質大學學報),2011,36(2)

[2] 王海鷹,張新長,康停軍等.基于CA模型的三維虛擬城市構建方法研究[J].測繪學報,2010(6)

[3] 馮琰,郭容寰,汪旻琦.三維城市模型數據組織與管理方法研究[J].測繪科學,2011(1)

[4] 周松濤.基于關系數據庫的三維模型庫技術[J].測繪信息與工程,2005,30(6)

[5] 張明,蘇中球.基于City Maker的城市三維建模技術的研究[J].城市勘測,2010(4)

[6] 杜連艷,張瓊,金明一.三維仿真城市的建設方法[J].測繪與空間地理信息,2011(1)

[7] 韓聰,荊玉平,劉建國.雕塑公園三維管理系統設計與實現[J].城市勘測,2010(5)

The Method of Developing 3D GIS Based on CityMaker SDK

Liu Juan
(Harbin Institute of Geotechnical Investigation and Surveying,Harbin 150010,China)

CityMaker is a excellent 3D GIS Homemade Software.This paper introduces four kinds of the product,analyzes the organization of 3D data and SDK in CityMaker platform.It presents four steps to develop 3D GIS based on CityMaker SDK,which are initializing 3D earth control,loading 3D data,getting 3D entity and processing service logic. Then,it gives the detailed account of the 3D pipeline System,which provides a doable solution for developing 3D GIS.

CityMaker SDK;3D GIS;3D Scene;sytem development;underground pipeline

2011—05—17

劉娟(1976—),女,工程師,主要從事空間數據庫建設、地理信息系統應用工作。

1672-8262(2011)05-55-03

P208.2

B

猜你喜歡
方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
學習方法
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 亚洲成aⅴ人在线观看| 99久久精品国产精品亚洲| 九九九久久国产精品| 99精品在线看| 国产永久在线视频| 亚洲欧美不卡中文字幕| 四虎永久在线| 日本a级免费| 26uuu国产精品视频| 免费a级毛片18以上观看精品| 免费无码在线观看| 色成人综合| 九九这里只有精品视频| 精品欧美日韩国产日漫一区不卡| 在线一级毛片| a网站在线观看| 亚洲综合一区国产精品| 中文无码伦av中文字幕| 欧美精品伊人久久| 亚洲资源站av无码网址| 国产一二三区在线| 国产免费a级片| 综合久久五月天| 日本亚洲国产一区二区三区| 91香蕉国产亚洲一二三区| 亚洲Av激情网五月天| 亚洲视频影院| 精品国产www| 亚洲AV电影不卡在线观看| 亚洲天堂日本| 日韩午夜伦| 国产va免费精品观看| 九九热精品视频在线| 免费高清毛片| 欧美日韩激情在线| 日韩一区二区三免费高清| 亚洲福利视频一区二区| 国产精品三级专区| 无码福利日韩神码福利片| 福利在线不卡| 亚洲男人在线| 欧美一级专区免费大片| 欧美日本不卡| 精品国产自| 亚洲精品国产综合99| 日本欧美成人免费| 亚洲日韩精品伊甸| 在线另类稀缺国产呦| 久久一级电影| 亚洲毛片一级带毛片基地| 在线观看视频一区二区| 日韩成人午夜| 国产在线精彩视频二区| 国产在线97| 久久精品国产电影| 亚洲一区波多野结衣二区三区| 伊人激情综合| 真实国产乱子伦高清| 日本a∨在线观看| 精品人妻无码中字系列| 2021国产乱人伦在线播放| 国产在线视频二区| 欧美精品成人| 国产SUV精品一区二区6| 波多野吉衣一区二区三区av| 欧美中文一区| 91福利免费视频| 欧美日韩中文国产va另类| 亚洲综合精品第一页| 亚洲精品桃花岛av在线| 456亚洲人成高清在线| 亚洲最大看欧美片网站地址| 久久免费视频6| 亚洲—日韩aV在线| 亚洲美女操| 91精品免费高清在线| www.亚洲一区| 热思思久久免费视频| 欧洲在线免费视频| 日韩亚洲综合在线| 亚洲天堂色色人体| 国产91色|