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

關(guān)于GIS的圖形繪制方法的分析

2016-05-30 10:48:04王盼
科技風(fēng) 2016年14期
關(guān)鍵詞:方法

摘 要:地理信息系統(tǒng)是空間信息系統(tǒng)的一種特定形式,本文通過(guò)介紹地理信息系統(tǒng)(GIS)、函數(shù)轉(zhuǎn)換、繪圖、封裝地圖等基本知識(shí),詳細(xì)的分析了GIS的圖形繪制方法。

關(guān)鍵詞:地理信息系統(tǒng)(GIS);地圖繪制

地理信息系統(tǒng)(Geographic Information System或 Geo-Information system,GIS)稱為“地理學(xué)信息系統(tǒng)”,是空間信息系統(tǒng)的一種特定形式。需要在計(jì)算機(jī)硬、軟件系統(tǒng)的支持下,對(duì)整個(gè)或部分地球表層空間中的有關(guān)地理分布的數(shù)據(jù)進(jìn)行采集、儲(chǔ)存、運(yùn)算、分析、管理、描述、顯示的技術(shù)系統(tǒng)。

地理位置中的經(jīng)緯度坐標(biāo)只能在地理信息中代表為某個(gè)地點(diǎn)、標(biāo)志或方位,對(duì)于用戶理解和認(rèn)識(shí)周邊信息有一定的局限;在通過(guò)相關(guān)技術(shù)獲取到位置之后,了解了所處的地理環(huán)境,通過(guò)查詢和分析環(huán)境信息,為用戶的活動(dòng)提供信息支持與服務(wù),更注重用戶的需求,滿足用戶的各種體驗(yàn)。

一、地圖是通過(guò)函數(shù)的調(diào)用繪制出來(lái)的

地圖的繪制是對(duì)函數(shù)的基本操作,即使用繪圖語(yǔ)句畫出來(lái)的。從基礎(chǔ)的底層地圖繪制,就是使用繪圖函數(shù)繪制點(diǎn)、線、面、標(biāo)準(zhǔn)、柵格等組合起來(lái),就形成了一張地圖。

二、地圖繪制中的關(guān)鍵——坐標(biāo)轉(zhuǎn)換

.NET提供了大量繪圖方法,基本上都是以Graphics類的函數(shù)形式提供,包括各類幾何形狀、圖像、文字的繪制,通過(guò)這些方法可以畫出各種圖形。但是圖形的繪制和坐標(biāo)方位有著贊揚(yáng)聯(lián)系,使我們繪制的地圖可以轉(zhuǎn)換為地圖元素,即地理坐標(biāo)的經(jīng)緯度,需要解決坐標(biāo)轉(zhuǎn)換問(wèn)題。

首先了解一下轉(zhuǎn)換函數(shù):

///經(jīng)緯度

///屏幕坐標(biāo)

public Point WorldToScreen(PointF xy)

再一個(gè),有時(shí),還需要根據(jù)屏幕上點(diǎn)位置反算出它的經(jīng)緯度,如在需要顯示鼠標(biāo)指針處的經(jīng)緯度,所以還需要這么一個(gè)函數(shù):

///屏幕坐標(biāo)

///經(jīng)緯度

public PointF ScreenToWorld(Point xy)

有了這兩個(gè)函數(shù),就可以將以經(jīng)緯度表示的地理坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo),然后再屏幕繪圖了。

三、繪圖

有了坐標(biāo)轉(zhuǎn)換類Coordinator,就可以用經(jīng)緯度數(shù)據(jù)來(lái)繪圖了,如得到了經(jīng)緯度坐標(biāo)數(shù)據(jù),就可以將經(jīng)緯度數(shù)據(jù)轉(zhuǎn)換為屏幕坐標(biāo),然后用Graphics的方法來(lái)畫出來(lái)了,Graphics對(duì)象又從哪里來(lái)呢?可以從一個(gè)Image對(duì)象創(chuàng)建,也可以從一個(gè)控件的Paint事件中取得。

為了使用方便,F(xiàn)reeMicaps把符號(hào)繪制功能封裝到三個(gè)符號(hào)類中,以靜態(tài)方法提供。

.NET的繪圖是對(duì)GDI+的封裝,包括了對(duì)點(diǎn)、線、面等各種圖形元素的封裝,圖形圖像的繪制、坐標(biāo)旋轉(zhuǎn),各種反走樣和平滑等功能,功能十分強(qiáng)大,利用它可以繪出各種圖形。

四、圖層

為了使繪圖過(guò)程便于管理,可將繪圖過(guò)程分為組,如可以將一張地圖的繪制分為:交通地圖、建筑地圖、管道地圖、區(qū)域地圖等幾個(gè)過(guò)程,每次繪圖好像就是在一張玻璃上繪制,疊加起來(lái)就形成了一張地圖,這里把每次繪圖過(guò)程形象地稱為一個(gè)圖層。地圖分層后,圖層可以增刪,每個(gè)圖層可以單獨(dú)進(jìn)行隱藏、設(shè)置屬性等,更重要的是可以將利用面向?qū)ο蠹夹g(shù)把每個(gè)圖層當(dāng)做一個(gè)對(duì)象進(jìn)行管理。

對(duì)圖層進(jìn)行抽象,需要調(diào)用圖層繪制方法(Render),圖層標(biāo)題(LayerName)和用于表示數(shù)據(jù)源的字符串(DataSource)。用于表示繪圖樣式的設(shè)置的LayerStyle,加上一些輔助方法屬性,最終形成如下抽象圖層類(CustomLayer)。

FreeMicaps中,每種數(shù)據(jù)對(duì)應(yīng)一種圖層類,為了使圖層類編寫方便,使用了設(shè)計(jì)模式中的模板方法,定義繪制流程,主程序在調(diào)用圖層的Render()方法時(shí),會(huì)自動(dòng)判斷是否已經(jīng)讀入數(shù)據(jù),根據(jù)需要分析數(shù)據(jù)繪圖。

對(duì)于同一種類型數(shù)據(jù),需要從CustomLayer繼承新建一個(gè)圖層類。各種類型數(shù)據(jù)圖層的工作方式一樣,僅在數(shù)據(jù)讀取和繪制方面不同。所以,寫新圖層類時(shí),僅需實(shí)現(xiàn)DoLoad()和DoRender()兩個(gè)抽象方法,完成讀取數(shù)據(jù)和繪制圖層代碼即可。FreeMicaps里使用了字符串作為數(shù)據(jù)源標(biāo)識(shí),通用GIS系統(tǒng)對(duì)數(shù)據(jù)源進(jìn)行了抽象。

一張地圖有多個(gè)圖層,所以還需要將圖層放入一個(gè)列表,用于繪制地圖時(shí)遍歷圖層。調(diào)用每個(gè)圖層的Render()方法,形成一張完整的地圖。

圖層繪制是需要有順序的,在圖層的樣式(LayerStyle)中放了一個(gè)ZOrder屬性,通過(guò)它來(lái)控制圖層順序。但由于List本身的排序方法是一種“非穩(wěn)固排序”,也就是說(shuō)當(dāng)兩個(gè)圖層的ZOrder相等時(shí),它們的順序是不確定的,為了避免這個(gè)問(wèn)題,F(xiàn)reeMicaps從CollectionBase繼承了一個(gè)類LayerList,實(shí)現(xiàn)對(duì)圖層的管理,并實(shí)現(xiàn)了IXmlSerializable接口,完成圖層序列化功能。

FreeMicaps中,每種數(shù)據(jù)對(duì)應(yīng)一種圖層類,為了使圖層類編寫方便,使用了設(shè)計(jì)模式中的模板方法,定義繪制流程,主程序在調(diào)用圖層的Render()方法時(shí),會(huì)自動(dòng)判斷是否已經(jīng)讀入數(shù)據(jù),根據(jù)需要讀數(shù)據(jù)繪圖。

五、封裝地圖

有了坐標(biāo)轉(zhuǎn)換類、圖層類、圖層列表類,就可以利用它們做出一個(gè)具有縮放平移、圖層管理等功能的地圖了,但為了更方便地對(duì)地圖進(jìn)行操作,還需要對(duì)這些類進(jìn)行組合封裝。

新建一個(gè)類WeatherMap,添加Coordinator和LayerList類的實(shí)例作為它的屬性,將Coordinator類的實(shí)例作為私有成員,將地圖坐標(biāo)轉(zhuǎn)換等方法加入WeatherMap類,調(diào)用WeatherMap類的方法。

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

為了使地圖在繪制復(fù)雜圖形過(guò)程中不至于BUG,需要在繪圖過(guò)程中能隨時(shí)中斷繪圖,如快速縮放平移地圖中,可終止前次繪圖過(guò)程直接繪制最后一次,就實(shí)現(xiàn)了地圖繪制的多線程,特別是多線程操作UI,對(duì)程序流程造成了一定混亂。

六、再次封裝-增加UI

上面已完成了地圖繪制的核心代碼,為了使代碼編寫更加容易,需要對(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)和鍵盤操作方法,MapView類內(nèi)建一個(gè)IMapTool接口成員,MapView的鼠標(biāo)和鍵盤操作,將被IMapTool接口的實(shí)例接管,在實(shí)現(xiàn)IMapTool接口的類中,可對(duì)地圖做各種操作,如平移、縮放等操作,這個(gè)對(duì)象可隨時(shí)替換以實(shí)現(xiàn)不同方式的地圖操作。

在FreeMicaps中,已完成一個(gè)實(shí)現(xiàn)IMapTool接口的類ZoomTool,此類為默認(rèn)的地圖縮放和平移工具。

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

通過(guò)以上論述的方法,可以對(duì)地圖的開發(fā)有了全面、透徹的了解,便于開發(fā)人員對(duì)地圖系統(tǒng)的優(yōu)化和升級(jí)。文章對(duì)GIS系統(tǒng)的論述僅限于基礎(chǔ)應(yīng)用和開發(fā),不妥之處請(qǐng)批評(píng)指正。

參考文獻(xiàn):

[1] 朱洪軍.基于GIS的移動(dòng)終端LBS系統(tǒng)建設(shè)與實(shí)現(xiàn)[D].華東師范大學(xué),2008.

[2] 李海艷.移動(dòng)GIS的概念體系研究[D].長(zhǎng)安大學(xué),2006.

作者簡(jiǎn)介:

王盼(1985-),男,漢族,北京人,本科,工程師,單位:國(guó)家新聞出版廣電總局北京廣播電視維護(hù)中心,研究方向:廣電系統(tǒng)節(jié)目傳輸和調(diào)度。

猜你喜歡
方法
學(xué)習(xí)方法
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 免费看黄片一区二区三区| 全部免费毛片免费播放| 97av视频在线观看| 国产高清又黄又嫩的免费视频网站| 国产视频你懂得| 国产成年女人特黄特色毛片免| 国产成人综合欧美精品久久| 91精品视频在线播放| 国产在线精彩视频论坛| 区国产精品搜索视频| 国产青榴视频| 美女裸体18禁网站| 亚洲女人在线| 日韩精品毛片人妻AV不卡| 日本人妻一区二区三区不卡影院| 国产成人区在线观看视频| 欧美亚洲日韩不卡在线在线观看| 波多野结衣AV无码久久一区| 亚洲成a人片在线观看88| 99爱视频精品免视看| 国产天天射| 最新精品久久精品| 一本色道久久88| 亚洲人人视频| 呦视频在线一区二区三区| 国产精品香蕉在线| 欧美综合一区二区三区| 欧美性天天| 人妖无码第一页| 亚洲无码不卡网| 噜噜噜久久| 久久这里只有精品免费| 一级在线毛片| 99久久精品视香蕉蕉| AV熟女乱| 亚洲最大在线观看| 一级毛片基地| 中文字幕欧美日韩| 国产小视频免费观看| 亚洲色图另类| 国产国产人在线成免费视频狼人色| 农村乱人伦一区二区| 国产高清在线观看91精品| 在线看片国产| 超碰精品无码一区二区| 中国美女**毛片录像在线| 呦女精品网站| 伊人色综合久久天天| 久久精品中文字幕少妇| 国产亚洲视频免费播放| 波多野结衣中文字幕一区二区| 91在线免费公开视频| 美女无遮挡拍拍拍免费视频| 57pao国产成视频免费播放| 亚洲综合色吧| 日韩精品一区二区三区视频免费看| 精品国产三级在线观看| 99久久精品久久久久久婷婷| 精品伊人久久久大香线蕉欧美 | 国产精品伦视频观看免费| 亚洲欧美成人影院| 亚洲大尺度在线| 欧美自拍另类欧美综合图区| 中文字幕日韩欧美| 91精品国产自产在线观看| 欧美一区二区三区不卡免费| 91在线无码精品秘九色APP| 日韩免费视频播播| 人妖无码第一页| 青青草91视频| 国产精品一区在线麻豆| 91精品国产自产在线老师啪l| 亚洲高清在线天堂精品| 亚洲三级成人| 久久国产黑丝袜视频| 国产精品真实对白精彩久久 | 日韩欧美网址| 免费国产小视频在线观看| 在线欧美一区| 国产在线观看一区精品| 91丝袜美腿高跟国产极品老师| 日韩国产亚洲一区二区在线观看|