好久沒(méi)來(lái)更新了,感覺(jué)仍有點(diǎn)兒興奮…… 以前做的一些OpenLayers的分析,又整理了一下——以前弄的圖片沒(méi)有顯示,現(xiàn)在基本可以了,發(fā)上來(lái),如果有需要了解的朋友可以瞅瞅。 寫(xiě)的不好,請(qǐng)大家原諒了,呵呵…… 一般來(lái)說(shuō),我們了解一個(gè)事物,先是從輪廓、外觀結(jié)構(gòu)去認(rèn)識(shí),然后再?gòu)膬?nèi)部更細(xì)部的去探究。拿做軟件來(lái)說(shuō)吧(就比如OpenLayers),先是在文檔設(shè)計(jì)它的框架體系,有個(gè)總體的結(jié)構(gòu),然后是各個(gè)模塊的設(shè)計(jì),再下來(lái)就是具體寫(xiě)代碼等。如果要分析一個(gè)做好的項(xiàng)目,恰恰與此相反,從具體的代碼中分析總結(jié)出系統(tǒng)框架(想當(dāng)初,開(kāi)發(fā)者在開(kāi)發(fā)OpenLayers 的時(shí)候,帶有項(xiàng)目框架的開(kāi)發(fā)文檔會(huì)是人手一冊(cè)的吧)。總結(jié)它的框架結(jié)構(gòu),由于本人水平有限,覺(jué)得很難,能寫(xiě)到哪兒算哪兒吧。
這張圖基本上把OpenLayers的體系結(jié)構(gòu)勾勒出來(lái)了,也就是我們看到的瀏覽器上地圖的內(nèi)部抽象表示。
圖上最底層的是OpenLayers的數(shù)據(jù)源Image、GML等等,實(shí)際上,它們都是OpenLayers.Layer的子孫類(lèi)。這些數(shù)據(jù)經(jīng)過(guò)渲染器OpenLayers.Renderer渲染,然后顯示在地圖的圖層Layer上。我們把整個(gè)地圖看作一個(gè)容器,這個(gè)地圖容器中還有一些特別的層和控件等。除此之外,還有綁定在Map和Layer上的一系列的待請(qǐng)求的事件。