

MAPEASY數字地圖的優(yōu)化
- 期刊名字:電腦知識與技術(shù)
- 文件大?。?72kb
- 論文作者:張?chǎng)╇?,劉蓮花,肖?/li>
- 作者單位:湘南學(xué)院,華南師范大學(xué)
- 更新時(shí)間:2020-09-30
- 下載次數:次
E-mail: xej@cc.net.cnISSN 100- 3044Computer Knowledge and Technoloy電墮知識與技術(shù)htp:/:/w/w dnzs.net.cnVol.6.No.13, May 2010, p.3426-3428Tel:+86 -551-5690963 5690964MAPEASY數字地圖的優(yōu)化張?chǎng)╈F,劉蓮花了,肖娟'(1.湘南學(xué)院計算機系,湖南郴州430002.華南師范大學(xué)增城學(xué)院計算機系,廣東廣州511363)摘要:介紹了基于預生成的數字地圖技術(shù)及MapEasy開(kāi)源項目,針對MapEasy只支持正方形地圖和內存泄露的問(wèn)題,對MapEay進(jìn)行了相應優(yōu)化,提供了對矩形地圍的支持,降低了內存使用量。并用一個(gè)簡(jiǎn)單的地圍實(shí)例說(shuō)明了使用MapEasy制作教字地圍的方法。中團分類(lèi)號:TP393文獻標識碼:A文章編號:1009- -3044(2010)13- -3426 -03Optimization of MAPEASY Digital MapZHANG Wen-Fen', LIU Lian-Hua2, XIAO Juan'(1.Faculty of Computer, Xiangnan University, Chenzhou 423000, Chin; 2.Faculty of Computer, Zengcheng College of SCNU,Guangzhou 511363, China)square map model and has memory leak problem. To counter these problems, this paper carried on the corresponding optimizaion to pro-vide rectangular map support and reduce memory usage. Finally, a simple map example is given to ilustrate the applications of MapEasydigital map.Key words: WebGIS; digial map; pre- generation tchnology; MapEasyWebGIS是在Intermet或Intranet網(wǎng)絡(luò )環(huán)境下的一種兼具存儲、處理、分析.顯示與應用地理信息的計算機系統"。WebGIS 的應用日益廣泛,除了常見(jiàn)的網(wǎng)上電子地圖查詢(xún)之外,還因其可以直觀(guān)地表示與地理位置相關(guān)的各種數據而應用于通信、水利、環(huán)境等專(zhuān)業(yè)軟件中。目前,實(shí)現WebGIS地圖發(fā)布主要有2類(lèi)技術(shù):一類(lèi)是以ArcIMS為代表的矢量地圖動(dòng)態(tài)生成技術(shù);另一類(lèi)是近年來(lái)在公共地圖服務(wù)領(lǐng)域廣泛應用的基f瓦片方式的地圖預生成技術(shù).如Google Map, 5lditu, Mapbar等叫。在Google Maps推出之前,網(wǎng)絡(luò )數字地圖主要使用傳統的WebGIS技術(shù),而GoogleMaps則采用地圖預生成(又稱(chēng)地圖切片)技術(shù)及Ajax客戶(hù)端編程技術(shù)實(shí)現,這種實(shí)現方案響應速度快、用戶(hù)體驗好服務(wù)器負簡(jiǎn)輕,并且不依賴(lài)專(zhuān)業(yè)GIS服務(wù)平臺。目前,絕大多數網(wǎng)絡(luò )數字地圖都采用了類(lèi)似技術(shù)方案?;诖祟?lèi)技術(shù)的數字地圖開(kāi)源項目也應運而生,比較薯名的有MapEasy".OpenLayers等。本文將針對MapEasy的不足對其進(jìn)行了一些優(yōu)化,將地圖形狀從正方形擴展為矩形并且減少了內存使用量,最后用一個(gè)簡(jiǎn)單的地圖實(shí)例說(shuō)明了使用MapEasy制作數字地圖的方法。1關(guān)鍵技術(shù)與MapEasy簡(jiǎn)介網(wǎng)絡(luò )數字地圖系統--般采用B/S結構.即把瀏覽器作為客戶(hù)端程序。傳統的WebCIS方式是實(shí)時(shí)生成地圖的,即客戶(hù)端每產(chǎn)生- - 次地圖請求,服務(wù)器都重新生成相應的地圖圖片發(fā)送到客戶(hù)端。這意味著(zhù)每次拖動(dòng)和縮放地圖都需要服務(wù)器端的GIS軟件實(shí)時(shí)生成圖片。這種方式的響應速度慢、服務(wù)器負載重。地圖預生成技術(shù)則把預先生成的地圖切割成許多大小相同的小圖片存放在服務(wù)器硬盤(pán)目錄下.地圖以鏈接圖片的方式在瀏覽器端拼接和顯示,這些小圖片通常被稱(chēng)為“瓦片"。每次拖動(dòng)和縮故地圖時(shí),由客戶(hù)端的JavaSeript腳本來(lái)計算所需顯示的瓦片及其顯示位置,并鏈接服務(wù)器目錄下存放的相應瓦片,最終在瀏覽器窗口中顯示出地圖。地圖的每個(gè)縮放級別對應了不同比例尺的地圖.放大的級別越高地圖越清晰組成地圖的瓦片數目就越多。例如Coogle地圖,現共有20個(gè)縮放繳別,每個(gè)級別的完整地圖都是由此級別的瓦片拼合而成,相鄰級別的地圖大小相差4倍,即每張較低級別的瓦片對應4張較高級別的瓦片。若第1級地圖的瓦片數為1,則后續級別的瓦片數分別為4.16.64... ,這種瓦片組織形式又被稱(chēng)為瓦片金字塔模型。Ajax是Asynchronous Javascript and XML的縮寫(xiě),是幾項技術(shù)以新的方式組合而成。主要包括JavaSeript XML、DOM等。JavaScript是一種基于對象和事件驅動(dòng)的Web瀏覽器端腳本語(yǔ)言,可以用它來(lái)響應對Web頁(yè)面的操作并通過(guò)DOM操縱網(wǎng)頁(yè)元素、通過(guò)XMLHtpRequest對象讀取服務(wù)器數據。AJAX讓開(kāi)發(fā)者在瀏覽器端更新網(wǎng)頁(yè)內容而不必刷新頁(yè)面,使基于瀏覽器的應用程序響應速度更快、更具交互性。中國煤化工收稿日期:2010-03-07THCNMHG基金項目:湖南省教育廳科研基金資助項目(09C921)作者簡(jiǎn)介:張?chǎng)╈F(1976-),女,湖南澧縣人,講師,碩士研究生,主要研究方向為智能算法;劉蓮花(1982-),女,江西贛州人,助教,碩士研究生,主要研究方向為困形圍像處理;肖娟(1982- ),女,湖南永興人,講師,學(xué)士,主要研究方向為混威形式。3426 .軟件設計開(kāi)發(fā).......本欄目責任編翼:謝媛媛第6卷第13期(2010年5月)Computer Knowedge and Technlogy電腦知識與技術(shù)MapEasy是基于瓦片預生成技術(shù)的開(kāi)源項目,實(shí)現了基本的數字地圖功能和簡(jiǎn)單地物標注等,是一個(gè)輕量級的客戶(hù)端JS庫。MapEasy只支持正方形地圖模型,沒(méi)有提供對矩形地圖的支持,另外MapEasy占用內存較多,并且隨著(zhù)對地圖拖放等操作的增加,內存使用量會(huì )快速上升,本文將針對這些不足進(jìn)行改進(jìn)。2 MapEasy的優(yōu)化本文使用的MapEasy版本為mapapi0.4alpha,可在網(wǎng)絡(luò )上下載其壓縮包,解壓后的文件夾作為網(wǎng)站根目錄。程序均在IE6.0 中測試通過(guò)。2.1對矩形地圖的支持在MapEasy中.常量MapModelLirsiZoomTileNum為地圖模型第1個(gè)縮放等級的瓦片敷,其默認值為1,可以在定制地圖時(shí)根據需要設置。其它等級地圖的總瓦片數則用縮放繳別、相鄰二級之間的縮放比例及MapMoeLisfstooTilNiuemn計算得出。變量bor-derTilesNum為地圖某-縮放級別的邊緣瓦片數,由此級地圖的總瓦片數開(kāi)平方根得出,即borderTilesNum既是組成此級地圖的瓦片的行數,也是瓦片的列數。這就決定了MapEasy的地圖模型只支持正方形地圖(當瓦片為正方形時(shí))。為支持矩形 地圖,需要增加2個(gè)常獻,分別表示地圖模型第1個(gè)縮放等級每行和每列的瓦片數.如MapMoelsrsloomBordereTileNumX和MapMedeil.rstZoomBorderTileNumY。還需增加2個(gè)變量,分別表示地圖其它縮放等級每行和每列的瓦片數,如border-TlesNumX和borderTilesNumY。具體的修改步驟如下:1)修改MapModeljs文件①增加2個(gè)地圖模型常量:MapModel.frslZoomBorderTileNumX= 1;MapModel.irstZoomBorderfileNumY = 1;②將Zoom函數中定義邊緣片數this brderTileNuem的1行用以下2行替換:thisborderTilesNumX;thisborderTilesNumY;③將Zoom函數中的"“his brderTIlesNum = MthsgqtstilesNu);"用以下2行替換:this.borderTilesNumX =Math.pow(MapModel.scalePara, (this.Jevel - 1)*MapModel.irsZoomBorderTileNumX;this. borderTilesNumY =Math.pow(MapModel.scalePara, (hislevel - 1)*MapModel.fistoomBorderTileNumY;④將Zoom函數中所有的borderTilesNum按情況分別替換為borderTilesNumX 或者borderTilesNumY。⑤將Zoom函數中的函數getBorderTilesNum用以下2個(gè)函數代替:,this.getBorderTilesNumX = function0 {retum thisborderTilesNumX;this.getBorderTilesNumY = unction0 {retum this,borderTilesNumY;2)修改文件apEvent.je.DragActionjs和ExrToolsWidetjs,將其中的函數名getBorderTilesNum 替換為getBorderTlesNumX或者getBorderTilsNumY。2.2對內存使用f的優(yōu)化在MapEasy數字地圖中,隨著(zhù)對地圖拖放等操作的增加,內存使用量會(huì )快速上升.這是因為某些不再使用的變量或對象所占的內存沒(méi)有被釋放。這種現象大多是由循環(huán)引用引起的.循環(huán)引用是指IE瀏覽器的COM組件產(chǎn)生的對象實(shí)例和網(wǎng)頁(yè)腳本引擎產(chǎn)生的對象實(shí)例相互引用。IE使用引用計數的方法來(lái)釋放內存,只有當一個(gè)變量或對象的引用計數為零時(shí),其內存才能被釋放.而相互引用會(huì )使得雙方的引用計數都不為零從而導致其內存不能釋放。一般的解決方法是:對其中一個(gè)對象直接賦null值以破壞引用鏈。在拖放MapEasy地圖時(shí),腳本程序主要的工作是對地圖圖片的重新拼裝和地圖上各標記的重新顯示,因此重點(diǎn)對這2部分代碼進(jìn)行了修改。具體修改步驟為:1)修改MapPaneWidgetjis文件,在paintMap函數的末尾增加如下代碼:oldTileNodes = null;tile =null;tilelmage =null;setTimout(CollectGarbage, 1);2)修改ExToolsWidgtjs文件.在適當的位置增加如下代碼:icon =nll;mapDiv =null;中國煤化工markerDiv =nul;markerShadowDiv =nul;MHCNMHG3地圖實(shí)例本節將以一個(gè)簡(jiǎn)單的電子地圖實(shí)例來(lái)說(shuō)明MapEasy的應用方法。實(shí)現步驟如下:本欄目責任編輯:邀媛媛........軟件設計開(kāi)發(fā)..3427.Computer Knowledge and Technology電腦知識與技術(shù)第6卷第13期(2010年5月)1)準備圖片素材一組2級縮放的地圖瓦片,第1級2張,第2級8張,共10張。瓦片大小為256x256像素。2)瓦片的存放與編號在站點(diǎn)根目錄下新建mapimages文件夾,用來(lái)存放瓦片圖像文件。在此文件夾下再新建zoom_ 1、zoom 2二個(gè)文件夾。將第1級的瓦片復制到zoom, 1中,并對瓦片編號,用此編號作為瓦片的文件名。編號表示了瓦片在拼成此級地圖全圖時(shí)的擺放位置,格式為x y,其中x表示瓦片位于本級地圖全圖中第幾行,y則表示列數,均從0開(kāi)始編號。3)將網(wǎng)站根目錄下的網(wǎng)頁(yè)demol.anoy,html作為本例的首頁(yè).需要舔加或修改的代碼有:
-
C4烯烴制丙烯催化劑 2020-09-30
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-09-30
-
生物質(zhì)能的應用工程 2020-09-30
-
我國甲醇工業(yè)現狀 2020-09-30
-
JB/T 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規程 2020-09-30
-
石油化工設備腐蝕與防護參考書(shū)十本免費下載,絕版珍藏 2020-09-30
-
四噴嘴水煤漿氣化爐工業(yè)應用情況簡(jiǎn)介 2020-09-30
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-09-30
-
甲醇制芳烴研究進(jìn)展 2020-09-30
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-09-30