0
点赞
收藏
分享

微信扫一扫

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()]


});



上述代码使用了HTTP协议、GeoJSON格式,值得注意的是什么格式实际上是协议对象的一部分,Fixed策略对象也被使用,但本质上在矢量图层上请求了一次要素,没有再次要素请求。


举报

相关推荐

0 条评论