亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Google Earth API的典型GIS功能開發(fā)方法

        2014-02-19 05:15:14喻靜敏吳華意
        地理空間信息 2014年4期
        關(guān)鍵詞:柵格數(shù)據(jù)鼠標(biāo)原型

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

        (1. 武漢大學(xué) 測繪遙感信息工程國家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079;2. 湖北大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,湖北 武漢 430062)

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

        1 GE API編程接口

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

        表1 GE API 主要接口

        2 原型系統(tǒng)設(shè)計(jì)與開發(fā)

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

        圖1 系統(tǒng)架構(gòu)示意圖

        GE只能加載和編輯KML文件,不能直接加載矢量數(shù)據(jù)。所以,本原型系統(tǒng)采用將矢量數(shù)據(jù)在GIS服務(wù)器GeoServer中發(fā)布為WMS地圖服務(wù)的方法來實(shí)現(xiàn)矢量數(shù)據(jù)在GE中的可視化。

        GeoServer是OpenGIS Web服務(wù)器規(guī)范的J2EE實(shí)現(xiàn)。利用GeoServer可以方便地發(fā)布地圖矢量數(shù)據(jù),允許用戶對(duì)特征數(shù)據(jù)進(jìn)行更新、刪除、插入操作。原型系統(tǒng)采用的方法是:在GeoServer中將矢量數(shù)據(jù)發(fā)布為WMS服務(wù),然后通過WMS的GetMap方法請(qǐng)求地圖影像[4]。

        原型系統(tǒng)的客戶端開發(fā)采用Eclipse插件模式和RCP富客戶端技術(shù),采用的技術(shù)包括Java、JavaScript、HTML。

        3 典型GIS功能的開發(fā)

        3.1 地圖要素編輯

        GE雖然提供了創(chuàng)建線段、多邊形的API,但非交互式的,用戶體驗(yàn)較差。為了實(shí)現(xiàn)交互式效果,需添加單擊、雙擊、右擊等多種鼠標(biāo)事件的監(jiān)聽器和響應(yīng)函數(shù),主要涉及的GE API有KmlFeature、KmlGeometry、KmlPlacemark、GEEventEmitter。原型系統(tǒng)以線要素為例開發(fā)了折線段的新建、內(nèi)點(diǎn)的刪除和移動(dòng)、高亮選中功能。下面是高亮選中的部分代碼。

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

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

        var selecting = event.getTarget();

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

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

        }

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

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

        }

        ……

        }

        }

        3.2 數(shù)據(jù)輸出

        數(shù)據(jù)輸出是指將編輯結(jié)果存儲(chǔ)到新建的KML文件。首先新建一個(gè)空文件,寫入固定的KML文件頭,然后對(duì)GE上的地圖要素一一遍歷寫入文件,最后關(guān)閉文件。下面是部分JavaScript代碼。

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

        var fso, kmlfile;

        fso = new ActiveXObject('scripting.FileSystemObject');//創(chuàng)建文件對(duì)象

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

        fso.CreateFolder(filepath);

        filepath +=filename;

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

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

        ……

        kmlfile.Close();

        }

        3.3 幾何查詢

        幾何查詢是查詢用戶定義的幾何范圍內(nèi)地圖要素的屬性信息,包括點(diǎn)查詢、圓查詢和矩形查詢等。以拉框?yàn)槔?,可分三步?shí)現(xiàn):首先鼠標(biāo)按下,查詢框的左上角確定;隨著鼠標(biāo)的移動(dòng),開始畫框,查詢框的右下角隨鼠標(biāo)的移動(dòng)而改變,在此過程中需要隨著鼠標(biāo)的移動(dòng)不停地刷新頁面以更新拉框范圍;當(dāng)鼠標(biāo)左鍵被放開時(shí)所在點(diǎn)即是查詢框的右下角所在處,拉框結(jié)束。根據(jù)查詢框的地理范圍坐標(biāo),搜索GE數(shù)據(jù)庫中落入查詢框內(nèi)的地圖要素。以上三個(gè)步驟分別在mousedown、mousemove和mouseup三個(gè)鼠標(biāo)事件的響應(yīng)中實(shí)現(xiàn)。

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

        function begindraw(event){ //mousedown的響應(yīng)begindraw

        event.preventDefault();

        var lat_Origin; //存儲(chǔ)查詢框左上角的地理緯度坐標(biāo)變量

        var lon_Origin; //存儲(chǔ)查詢框左上角的地理經(jīng)度坐標(biāo)變量

        dragInfo = {

        lat_Origin: event.getLatitude(),

        lon_Origin: event.getLongitude(),

        dragged: false //標(biāo)識(shí)鼠標(biāo)是否按下的變量

        };

        }

        …….

        function enddraw(event){ //mouseup的響應(yīng)enddraw

        if(dragInfo){

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

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

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

        {…… }

        dragInfo=null;

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

        }

        }

        }

        3.4 矢量和柵格數(shù)據(jù)可視化

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

        表2 GE貼圖計(jì)算對(duì)照表

        圖3 幾何查詢

        4 原型系統(tǒng)效果

        原型系統(tǒng)的運(yùn)行結(jié)果如圖2、3、4所示。從結(jié)果看,本文提出的開發(fā)方法具有以下特點(diǎn):

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

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

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

        圖2 地圖要素的創(chuàng)建和編輯

        圖4 柵格數(shù)據(jù)分級(jí)顯示

        [1]顏小平, 孫喆, 王峰, 等. Google Earth在外業(yè)生產(chǎn)中離線應(yīng)用的研究[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標(biāo)記語言[EB/OL]. http://developers.google.com/kml/documentation,2013-05-15

        [6]馬立廣, 曹彥榮. Google Earth COM API及 KML技術(shù)在旅游管理信息系統(tǒng)開發(fā)中的應(yīng)用[J]. 地球信息科學(xué)學(xué)報(bào), 2010,12(6): 828-834

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

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

        [9]孫英澤, 胡婧, 王征碩. Google Earth應(yīng)用于基建項(xiàng)目管理系統(tǒng)的研究與實(shí)現(xiàn)[J]. 農(nóng)業(yè)網(wǎng)絡(luò)信息, 2012 (9): 12-16

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

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

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

        猜你喜歡
        柵格數(shù)據(jù)鼠標(biāo)原型
        基于柵格數(shù)據(jù)的遼中南城市群人居環(huán)境自然適宜性測評(píng)
        包裹的一切
        Progress in Neural NLP: Modeling, Learning, and Reasoning
        Engineering(2020年3期)2020-09-14 03:42:00
        《哈姆雷特》的《圣經(jīng)》敘事原型考證
        論《西藏隱秘歲月》的原型復(fù)現(xiàn)
        基于GDAL的標(biāo)準(zhǔn)圖幅生成及數(shù)據(jù)批量裁剪方法*1
        地礦測繪(2016年2期)2016-07-16 03:03:01
        原型理論分析“門”
        人間(2015年20期)2016-01-04 12:47:08
        基于ArcGISEngine的南水北調(diào)工程基礎(chǔ)柵格數(shù)據(jù)管理
        45歲的鼠標(biāo)
        超能力鼠標(biāo)
        IM家庭電子(2008年11期)2008-12-05 09:49:20
        久草福利国产精品资源| 91产精品无码无套在线| 最新福利姬在线视频国产观看| 国产成人av三级三级三级在线| 免费日本一区二区三区视频| 蜜桃久久综合一区二区| 国产乱子伦精品无码专区| 色狠狠av老熟女| 国产视频最新| 国产女人av一级一区二区三区| 日本精品久久久久中文字幕| 亚洲国产另类久久久精品黑人| 日本香蕉久久一区二区视频| 亚洲国产一区二区,毛片| 在线视频夫妻内射| 久久日本三级韩国三级| 亚洲国产成人久久一区www妖精| 水蜜桃视频在线观看免费18| 国产亚洲精品90在线视频| 久久久av波多野一区二区| 久久精品国产亚洲av瑜伽| 亚洲av套图一区二区| 亚洲天堂精品成人影院| 欧美性巨大╳╳╳╳╳高跟鞋| 中文字幕久无码免费久久| 欧美日一本| 国产成人av三级在线观看韩国| 先锋五月婷婷丁香草草| 久久AV老司机精品网站导航| 亚洲一区二区观看网站| 性av一区二区三区免费| 老师粉嫩小泬喷水视频90| 久久福利资源国产精品999| 国产精品又爽又粗又猛又黄| 国产成人av乱码在线观看| 国产一起色一起爱| 美女黄网站永久免费观看网站| 精品久久av一区二区| 亚洲精品无码久久久久| 国产精品女丝袜白丝袜| 亚洲不卡一区二区视频|