天天看點

Openlayers學習筆記——Format, Protocol, Strategy類

為了建立更有用的應用,我們介紹Formate、Protocol、Strategy三個類,我們可以更深層次的控制矢量圖層的行為。

這三個類的作用:

% 從外部資源加載資料如KML檔案、GeoJSON檔案、WFS服務等;

% 以一定的格式儲存使用者建立要素;

% 采用叢集政策對多數點進行分組;

% 建立更多互動功能的網絡應用程式。

1.簡單介紹三個類

% Protocol類

Protocol類控制矢量圖層怎麼與資料源交流,Protocol.HTTP和Protocol.WFS是Protocol的兩個子類,HTTP協定類能夠直接與矢量資料源連接配接,WFS協定能夠連接配接WFS服務。

% Format類

Formate類可以将指定的資料檔案(KML檔案)轉化為地圖中顯示的要素對象,還可以将要素對象轉化成指定檔案格式,如KML、GeoJSON等。OpenLayers的開發者版本支援更多地資料格式和協定。

更重要的一點是,Format類處理要素資料的序列化和煩序列化,序列化是程式設計中常用的術語,目的是為了提取代碼中的對象,将對象轉換成指定形式,如檔案、可讀性字元串。這樣這些對象就能在代碼外被調用。反序列化是個相反的過程——将檔案或者字元串轉換成代碼中的對象。

% Strategy類

Strategy類是用來控制伺服器請求的建立和伺服器傳回資料的處理。Strategy類本身是基類,有很多子類可以引用,如Strategy.BBOX和Strategy.Cluster,不同于Protocol類和Format類的可單獨使用,Strategy類需要多個strategies一起使用。

就以BBOX類為例說明一下,我們可以通過BBOX政策向伺服器請求可視範圍内的地圖,是以,BBOX首先決定怎麼建立請求,另一件事就是控制從伺服器傳回的資料的處理問題。

3. 三個類應用

%首先建立相關對象

map對象

%建立vector對象

var vector_layer =new OpenLayers.Layer.Vector('More Advances Vector Layer',

{

protocol:new OpenLayers.Protocol.HTTP({

url:'some_data.json',

format: new OpenLayers.Format.GeoJSON({})

}),

strategies:[new OpenLayers.Strategy.Fixed()]

});