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

基于Ajax和ArcEngine的WebGIS系統(tǒng)的設(shè)計和實現(xiàn)

2010-04-19 03:19:06王曉醉
城市勘測 2010年3期
關(guān)鍵詞:程序系統(tǒng)

王曉醉

(武漢大學(xué)測繪學(xué)院,湖北武漢 430072)

基于Ajax和ArcEngine的WebGIS系統(tǒng)的設(shè)計和實現(xiàn)

王曉醉?

(武漢大學(xué)測繪學(xué)院,湖北武漢 430072)

介紹了基于傳統(tǒng)WebGIS系統(tǒng),結(jié)合緩存切片技術(shù),開發(fā)類似GoogleMap風(fēng)格的WebGIS應(yīng)用系統(tǒng)的基本原理、關(guān)鍵技術(shù)和應(yīng)用實例。該WebGIS系統(tǒng)采用切片技術(shù)對地圖進(jìn)行切片,存放在服務(wù)器上,在前臺通過Ajax技術(shù)實現(xiàn)地圖顯示和操作,提高了響應(yīng)速度。并能進(jìn)行興趣點的標(biāo)注。

WebGIS;Ajax;ArcEngine;切片技術(shù)

1 引 言

WebGIS是Internet技術(shù)應(yīng)用于GIS開發(fā)的產(chǎn)物,是實現(xiàn)GIS互操作的一條最佳途徑。從Internet的任意節(jié)點,用戶都可以瀏覽WebGIS站點中的地圖文檔,制作專題圖,進(jìn)行各種空間信息的檢索和分析[1]。

圖1 WebGIS服務(wù)請求工作原理

以往傳統(tǒng)的WebGIS系統(tǒng),往往使用同步傳輸?shù)臋C制來實現(xiàn)交互,面對大流量數(shù)據(jù)時,往往使得系統(tǒng)的響應(yīng)速度變得很慢。而Ajax技術(shù)的最大特點就是異步傳輸,通過Ajax引擎能夠很好地實現(xiàn)客戶端和服務(wù)器之間的請求、應(yīng)答機制,減輕服務(wù)器的負(fù)荷,平衡服務(wù)器和客戶端的負(fù)載。而利用ArcEngine進(jìn)行開發(fā),具有靈活,方便的特點,也能有效提高切片速度。

地圖文檔的顯示貫穿于整個WebGlS站點操作的始終,其操作方式和使用技術(shù)決定了整個WebGlS站點的效率,是WebGIS系統(tǒng)的核心。使用Ajax技術(shù),是WebGIS發(fā)展的必然趨勢。本文利用Ajax和ArcEngine技術(shù),實現(xiàn)開發(fā)了一個類似GoogleMap的WebGIS系統(tǒng),提高了數(shù)據(jù)的響應(yīng)速度,減少用戶等待時間。

2 Ajax技術(shù)和ArcEngine介紹

Ajax是Asynchronous JavaScript and XML(異步的JavaScript和XML)的簡稱[2]。嚴(yán)格地講,Ajax不是一個技術(shù),它實際上是幾種技術(shù)的集合,每種技術(shù)都有其獨特之處,合在一起就成了功能強大的 Ajax技術(shù)。Ajax技術(shù)包括:

(1)使用基于XHTML和CSS標(biāo)準(zhǔn)的表示方法;

(2)使用Document Object Model(DOM)進(jìn)行動態(tài)顯示和交互;

(3)使用XML和XSLT進(jìn)行數(shù)據(jù)交換和操作;

(4)使用XMLHttpRequest與服務(wù)器進(jìn)行異步通信;

(5)使用JavaScript綁定以上技術(shù)。

使用Ajax技術(shù)開發(fā)WebGIS程序減輕了服務(wù)器的負(fù)擔(dān);無刷新更新頁面;減少用戶實際和心理等待時間;可以把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端;使Web中的數(shù)據(jù)與呈現(xiàn)分離。圖2為Ajax工作機制。

圖2 Ajax工作機制

2004年,美國 ESRI發(fā)布 ArcGIS Engine,ArcGIS Engine開發(fā)包提供了一系列可以在ArcGIS Desktop框架之外使用的 GIS組件,ArcEngine包括核心 ArcObjects的功能,是對AO中的大部分接口、類等進(jìn)行封裝所構(gòu)成的嵌入式組件。AE中的組件接口、方法、屬性與AO是相同的。但 ArcObjects必須依賴 ArcGIS Desktop桌面平臺,即購買安裝了ArcGIS Desktop的同時,安裝ArcObjects,才能利用AO進(jìn)行開發(fā);ArcEngine是獨立的嵌入式組件,不依賴ArcGIS Desktop桌面平臺,直接安裝ArcEngine Runtime和Developer Kit后,即可利用其在不同開發(fā)語言環(huán)境下開發(fā)。ArcEngine具有簡潔、靈活、易用、可移植性強等的特點。故本系統(tǒng)中使用ArcEngine進(jìn)行開發(fā)。

3 基于Ajax和ArcEngine的WebGIS體系實現(xiàn)技術(shù)

3.1 Ajax框架的選擇和系統(tǒng)架構(gòu)

目前有眾多的免費的Ajax框架可供選擇,例如Protptype、Scriptacu-lous、Dojo、DWR、Ajax.net、Altas等等[4]。本系統(tǒng)主要選擇使用了 Protptype框架的MapEasy作為客戶端的核心。MapEasy是由國內(nèi)開發(fā)者開發(fā)的,基于 Ajax技術(shù)的網(wǎng)絡(luò)地圖 JavaScript開源類庫,可以用于在瀏覽器端構(gòu)建類似GoogleMap風(fēng)格的網(wǎng)絡(luò)地圖應(yīng)用。MapEasy可以應(yīng)用服務(wù)器端的地圖切片數(shù)據(jù),在客戶端瀏覽器創(chuàng)建網(wǎng)絡(luò)地圖,并使用JavaScript增加標(biāo)注信息(點信息)。MapEasy使用 A-pache開源協(xié)議,允許作為開源或者商業(yè)軟件的代碼修改,再發(fā)布,也就是說,使用者可以在需要的時候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布或銷售。

本文設(shè)計的WebGIS系統(tǒng)為3層結(jié)構(gòu):客戶層、中間層和數(shù)據(jù)層,如圖3所示。

圖3 WebGIS系統(tǒng)3層結(jié)構(gòu)

客戶層:直接為使用者提供可視界面。客戶層還包括了Ajax引擎。Ajax是完完全全的客戶端技術(shù),很多控件封裝了客戶端和服務(wù)器端的通信過程,服務(wù)器端都是返回的一個純文本流,再由客戶端來處理這個文本,這段文本可以是xml格式,也可以是一個html格式。

中間層:提供 Web服務(wù)。提供對 Microsoft SQL Server等數(shù)據(jù)源以及通過OLE DB和XML公開的數(shù)據(jù)源的一致訪問。

數(shù)據(jù)源層:Sql server數(shù)據(jù)庫,存儲空間數(shù)據(jù)及屬性數(shù)據(jù)。還包括GIS工具處理的地圖資源,該資源以文件的形式存在于服務(wù)器上。

3.2 地圖切片數(shù)據(jù)組織與客戶端

在WebGIS體系的實現(xiàn)中,切片技術(shù)是核心技術(shù)之一。一般的WebGIS體系會選用帶有切片程序的地圖服務(wù)器(如 GeoServer)或者地圖發(fā)布軟件(如 ArcIMS)。筆者在本系統(tǒng)中采用的是自己基于ArcEngine編寫切片程序,使之符合MapEasy的命名規(guī)則,然后再使用Web Server(如IIS)調(diào)用切片,實現(xiàn)圖片顯示。其總體調(diào)用過程如圖4所示。

如圖4所示,系統(tǒng)在客戶端使用MapEasy為核心構(gòu)建,在服務(wù)器端通過Internet信息服務(wù),調(diào)用切片程序,返回地圖切片數(shù)據(jù)。

圖4 切片程序調(diào)用過程

地圖切片的原理一般是瓦片金字塔模型,其核心思想是分層和分塊:原始數(shù)據(jù)按不同分辨率重采樣產(chǎn)生層;同一層數(shù)據(jù)按指定的格網(wǎng)大小均勻剖分即得瓦片,如圖5所示。

圖5 瓦片金字塔模型

筆者在實現(xiàn)地圖切片的過程中,編寫基于 ArcEngine的切片程序。其中心思想如下:在地圖調(diào)入的過程中讀取其左下角和右上角的經(jīng)緯度值,然后根據(jù)經(jīng)緯度進(jìn)行切割。在切割的過程中采取分層的思想。對第0層的切片,定義一個變量ZERO_GRID來定義切片的大小。在本程序中,0層每個正方形切片的大小均為2.25°。隨著切片層數(shù)的增加,切片大小遞減,其大小為ZERO_GRID/2k。

切片程序的核心代碼如下:

切好的圖片將被發(fā)布在IIS上。

為了在瀏覽器客戶端實現(xiàn)顯示,筆者在瀏覽器客戶端,應(yīng)用MapEasy類庫添加地圖的JavaScript代碼為:

以上代碼最關(guān)鍵的是最后一句。其中有3個參數(shù),level代表縮放級別,row代表行,column代表列。在MapEasy中row表示瓦片(tile)所在的行數(shù)、column表示瓦片所在的列數(shù)而level表示地圖縮放的級別。MapEasy兼容的數(shù)據(jù)切片方案采用四叉樹切分和哈希格網(wǎng)索引算法,即第一級為 1幅圖片,第二級分為4幅,第三級則劃分為16幅,這和我們編寫的地圖切片算法切出的圖片是一致的,從而保證了MapEasy能順利讀取各級圖片。

4 系統(tǒng)實例

筆者采用Mircosoft.Net 2.0開發(fā)平臺進(jìn)行開發(fā),開發(fā)語言為C#;服務(wù)器運行環(huán)境為:Microsoft Windows XP sp2,IIS,SQL Server 2005;客戶端可以為任意的Web瀏覽器。通過使用緩存切片和Ajax技術(shù),在普通PC服務(wù)器上,實現(xiàn)了對地圖快速的訪問。在瀏覽器的地圖窗口建立兩個功能模塊:地圖顯示模塊和地圖查詢模塊。地圖顯示模塊主要是負(fù)責(zé)顯示用戶指定區(qū)域,并且具有一定比例的柵格地圖,實現(xiàn)了放大、縮小、漫游、平移、拉框、清除等基本的地圖功能。圖6為系統(tǒng)的運行界面,其中左圖為查詢界面之一,右圖為添加興趣點的結(jié)果,結(jié)果數(shù)據(jù)的空間位置可以通過標(biāo)注的形式顯示在地圖之上。

圖6 系統(tǒng)運行界面

5 結(jié) 語

本文中筆者用ArcEngine和Ajax技術(shù)仿照Google Map實現(xiàn)了一個簡單WebGIS系統(tǒng)的設(shè)計和發(fā)布,實現(xiàn)了地圖的瀏覽,放大,縮小等功能,實現(xiàn)了地圖切片程序的編寫,并能使用Ajax技術(shù)在前臺讀取地圖切片,能實現(xiàn)興趣點的標(biāo)注等。Ajax技術(shù)的使用,實現(xiàn)了地圖數(shù)據(jù)交互的加快,減少了用戶等待時間;應(yīng)用ArcEngine進(jìn)行地圖切片,比直接在AO上開發(fā)靈活方便,切片速度也有提高。但在地圖分析的方面,還有很多需要加強,比如沒有緩沖區(qū)分析等功能等。今后筆者將繼續(xù)從事這方面的研究,努力使該系統(tǒng)的功能更加完善。

[1]MapEasy[EB/OL].http://mapeasy.sourceforge.net

[2]黃穎,謝忠,鐘士彬..NET和VML及腳本技術(shù)在WebGIS系統(tǒng)地圖文檔顯示中的應(yīng)用[J].測繪科學(xué),2006,31(4)

[3]徐卓揆,劉德欽,林宗堅.基于WebGIS的動態(tài)專題地圖發(fā)布技術(shù)研究[J].測繪科學(xué),2006,31(3)

[4]徐卓揆,劉德欽,林宗堅.Ajax技術(shù)在WebGIS中的應(yīng)用[J].測繪信息與工程,2007,32(1):3~5

The Development and Design of WebGIS Based on Ajax and ArcEngine

Wang XiaoZui
(School of Geodesy and Geomatic,Wuhan University,Wuhan 430072,China)

This paper introduces the development of similar style GoogleMap of WebGIS application system's basic principles,key technologies and applications,based on traditional WebGIS-based systems,combined with the tile cache technology.The system uses WebGIS tile cache technology to slice the map,stored the pictures in the server,and use the Ajax technology to display and operate maps.It can also mark the POI(Point of Interest)on the maps.

WebGIS;Ajax;ArcEngine;tile cache

1672-8262(2010)03-32-03

P208

B

2010—01—03

王曉醉(1986—),女,碩士研究生,專業(yè)方向地理信息系統(tǒng)。

猜你喜歡
程序系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
“程序猿”的生活什么樣
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 色婷婷丁香| 国产幂在线无码精品| JIZZ亚洲国产| 91麻豆精品国产高清在线| 婷婷色狠狠干| 国产一区成人| 国内精品久久久久鸭| 国产精品九九视频| 夜色爽爽影院18禁妓女影院| 第一区免费在线观看| 中文字幕免费播放| 国产精品欧美激情| 欧美激情综合| 国产va在线| 91欧美在线| 欧美综合中文字幕久久| 激情综合激情| 毛片基地美国正在播放亚洲 | 欧美精品xx| 国产在线小视频| 色综合成人| 国产AV无码专区亚洲A∨毛片| 国产日韩欧美在线视频免费观看 | 国产免费网址| 国产成人狂喷潮在线观看2345| 精品视频一区在线观看| 无码福利视频| a色毛片免费视频| 激情无码视频在线看| 国产精品片在线观看手机版 | 丰满的少妇人妻无码区| 91亚瑟视频| 亚洲成人免费在线| 久久精品国产精品国产一区| 国产精品极品美女自在线| 国产亚洲一区二区三区在线| 毛片网站观看| 国产又大又粗又猛又爽的视频| 免费无码AV片在线观看中文| 中字无码av在线电影| 伊人成人在线| 欧美中文字幕一区| 91久久国产综合精品女同我| 88av在线看| AV色爱天堂网| 国模视频一区二区| 伊在人亞洲香蕉精品區| 午夜限制老子影院888| 欧美一级爱操视频| 亚洲最大看欧美片网站地址| 一本大道香蕉中文日本不卡高清二区 | 激情爆乳一区二区| 亚洲国产精品国自产拍A| 伊人久久大香线蕉影院| 亚洲高清无码久久久| 欧美一区福利| 色哟哟国产精品| 精品国产毛片| 成年人免费国产视频| 欧美成人精品一级在线观看| 国产成年无码AⅤ片在线| 高清精品美女在线播放| 亚洲经典在线中文字幕| 老汉色老汉首页a亚洲| 国产成人精品在线| Jizz国产色系免费| 国产在线啪| 亚洲视频三级| 亚洲综合亚洲国产尤物| 久久福利网| 色欲色欲久久综合网| 亚洲精品无码高潮喷水A| 欧美一区国产| 国产一区在线视频观看| 少妇精品久久久一区二区三区| 老司国产精品视频| 欧美综合激情| 国产成熟女人性满足视频| 浮力影院国产第一页| 国产乱论视频| 免费女人18毛片a级毛片视频| 青草视频久久|