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