色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>通信技術(shù)>衛(wèi)星通信>

GIS地圖開(kāi)發(fā)(二) - GIS地圖開(kāi)發(fā)

2018年01月15日 18:33 電子發(fā)燒友網(wǎng) 作者: 用戶評(píng)論(0
關(guān)鍵字:GIS(42039)

五、 封裝地圖

有了坐標(biāo)轉(zhuǎn)換類、圖層類、圖層列表類,就可以利用它們做出一個(gè)具有縮放平移、圖層管理等功能的地圖了,但為了更方便地對(duì)地圖進(jìn)行操作,還需要對(duì)這些類進(jìn)行組合封裝。新建一個(gè)類WeatherMap,添加Coordinator和LayerList類的實(shí)例作為它的屬性,為了更符合大家操作習(xí)慣,將Coordinator類的實(shí)例作為私有成員,將地圖坐標(biāo)轉(zhuǎn)換等方法加入WeatherMap類,也就是說(shuō)地圖坐標(biāo)轉(zhuǎn)換中,不訪問(wèn)Coordinator,而要調(diào)用WeatherMap類的方法。類圖如下:

?GIS地圖開(kāi)發(fā)

再回到抽象圖層類CustomLayer,它有一個(gè)成員Map,即為WeatherMap對(duì)象,在將圖層加入圖層列表時(shí)會(huì)自動(dòng)賦值。在編寫(xiě)CustomLayer的子類時(shí),可調(diào)用它來(lái)進(jìn)行坐標(biāo)轉(zhuǎn)換和地圖操作。

為了使地圖在繪制復(fù)雜圖形過(guò)程中不至于假死,并在繪圖過(guò)程中能隨時(shí)中斷繪圖,如快速縮放平移地圖中可終止前次繪圖過(guò)程直接繪制最后一次,地圖繪制使用了多線程,但多線程增加了代碼編寫(xiě)難度,特別是多線程操作UI,對(duì)程序流程造成了一定混亂,程序結(jié)構(gòu)受到影響,所幸并不會(huì)對(duì)圖層代碼造成困難。

六、 再次封裝-增加UI

上面已完成了地圖繪制的核心代碼,為了使代碼編寫(xiě)更加容易,需要對(duì)WeatherMap類再次進(jìn)行封裝(MapView類),加入U(xiǎn)I部分,即給地圖加一個(gè)具有界面的殼,并在上面實(shí)現(xiàn)地圖的操作如縮放、拖動(dòng)功能。

MapView從PictureBox類繼承,內(nèi)建了WeatherMap類的實(shí)例,在MapView的Refresh()方法中調(diào)用WeatherMap.Render()對(duì)地圖進(jìn)行繪制。

為了完成對(duì)地圖的操作,F(xiàn)reeMicaps定義一個(gè)IMapTool接口,包含了鼠標(biāo)和鍵盤(pán)操作方法,MapView類內(nèi)建一個(gè)IMapTool接口成員,MapView的鼠標(biāo)和鍵盤(pán)操作,將被IMapTool接口的實(shí)例接管,在實(shí)現(xiàn)IMapTool接口的類中,可對(duì)地圖做各種操作,如平移、縮放等操作,這個(gè)對(duì)象可隨時(shí)替換以實(shí)現(xiàn)不同方式的地圖操作。在FreeMicaps中,已完成一個(gè)實(shí)現(xiàn)IMapTool接口的類ZoomTool,此類為默認(rèn)的地圖縮放和平移工具。IMapTool接口類圖如下:

?GIS地圖開(kāi)發(fā)

另外,在MapView中,還引入了一個(gè)當(dāng)前圖層的概念CurrentLayer,用它來(lái)表示當(dāng)前操作的圖層,后面用它來(lái)實(shí)現(xiàn)圖層元素拾取、圖層工具條等功能。

MapView類圖如下:

?GIS地圖開(kāi)發(fā)

七、 總覽

地圖部分類關(guān)系圖如下:

?GIS地圖開(kāi)發(fā)

地圖繪制部分活動(dòng)圖如下:

?GIS地圖開(kāi)發(fā)

以上已經(jīng)介紹完FreeMicaps地圖部分設(shè)計(jì)框架,相信大家的已對(duì)設(shè)計(jì)思路已有一定了解,此框架不僅適用于天氣圖分析軟件,也適用于一般的GIS系統(tǒng)。本文僅對(duì)FreeMicaps的地圖部分框架進(jìn)行了介紹,未涉及到具體的地圖數(shù)據(jù)讀取及繪制,這些將在下一篇文章中介紹。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:彭菁 )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 国产亚洲精品久久久久久禁果TV | 亚洲AV精品一区二区三区不卡| 蜜芽资源高清在线观看| 99九九99九九九视频精品| 日韩欧无码一区二区三区免费不卡| 国产福利一区二区精品| 野花影院手机在线观看| 欧美内射AAAAAAXXXXX| 国产午夜高潮熟女精品AV| 最美女人体内射精一区二区| 日本G奶乳液汁| 激情丛林电影完整在线| porono日本xxx| 亚洲AV无码国产精品色在线看| 快播电影官方网站| 高干紧射H后入| 中国明星16xxxxhd| 特黄AAAAAAA片免费视频| 久久偷拍免费2017| 国产不卡无码高清视频| 做暖暖视频在线看片免费| 桃花在线观看播放| 免费视频亚洲| 国产主播福利一区二区| china18一19 第一次| 亚洲欧洲日韩国产一区二区三区| 欧美一级黄色影院| 久久高清内射无套| 国产精品久久久久久久久爆乳 | 好大快用力深一点h视频| chinese东北老年tv视频| 亚洲欧美一区二区三区九九九| 琪琪see色原网色原网站| 久草在线精彩免费视频| 国产AV一区二区三区日韩| 91九色麻豆| 亚洲视频免费看| 午夜国产羞羞视频免费网站| 欧美国产在线一区| 麻豆一二三四区乱码| 精品国产美女AV久久久久|