国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SuperMap三維場景的WebGIS開發(fā)與設(shè)計

2015-05-30 11:23:26禮晟東趙鵬飛何鳳良
科技創(chuàng)新與應(yīng)用 2015年28期

禮晟東 趙鵬飛 何鳳良

摘 要:文章主要闡述了基于SuperMap平臺,借助HTML5、JavaScript等編程語言,構(gòu)建三維場景地理信息服務(wù)網(wǎng)站的關(guān)鍵技術(shù)與實現(xiàn)方法。為進一步提升用戶體驗與需求,在此基礎(chǔ)上,結(jié)合WebGIS開發(fā)特點,文章還探討了多角度、多時相表達地理信息的解決方案和思路。

關(guān)鍵詞:三維場景;SuperMap;Web GIS

引言

隨著GIS的深入應(yīng)用,越來越多的人們要求利用真三維空間來處理問題。對于客觀世界,三維GIS具備二維GIS無法比擬的表現(xiàn)形式,對于地理信息的深層次分析和挖掘,三維GIS也有著不可替代的作用。目前,在圖像圖形處理、三維可視化等相關(guān)技術(shù)發(fā)展的多重推動下,三維GIS不斷發(fā)展,在國土、地質(zhì)、石油等多個領(lǐng)域扮演著越來越重要的角色。同時,在網(wǎng)絡(luò)時代,Web GIS的發(fā)展日新月異,為GIS的應(yīng)用提供了更為廣闊的空間,也為用戶提供了更為方便快捷的GIS服務(wù)。將三維GIS和Web GIS兩者的優(yōu)勢結(jié)合到一起,對GIS的發(fā)展具有重要的意義。

SuperMap作為具有國內(nèi)領(lǐng)先水平的GIS平臺,具有高性能、高穩(wěn)定性、高可靠性的特點。它提供了企業(yè)級的GIS服務(wù)器以及開發(fā)真三維應(yīng)用的工具包,能夠支持用戶快速高效地開發(fā)特定的Web三維GIS應(yīng)用產(chǎn)品。

1 開發(fā)前準備

編程語言采用JavaScript,在開發(fā)前需要在服務(wù)器端部署服務(wù)發(fā)布平臺,用戶可以根據(jù)自身需求選擇安裝SuperMap iServer平臺進行數(shù)據(jù)及系統(tǒng)服務(wù)的發(fā)布,也可以采用IIS等其他服務(wù)進行數(shù)據(jù)和系統(tǒng)的發(fā)布。GIS功能利用SuperMap iServer for Realspace提供的開發(fā)腳本庫及web三維GIS插件來開發(fā)實現(xiàn)。

1.1 插件安裝

Web三維GIS插件是以ActiveX控件的形式嵌入網(wǎng)頁中,用戶在瀏覽三維場景中需要安裝該插件,所以開發(fā)者在發(fā)布系統(tǒng)的同時,需要把插件也發(fā)布出去。

1.2 添加腳本庫

將SuperMap iServer for Realspace安裝目錄下lib腳本庫(目錄組織見圖1)復(fù)制到系統(tǒng)目錄下。在系統(tǒng)中新建SuperMap.Include.js腳文章件,在其中添加引用腳本庫的代碼,并在html主界面中引用該腳文章件。

1.3 加載默認場景

在主界面初始化方法中添加下列代碼來加載默認場景控件。參數(shù)中包括三維場景容器“sceneControlDiv“及控件初始化完成和失敗的initCallback()和failedCallback()兩個回調(diào)函數(shù)。

sceneControl = new SuperMap.Web.UI.Controls.SceneControl($get("sceneControlDiv"),initCallback, failedCallback);

回調(diào)函數(shù)initCallback()中用于添加數(shù)據(jù)加載等其他功能。已加載三維空間服務(wù)數(shù)據(jù)為例,代碼如下:

scene=sceneControl.get_scene();

scene.open("http://localhost:8090/iserver/services/realspace-test/rest/realspace", "test");

2 關(guān)鍵代碼與實現(xiàn)

在Web GIS開發(fā)過程中,普遍存在查詢、分析、圖層控制等基本的GIS功能的需求。下文中介紹GIS常用功能的實現(xiàn)步驟和方法。

2.1 場景操作

2.1.1 場景設(shè)置

用戶在使用的過程中,常常會根據(jù)個人習(xí)慣和需求來調(diào)整場景部件的狀態(tài),開發(fā)者可通過scene.get_sceneOption()接口設(shè)置場景中大氣層、導(dǎo)航板、狀態(tài)欄、經(jīng)緯網(wǎng)、太陽光照等內(nèi)容。此外,場景中經(jīng)常會存在地勢比較平坦的狀況,為了凸顯當前地勢的變化情況,可通過scene.set_terrainExaggeration()接口設(shè)置地形拉伸比例實現(xiàn)地形的夸張和壓縮。

2.1.2 互操作

對于場景的交互操作可通過SceneAction類來實現(xiàn)。Supermap腳本庫提供了漫游、縮放、點選擇、空間量算等三維操作狀態(tài),其中,點選擇和空間量算的操作需要注冊回調(diào)函數(shù)并返回相應(yīng)的參數(shù)。

其他的交互操作如繪制標注、框選要素等特定需求的操作狀態(tài),可通過擴展SceneAction來實現(xiàn),然后對擴展的類的使用方法與漫游等基本操作的使用方法一致。

2.2 GIS功能

2.2.1 屬性查詢

屬性查詢主要通過GerFeature3DsBySQLParameters()、GetFeaturesBySQLService(url)等接口來實現(xiàn),用戶通過定義SQL語句,來對指定的數(shù)據(jù)服務(wù)進行查詢。其中,GerFeature3DsBySQLParameters()用于設(shè)定數(shù)據(jù)服務(wù)的名稱和SQL語句,GetFeaturesBySQLService()用于設(shè)定數(shù)據(jù)服務(wù)的地址和回調(diào)函數(shù)等內(nèi)容。查詢執(zhí)行的回調(diào)函數(shù)包含查詢結(jié)果的參數(shù),通過該參數(shù)可獲取此次查詢得到的目標要素信息。

2.2.2 空間查詢

空間查詢主要通過GetFeature3DsByBoundsParameters()、GetFeature3DsByBoundsService(url)等接口來實現(xiàn),用戶可通過自定義矩形框范圍來查詢空間上相交的結(jié)果。

值得注意的是,空間查詢返回的值是由要素外接矩形之間的相交關(guān)系得到的,所以,查詢結(jié)果存在著一些外接矩形相交但實際上本身并不相交的要素,顯然此類結(jié)果需要從中剔除。為了保證查詢的準確度并兼顧查詢效率,需要在查詢執(zhí)行后的回調(diào)函數(shù)中對結(jié)果進行判斷。判斷過程采用Geometry3D.hitTest(point, tolerance)方法,該方法用于判斷Geometry3D對象是否與以point為中心,tolerance為半徑的圓有重疊部分,能夠清除結(jié)果中大部分的錯誤記錄。方法步驟如下:

(1)獲取查詢矩形框的中心點和矩形框的最長邊的一半,作為hitTest()判斷參數(shù);(2)遍歷查詢結(jié)果,獲取每個要素幾何屬性,參與判斷;(3)若返回結(jié)果為True則作為查詢結(jié)果予以保留,反之從查詢結(jié)果中清除。

2.2.3 圖層控制

三維場景中的圖層分為普通圖層和地形圖層兩部分,分別通過scene.get_layer3Ds()和scene.get_terrainLayers()方法實現(xiàn)。普通圖層包括矢量圖層、影像圖層、緩存數(shù)據(jù)圖層、專題圖層、模型圖層等。通過圖層控制方法,可以調(diào)整圖層的顯示、透明度、疊放順序、顯示高度等。利用此方法,可以在三維場景中展示地理信息的統(tǒng)計圖表、專題分析結(jié)果等內(nèi)容。如圖2所示。

3 功能擴展

在實際的開發(fā)過程中,客戶常常會根據(jù)自身的需求,提出特定的GIS功能需求。因此,根據(jù)開發(fā)平臺現(xiàn)有的接口,開發(fā)者需要充分結(jié)合網(wǎng)頁的編程優(yōu)勢,實現(xiàn)一些更加貼合特定需求的功能。作者在此提出三種功能上的擴展,和讀者學(xué)習(xí)交流。

3.1 多時相數(shù)據(jù)的演變

多時相是地理信息的一個重要特點。隨著GIS數(shù)據(jù)的更新速度不斷加快,開發(fā)者越來越多的面臨多時相數(shù)據(jù),如何更好地表現(xiàn)和分析多時相數(shù)據(jù)變得愈加重要。

借助于開發(fā)中的圖層控制窗口,開發(fā)過程中可以對數(shù)據(jù)設(shè)定一個時間軸,在切換時間點的同時展現(xiàn)對應(yīng)時相的數(shù)據(jù),達到預(yù)覽數(shù)據(jù)演變的過程。在這個過程中,用戶也可根據(jù)需求添加數(shù)據(jù)對比圖層的展示,也可利用setTimeout()方法來自動控制多時相數(shù)據(jù)的切換,實現(xiàn)效果見圖3所示。

3.2 地形分析功能的擴展

目前,平臺提供的網(wǎng)頁端地形分析功能具有一定的局限性,但是通過scene.getAltitude(x,y)方法可獲取高程點位信息,開發(fā)者可以自主的設(shè)定分析算法進行特定的分析計算。例如,可通過添加一條線段,獲取沿該線段100個采樣點的高程值來得到該線段的剖面分析圖。

3.3 第三方庫文件的豐富表現(xiàn)形式

傳統(tǒng)的表格等表現(xiàn)分析統(tǒng)計的結(jié)果顯得比較呆板、枯燥。從用戶的角度來出發(fā),開發(fā)者需要尋找更為靈活生動的表現(xiàn)形式。目前網(wǎng)頁編程中有很多優(yōu)秀的第三方圖表庫,如highCharts,eCharts等,采用這些第三方的腳本庫,可以快速地開發(fā)出較多豐富的圖表表現(xiàn)形式。

4 結(jié)束語

在日新月異的計算機時代,基于三維場景的Web GIS在眾多GIS產(chǎn)品中有鮮明的特點和優(yōu)勢,同時在影響國民經(jīng)濟的多個領(lǐng)域發(fā)揮著愈加重要的作用。針對政府、企業(yè)等不同部門,開發(fā)者需要做出更多特定的GIS服務(wù)。文章在介紹開發(fā)關(guān)鍵技術(shù)的同時,也提出一些對功能擴展的想法和意見,旨在拋磚引玉,希望對GIS相關(guān)開發(fā)提供一些幫助和經(jīng)驗。

參考文獻

[1]吳創(chuàng)奇.基于SuperMap的二三維一體化的WebGIS系統(tǒng)開發(fā)[J].科技創(chuàng)新導(dǎo)報,2011(21):24-25.

[2]葛梓培,馬琳賀.基于SuperMap IS.NET的水利GIS系統(tǒng)開發(fā)[J].科學(xué)中國人,2014(21).

[3]姜仁貴,解建倉,李建勛,等.基于數(shù)字地球的WebGIS開發(fā)及其應(yīng)用[J].計算機工程.2011(6):225-227.

[4]呂智涵,馮圣中,陳戈.基于多維WebGIS的三維互動網(wǎng)絡(luò)虛擬社區(qū)[J].系統(tǒng)仿真學(xué)報,2013,25(9):2109-2114.

作者簡介:禮晟東(1979-),男,遼寧沈陽人,工程師,主要從事測繪產(chǎn)品生產(chǎn)的技術(shù)管理工作。

阿城市| 岳池县| 庐江县| 太原市| 长海县| 大关县| 嵊泗县| 涞水县| 雷州市| 蒲江县| 庄河市| 东平县| 定西市| 恭城| 湘潭市| 沙田区| 万安县| 合山市| 德令哈市| 安康市| 眉山市| 灵山县| 夏津县| 肇州县| 阜平县| 永仁县| 高唐县| 鞍山市| 电白县| 宿松县| 武安市| 新兴县| 如皋市| 中宁县| 永定县| 清远市| 珠海市| 峨眉山市| 涿鹿县| 鸡西市| 伊金霍洛旗|