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

基于Google Earth API的典型GIS功能開發方法

2014-02-19 05:15:14喻靜敏吳華意
地理空間信息 2014年4期
關鍵詞:可視化

喻靜敏,游 蘭,2,吳華意

(1. 武漢大學 測繪遙感信息工程國家重點實驗室,湖北 武漢 430079;2. 湖北大學 數學與計算機科學學院,湖北 武漢 430062)

作為一個開放的地理信息服務系統,Google Earth(GE)應用越來越廣泛[1-8]。但是,目前大部分的GE應用提供的功能主要是瀏覽GE影像數據、地圖標注、地點查詢、路線查詢,而一些GIS典型功能如地圖要素創建和編輯、要素幾何查詢等,GE未直接提供API。本文基于GE API開發了GIS中的地圖要素創建和編輯、幾何查詢、矢量和柵格數據可視化等典型功能。

1 GE API編程接口

較早的GE API是指GE COM API,它是Google公司開放的公共接口,允許第三方應用程序向GE查詢信息和發送命令。開發人員可以使用支持COM的可視化編程語言工具進行開發。最新的GE API 是通過GE Plug-in在瀏覽器里開發的JavaScript API函數。使用GE Plug-in及其JavaScript API,可以將GE虛擬地球嵌入自己的網頁中。使用該API 繪制標記和折線、使圖片覆蓋區域、添加3D模型或加載KML文件,從而允許開發人員構建復雜的3D地圖應用程序[2]。本文使用的GE JavaScript API接口如表1所示[3]。

表1 GE API 主要接口

2 原型系統設計與開發

原型系統采用C/S架構(圖1)主要由遠程客戶端與服務器端組成。服務器端包括:GE服務器,用于與GE客戶端的交互;Web服務器,用于發布KML文件以及和客戶端互動;GIS服務器,用于發布GIS矢量數據;數據庫服務器,用于存儲GIS柵格數據。架構中的客戶端就是安裝了GE Plug-in的普通PC用戶。

圖1 系統架構示意圖

GE只能加載和編輯KML文件,不能直接加載矢量數據。所以,本原型系統采用將矢量數據在GIS服務器GeoServer中發布為WMS地圖服務的方法來實現矢量數據在GE中的可視化。

GeoServer是OpenGIS Web服務器規范的J2EE實現。利用GeoServer可以方便地發布地圖矢量數據,允許用戶對特征數據進行更新、刪除、插入操作。原型系統采用的方法是:在GeoServer中將矢量數據發布為WMS服務,然后通過WMS的GetMap方法請求地圖影像[4]。

原型系統的客戶端開發采用Eclipse插件模式和RCP富客戶端技術,采用的技術包括Java、JavaScript、HTML。

3 典型GIS功能的開發

3.1 地圖要素編輯

GE雖然提供了創建線段、多邊形的API,但非交互式的,用戶體驗較差。為了實現交互式效果,需添加單擊、雙擊、右擊等多種鼠標事件的監聽器和響應函數,主要涉及的GE API有KmlFeature、KmlGeometry、KmlPlacemark、GEEventEmitter。原型系統以線要素為例開發了折線段的新建、內點的刪除和移動、高亮選中功能。下面是高亮選中的部分代碼。

function Highlight(event){ //mousedown的響應高亮選中Highlight

if(event.getTarget().getType()=='KmlPlacemark'){ //判斷選中對象是否為圖形要素

var selecting = event.getTarget();

if(selecting.getGeometry().getType()=='KmlPoint'){ //判斷是否為點要素

selecting.setStyleUrl('http://202.114.114.6/data/style.kml#PointHightlight'); //設置為高亮點樣式

}

if(selecting.getGeometry().getType()=='KmlLineString'){ //判斷是否為線要素

selecting.setStyleUrl('http://202.114.114.6/data/style.kml#PolyHighlight'); //設置為高亮線樣式

}

……

}

}

3.2 數據輸出

數據輸出是指將編輯結果存儲到新建的KML文件。首先新建一個空文件,寫入固定的KML文件頭,然后對GE上的地圖要素一一遍歷寫入文件,最后關閉文件。下面是部分JavaScript代碼。

function saveKml(filepath,filename){ //將編輯結果保存為KML文件,參數分別為文件保存路徑和文件名

var fso, kmlfile;

fso = new ActiveXObject('scripting.FileSystemObject');//創建文件對象

if(!fso.FolderExists(filepath)) //若當前路徑不存在,則創建此路徑

fso.CreateFolder(filepath);

filepath +=filename;

kmlfile =fso.CreateTextFile(filepath,true); //創建新文件

"http://earth.google.com/kml/2.2">'+ ' '); //寫入KML固定文件頭

……

kmlfile.Close();

}

3.3 幾何查詢

幾何查詢是查詢用戶定義的幾何范圍內地圖要素的屬性信息,包括點查詢、圓查詢和矩形查詢等。以拉框為例,可分三步實現:首先鼠標按下,查詢框的左上角確定;隨著鼠標的移動,開始畫框,查詢框的右下角隨鼠標的移動而改變,在此過程中需要隨著鼠標的移動不停地刷新頁面以更新拉框范圍;當鼠標左鍵被放開時所在點即是查詢框的右下角所在處,拉框結束。根據查詢框的地理范圍坐標,搜索GE數據庫中落入查詢框內的地圖要素。以上三個步驟分別在mousedown、mousemove和mouseup三個鼠標事件的響應中實現。

下面是用JavaScript編寫的拉框查詢的部分程序。

function begindraw(event){ //mousedown的響應begindraw

event.preventDefault();

var lat_Origin; //存儲查詢框左上角的地理緯度坐標變量

var lon_Origin; //存儲查詢框左上角的地理經度坐標變量

dragInfo = {

lat_Origin: event.getLatitude(),

lon_Origin: event.getLongitude(),

dragged: false //標識鼠標是否按下的變量

};

}

…….

function enddraw(event){ //mouseup的響應enddraw

if(dragInfo){

if(dragInfo.dragged) { //根據查詢框范圍開始遍歷GE上的地圖要素

var allChildren = ge.getFeatures().getChildNodes(); //獲取GE上所有對象

for(var n=0;n< allChildren.getLength();n++) //依次判斷GE上的對象是否在查詢框內

{…… }

dragInfo=null;

lineStyle.getColor().set('00000000'); //設置查詢框的外框顏色為透明,拉框結束

}

}

}

3.4 矢量和柵格數據可視化

GE雖然提供了加載圖片的API,但是圖片會在GE過于放大時失真。為了實現柵格數據分級可視化,應實現疊加層隨GE的縮放相應地改變精度。表2列出了不同視點高度對應的圖片上每像素表示的距離,視點高度越高每像素表示的距離越大,精度越低,反之則反。根據此表,在GE的viewchanged()事件響應中,客戶端根據視點的高度向服務器請求不同精度的影像。

表2 GE貼圖計算對照表

圖3 幾何查詢

4 原型系統效果

原型系統的運行結果如圖2、3、4所示。從結果看,本文提出的開發方法具有以下特點:

1)與原始GE API的編輯功能相比,本文實現的地理要素編輯功能具有較強的交互性,使用簡單直觀,用戶體驗良好;

2)原始GE API未提供幾何圖形范圍查找功能,本文巧妙利用了多種鼠標按鈕事件,實現了框選地理范圍查詢地理要素的典型GIS功能,一定程度上彌補了GE API的不足;

3)原始GE API提供的柵格數據瀏覽不能適應不同比例尺,本文提出的柵格數據可視化能夠讓GE上的柵格地圖數據實現不同比例尺下的清晰瀏覽與平滑過渡。

圖2 地圖要素的創建和編輯

圖4 柵格數據分級顯示

[1]顏小平, 孫喆, 王峰, 等. Google Earth在外業生產中離線應用的研究[J]. 測繪與空間地理信息, 2013, 36(5): 103-107

[2]Google Earth API[EB/OL]. http://developers.google.com/earth/,2013-05-23

[3]Google Earth API Reference[EB/OL]. http//developers.google.com/earth/documentation/reference,2013-05-23

[4]Web Map Service Implementation Specification[EB/OL]. http://www.opengeospatial.org/standards/wms,2013-05-04

[5]Keyhole標記語言[EB/OL]. http://developers.google.com/kml/documentation,2013-05-15

[6]馬立廣, 曹彥榮. Google Earth COM API及 KML技術在旅游管理信息系統開發中的應用[J]. 地球信息科學學報, 2010,12(6): 828-834

[7]鈄春紅. Google Earth在水利水電測繪中的應用[J]. 地理空間信息, 2011,9(5): 53-55

[8]趙銀兵, 倪忠云, 何杰, 等. Google Earth在《城市遙感技術》教學中的應用[J]. 地理空間信息, 2012, 10(4): 172-174

[9]孫英澤, 胡婧, 王征碩. Google Earth應用于基建項目管理系統的研究與實現[J]. 農業網絡信息, 2012 (9): 12-16

[10]夏蒙, 任光輝, 李岳生, 等. 湖南省血吸蟲病GIS監測平臺—Google Earth疫情信息系統的建立與應用[J]. 中國血吸蟲病防治雜志, 2010, 22(6): 572-574

[11]焦俊超, 馬安青, 婁安剛, 等. GIS和Google Earth開發在溢油預測中的整合應用[J]. 遙感技術與應用, 2011, 26(2): 215-219

[12]陳建平, 常慶瑞, 陶文芳, 等. 基于Google Earth的GIS專題制圖技術研究與應用——以陜西省土壤分類信息系統開發為例[J]. 水土保持通報, 2008, 28(6): 63-66

猜你喜歡
可視化
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 亚洲大尺度在线| 亚洲精品国产成人7777| 香蕉综合在线视频91| 久久频这里精品99香蕉久网址| 亚洲精品大秀视频| 亚洲日韩欧美在线观看| 最近最新中文字幕在线第一页| 国产精品网曝门免费视频| 漂亮人妻被中出中文字幕久久| 国产精品性| 国产自产视频一区二区三区| 欧美精品啪啪| 成人在线亚洲| 亚洲精品无码在线播放网站| 丁香婷婷激情综合激情| 亚洲综合色区在线播放2019| 热久久这里是精品6免费观看| 99久久国产综合精品2020| 国产超碰在线观看| 91久久偷偷做嫩草影院免费看 | 国产精品自在在线午夜| 2021国产乱人伦在线播放| 国产福利小视频在线播放观看| 欧美另类第一页| 久久亚洲日本不卡一区二区| 野花国产精品入口| 国产香蕉97碰碰视频VA碰碰看 | 亚国产欧美在线人成| 国产香蕉一区二区在线网站| 色婷婷丁香| 亚洲天堂视频在线播放| 刘亦菲一区二区在线观看| 999精品色在线观看| av大片在线无码免费| 亚洲AV成人一区二区三区AV| 午夜精品久久久久久久无码软件| 国产精品不卡永久免费| 谁有在线观看日韩亚洲最新视频| 天堂网亚洲系列亚洲系列| 国产精品久久久久久搜索| 亚洲第一成年人网站| 天堂在线www网亚洲| 男人天堂亚洲天堂| 人妻夜夜爽天天爽| 538国产在线| 日韩东京热无码人妻| 首页亚洲国产丝袜长腿综合| 国产噜噜噜视频在线观看 | 国产又粗又猛又爽视频| 一级毛片免费播放视频| 亚洲第一成年网| 毛片三级在线观看| 欧美视频在线不卡| 黄色网址免费在线| 大香网伊人久久综合网2020| 亚洲第一成年网| 2020亚洲精品无码| 欧美综合一区二区三区| 天天综合网色| a在线观看免费| 国产欧美在线| 国产综合日韩另类一区二区| 亚洲综合激情另类专区| 亚洲91精品视频| 亚洲无码高清视频在线观看| 国产精欧美一区二区三区| 全裸无码专区| 欧美精品亚洲日韩a| 欧美精品1区| 国产免费a级片| 全部毛片免费看| 人妻无码中文字幕第一区| 国产在线精品99一区不卡| 一级毛片在线免费视频| 久久久精品无码一区二区三区| 国产jizzjizz视频| 在线观看欧美精品二区| 97影院午夜在线观看视频| 九九九九热精品视频| 91精品在线视频观看| 青青草国产精品久久久久| 国产丰满成熟女性性满足视频|