在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網(wǎng) 資料文庫(kù) 電子地圖API的設(shè)計(jì)和實(shí)現(xiàn)范文

電子地圖API的設(shè)計(jì)和實(shí)現(xiàn)范文

本站小編為你精心準(zhǔn)備了電子地圖API的設(shè)計(jì)和實(shí)現(xiàn)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫(xiě)作靈感。歡迎深入閱讀并收藏。

電子地圖API的設(shè)計(jì)和實(shí)現(xiàn)

電子地圖是利用地理信息系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)存儲(chǔ)技術(shù)等相結(jié)合而實(shí)現(xiàn)的一種新的地圖展現(xiàn)方式,已廣泛的應(yīng)用于各行各業(yè)。當(dāng)前的大部分電子地圖應(yīng)用都是采用瓦片地圖技術(shù),也有一小部分企業(yè)應(yīng)用仍然基于矢量地圖,兩種技術(shù)各有優(yōu)勢(shì)和缺點(diǎn)。但在當(dāng)下,前者的應(yīng)用應(yīng)該是略勝一籌,通過(guò)特定的地圖投影模型,把通過(guò)遙測(cè)技術(shù)而生成的矢量地圖,按固定的縮放比例和固定尺寸進(jìn)行切分,生成一張張幾KB至幾十KB大小的圖片,就容納大量的地理信息,無(wú)論是使用客戶(hù)端或者瀏覽器程序,地圖都能在短短幾秒內(nèi)顯示在用戶(hù)面前,如此性能優(yōu)越的用戶(hù)體驗(yàn),是動(dòng)則需要讀取幾百兆的矢量地圖客戶(hù)端技術(shù)所望塵莫及的。在國(guó)內(nèi)企業(yè)中,地理信息系統(tǒng)多為使用ArcGis等企業(yè)級(jí)GIS平臺(tái)或開(kāi)源的GeoServer平臺(tái),其矢量圖客戶(hù)端對(duì)終端計(jì)算機(jī)的硬件性能要求高,嚴(yán)重制約了GIS在國(guó)內(nèi)企業(yè)的應(yīng)用推廣,所以基于瓦片地圖技術(shù)的電子地圖api設(shè)計(jì),有著廣闊的應(yīng)用場(chǎng)景。

1電子瓦片地圖技術(shù)的基本概念

由于地球是球體,而我們?nèi)粘K褂玫牡貓D為方形,所以地圖就涉及到一個(gè)從經(jīng)緯度到平面的轉(zhuǎn)換過(guò)程,俗稱(chēng)地圖投影方法。而在不同的場(chǎng)合和用途下使用不同的地圖投影,不同的投影方法有不同的經(jīng)緯度到方形坐標(biāo)系的轉(zhuǎn)換公式,大多數(shù)互聯(lián)網(wǎng)地圖服務(wù)基本使用墨卡托投影。地面分辨率概念:地面分辨率類(lèi)似地圖中的比例尺,是像素與地面距離(米)的比例。以谷歌地圖為例,其地圖瓦片每個(gè)均為256×256像素,當(dāng)縮放級(jí)別為1時(shí),全球地圖大小為512×512像素,即有4個(gè)地圖瓦片,赤道的分辨率=赤道周長(zhǎng)距離(米)/512(像素)。當(dāng)縮放級(jí)別為2時(shí),赤道的分辨率為赤道周長(zhǎng)距離/1024,即地圖長(zhǎng)度=地圖寬度=256×2縮放等級(jí)像素。由此可見(jiàn),地面分辨率取決于兩方面,地圖縮放級(jí)別和緯度,縮放級(jí)別決定像素即地圖瓦片的數(shù)量,緯度決定該地圖等級(jí)下的地表距離。地面分辨率(米/像素)=(cos(緯度×pi/180)×2×pi×赤道半徑/米)/(256×2×縮放級(jí)別像素)。根據(jù)墨卡托投影,因?yàn)樵诿總€(gè)縮放級(jí)別下,地圖所含的像素都不同,因此地圖瓦片的數(shù)量也不同。每個(gè)瓦片都有一個(gè)坐標(biāo)值,從左上角的(0,0)到右下角的(2縮放等級(jí)–1,2縮放等級(jí)–1)。對(duì)一個(gè)已知像素的XY坐標(biāo)值,其所在的瓦片坐標(biāo)值為,tileX=floor(pixelX/256),tileY=floor(pixelY/256)。

2電子地圖API的總體設(shè)計(jì)

2.1電子地圖API基本功能電子地圖API是一套由編程語(yǔ)言編寫(xiě)的應(yīng)用程序接口,能夠構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用,包含了電子地圖各項(xiàng)基本功能的接口。基本地圖功能:展示平面地圖、衛(wèi)星地圖等,拖拽、移動(dòng)、縮放地圖等。地圖圖層功能:支持重設(shè)地圖底圖、地圖上疊加實(shí)時(shí)交通圖層或自定義圖層功能。覆蓋物功能:支持在電子地圖上顯示點(diǎn)、線、面、熱區(qū)、行政區(qū)劃、用戶(hù)自定義覆蓋物等;地圖控件展示功能:支持地圖縮放控件、工具條、比例尺等。

2.2電子地圖API邏輯架構(gòu)地圖API界面容器是用戶(hù)所看到的界面,是其他所有層的容器。地圖層容器負(fù)責(zé)存放各種類(lèi)型的地圖,如衛(wèi)星圖、2D平面圖等,這些圖可以按上一節(jié)所說(shuō)的方法,把地圖按256×256像素預(yù)先切割好,并存放在文件服務(wù)器或者CDN上,以供電子地圖API讀取并顯示。該容器會(huì)隨鼠標(biāo)拖拽或者觸摸移動(dòng)事件而平移,地圖也跟隨容器而平移。覆蓋物層容器負(fù)責(zé)顯示點(diǎn)、線、多邊形、標(biāo)注等自定義圖形,如顯示導(dǎo)航路線、用戶(hù)自定義的矢量標(biāo)注物。動(dòng)作響應(yīng)層負(fù)責(zé)處理界面事件,如鼠標(biāo)點(diǎn)擊、鼠標(biāo)滾輪、鼠標(biāo)拖拽、手指觸摸移動(dòng)、雙手放大縮小等,地圖API根據(jù)該層響應(yīng)的事件來(lái)做相應(yīng)操作,如移動(dòng)地圖圖層、放大縮小地圖、顯示導(dǎo)航路線圖等。控件層容器負(fù)責(zé)顯示地圖的工具控件,如鷹眼、工具條、比例尺、地圖縮放控件。

2.3事件流程設(shè)計(jì)整個(gè)電子地圖API由地圖層容器、覆蓋物層容器、動(dòng)作響應(yīng)層、控件層容器組成,除動(dòng)作響應(yīng)層以外,其他層都能會(huì)包含多個(gè)對(duì)象,這些對(duì)象都可能會(huì)對(duì)鼠標(biāo)、觸摸事件做出響應(yīng),事件發(fā)生后,每層的該事件發(fā)生位置的對(duì)象都會(huì)被響應(yīng)該事件,處理完后會(huì)把事件傳給下一層。如用戶(hù)在地圖上點(diǎn)擊鼠標(biāo),控件層容器層先的相關(guān)對(duì)象先響應(yīng)該事件,處理完成后再把事件傳遞給覆蓋物層容器,最后是傳遞給地圖層容器,逐層傳遞。但有些對(duì)象會(huì)屏蔽下一層容器的對(duì)象對(duì)上述事件的響應(yīng)(如拖動(dòng)地圖縮放控件時(shí)候,地圖、地圖上的標(biāo)注不會(huì)跟隨移動(dòng)),使用觀察者模型作設(shè)計(jì)能有效解耦地圖API的各個(gè)模塊。觀察者模式定義了對(duì)象之間依賴(lài)關(guān)系,發(fā)生改變的對(duì)象稱(chēng)之為觀察目標(biāo),而被通知的對(duì)象稱(chēng)之為觀察者,當(dāng)一個(gè)對(duì)象改變其狀態(tài)時(shí),它的所有觀察者都會(huì)收到通知,并按既定的策略做出反映。一個(gè)觀察目標(biāo)可以對(duì)應(yīng)多個(gè)觀察者,而且這些觀察者之間沒(méi)有相互聯(lián)系,所以可以根據(jù)需要增加和刪除觀察者,使得系統(tǒng)更易于擴(kuò)展,觀察者模式又稱(chēng)為-訂閱模式。

3電子地圖API的實(shí)現(xiàn)

電子地圖API最關(guān)鍵是顯示服務(wù)器上的瓦片地圖,所以動(dòng)作響應(yīng)層和地圖層是整個(gè)API的重點(diǎn),而整個(gè)動(dòng)作響應(yīng)層的中心點(diǎn)和動(dòng)作響應(yīng)層的長(zhǎng)寬是決定加載哪些瓦片地圖的關(guān)鍵所在。由于地圖是經(jīng)緯度球面坐標(biāo)系統(tǒng)映射到墨卡托平面坐標(biāo)系統(tǒng)的結(jié)果,地圖層容器存放的正是墨卡托平面坐標(biāo)系統(tǒng)的瓦片地圖,通過(guò)地圖投影類(lèi)中的公式,能計(jì)算出某縮放等級(jí)下電子地圖中心點(diǎn)經(jīng)緯度對(duì)應(yīng)墨卡托平面坐標(biāo)系的坐標(biāo),然后把該坐標(biāo)作為地圖層和動(dòng)作響應(yīng)層的中心點(diǎn),地圖層容器根據(jù)動(dòng)作響應(yīng)層的中心點(diǎn)在墨卡托平面坐標(biāo)系統(tǒng)的位置和地圖窗口的長(zhǎng)度、寬度,計(jì)算出地圖層應(yīng)該加載哪些瓦片地圖并加載。當(dāng)?shù)貓D拖動(dòng)時(shí),地圖API根據(jù)動(dòng)作響應(yīng)層的XY軸平移量,根據(jù)上述辦法判斷出加載的瓦片地圖,哪些在地圖緩存隊(duì)列的圖片不再需要。地圖緩存隊(duì)列大小固定,有助控制內(nèi)存消耗量,當(dāng)需加載的瓦片地圖不在緩存隊(duì)列中,則按LRU策略刪除不在地圖窗口中的地圖瓦片,并加載新的。為改善用戶(hù)體驗(yàn),地圖層容器面積稍微比動(dòng)作響應(yīng)層大,地圖緩存隊(duì)列的大小也設(shè)成比地圖層容器稍大,以免用戶(hù)拖動(dòng)地圖時(shí)候出現(xiàn)白邊。

4結(jié)語(yǔ)

本文通過(guò)提出新的基于瓦片地圖技術(shù)的電子地圖API設(shè)計(jì),實(shí)現(xiàn)了高性能的瓦片地圖展示辦法。通過(guò)采用分層技術(shù)和觀察者模式的設(shè)計(jì)方法,地圖層容器、覆蓋物層容器、動(dòng)作響應(yīng)層、控件層容器能做到各司其責(zé),在其實(shí)現(xiàn)中均能及時(shí)響應(yīng)各種用戶(hù)動(dòng)作,根據(jù)此設(shè)計(jì),作者分別用Javascript和Actionscript3分別編寫(xiě)地圖API,由于采取了單線程設(shè)計(jì)并結(jié)合最新的JavascriptWEBGL技術(shù)和Flashstage3D技術(shù),性能較現(xiàn)有的商用、開(kāi)源地圖API有大幅度提高,在性能較差的設(shè)備也能表現(xiàn)良好,增強(qiáng)了地理信息系統(tǒng)在企業(yè)中的使用度。

作者:簡(jiǎn)瑋俠 單位:廣東電網(wǎng)有限責(zé)任公司中山供電局信息中心

主站蜘蛛池模板: 尤物天堂| 99在线精品免费视频九九视 | 亚洲无圣光一区二区 | 亚洲乱码在线视频 | 国内精品一区二区三区αv 国内精品久久久久不卡 | 中文字幕在线永久视频 | 国产成人综合久久精品下载 | 国产精品高清视亚洲一区二区 | 亚洲综合色丁香婷婷六月图片 | 在线一区免费播放 | 色五月激情五月 | 亚洲精品国产成人专区 | 5月丁香6月婷婷 | 亚洲男人的天堂久久精品 | 久久久久久亚洲精品中文字幕 | 国内外精品免费视频 | 免费观看的美女视频网站 | 久久精品一 | 一区二区三区欧美日韩国产 | 亚洲阿v天堂2021在线观看 | 亚洲一区二区三区久久久久 | 中文字幕电影资源网站大全 | 激情婷婷小说 | 综合激情婷婷 | 麻豆精品国产 | 在线观看成人小视频 | 羞羞网站免费观看 | 国产手机在线观看视频 | 久久se精品一区精品二区 | 亚洲国产成人久久一区二区三区 | 欧美亚洲自拍偷拍 | 亚洲人成电影在线播放 | 九九在线观看高清免费 | 亚洲视频精品 | 男人天堂国产 | 男人天堂bt | 色视频在线观看免费 | 国产在线观看一区 | 婷婷丁香激情五月 | 亚洲视频在线观看免费 | 水蜜桃po |