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
主站蜘蛛池模板: 亚洲美女一区二区三区| 亚洲欧美精品在线| 国产又爽又黄无遮挡免费观看| 国产精品久久久久久久久久久久| 国产精品亚洲va在线观看| 国产精品自在在线午夜区app| 天天色综网| 国产主播喷水| 久久精品丝袜高跟鞋| av一区二区人妻无码| 98精品全国免费观看视频| 久久这里只有精品国产99| 欧美a级在线| 99免费视频观看| 精品国产福利在线| 亚洲另类色| 亚洲精品视频在线观看视频| 国产资源免费观看| 国产97视频在线观看| WWW丫丫国产成人精品| 亚洲无码视频一区二区三区| 国产传媒一区二区三区四区五区| 久久特级毛片| 99re66精品视频在线观看| 欧美激情第一区| 2021国产精品自产拍在线| 日韩欧美国产成人| 第一区免费在线观看| 国产va免费精品| 77777亚洲午夜久久多人| 国产啪在线| 免费AV在线播放观看18禁强制| 老司国产精品视频91| 性69交片免费看| 久久人人97超碰人人澡爱香蕉 | 日韩在线观看网站| 再看日本中文字幕在线观看| AV无码无在线观看免费| 国产三级精品三级在线观看| 国产真实乱人视频| 在线不卡免费视频| 中文字幕乱码二三区免费| 午夜福利网址| 女人毛片a级大学毛片免费| 欧美国产日韩在线播放| 国产免费福利网站| 亚洲精品福利视频| 免费人成在线观看成人片| 九色综合视频网| 少妇精品久久久一区二区三区| 国语少妇高潮| 国产精品欧美日本韩免费一区二区三区不卡| 亚洲水蜜桃久久综合网站| 亚洲人成网站观看在线观看| 欧美成人综合在线| 国产人人射| 国产成人精彩在线视频50| 色哟哟精品无码网站在线播放视频| 亚洲综合色婷婷中文字幕| 91极品美女高潮叫床在线观看| 欧美精品亚洲二区| 五月婷婷中文字幕| 欧美综合成人| 国产日本视频91| 日韩福利在线视频| 久热中文字幕在线观看| 国产网友愉拍精品| 国国产a国产片免费麻豆| 国模沟沟一区二区三区 | 超清无码一区二区三区| 91无码视频在线观看| 狠狠干综合| 无码高潮喷水在线观看| 香蕉蕉亚亚洲aav综合| 99re经典视频在线| 九九热精品在线视频| 亚洲天堂久久久| 一本大道香蕉中文日本不卡高清二区| 全午夜免费一级毛片| 国产精品无码制服丝袜| 午夜无码一区二区三区在线app| 最新亚洲人成无码网站欣赏网|