OpenLayers项目分析——(一)项目介绍

OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,目前的最高版本是2.7 V,通过BSD License 发行。它实现访问地理空间数据的方法都符合行业标准,比如OpenGIS的WMS和WFS规范, OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件。

  采用OpenLayers作为客户端不存在浏览器依赖性。由于OpenLayers采用JavaScript语言实现,而应用于Web浏览器中的DOM(文档对象模型)由JavaScript实现,同时,Web浏览器(比如IE,FF等)都支持DOM 。

  OpenLayers APIs采用动态类型脚本语言JavaScript编写,实现了类似与Ajax功能的无刷新更新页面,能够带给用户丰富的桌面体验(它本身就有一个Ajax类,用于实现Ajax功能)。

  目前,OpenLayers所能够支持的Format有:XMLGML、GeoJSONGeoRSS、JSON、KML、WFS、WKT(Well-Known Text)。在OPenlayers.Format名称空间下的各个类里,实现了具体读/写这些Format的解析器。

  OpenLayers所能够利用的地图数据资源“丰富多彩”,在这方面提供给拥护较多的选择,比如WMS、WFSGoogleMap、KaMap、MSVirtualEarth、WorldWind等等。当然,也可以用简单的图片作为源。

第一次使用OpenLayers:

  到它的官方网站http://www.openlayers.org下载他的压缩包,解压后可以看到其中的一些目录和文件,拷贝目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的Scripts目录下(当然,这个只是例子,您网站的目录结构您自己说得算,只要保证OpenLayers.js,/lib,/img在同一目录中即可)。 然后,创建一个index.html作为查看地图的页面,导入OpenLayers.js和你将要创建的js

  我们以加载WMS和GML文件为例。 

  

  <script src="../lib/OpenLayers.js"></script>
  <script type="text/javascript">
        var lon = 5;    //x-axis coodinate in map units
        var lat = 40;   //y-axis coordinate in map units
        var zoom = 5;   //number of zoom levels
        var map, layer; 
    //声明变量map、layer;等同于 var map = null; var layer = null;
        map = new OpenLayers.Map('map');
        //实例化一个地图类OpenLayers.Map
        layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", 
                    "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
        //以WMS的格式实例化图层类OpenLayers.Layer
        map.addLayer(layer);
        map.zoomToExtent(new  OpenLayers.Bounds(-3.922119,44.335327,
        4.866943,49.553833));
    //在Map对象上加载Layer对象,并用map.zoomToExtent函数使地图合适地显示
    map.addLayer(new OpenLayers.Layer.GML("GML", "gml/polygon.xml"));

    //再在刚加载的WMS文件上,加载一GML文件

  剩下的工作就是,加上一些控件OpenLayers.Control之类的东西,比如LayerSwitcher等。它们会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功能性。

   例如:

   map.addControl(new OpenLayers.Control.LayerSwitcher());                                 

  当然,Openlayers中的东西远不止这些,至于它的框架分析、APIs实现机制,会在后续文章中说出。写这个的过程,也是一个学习的过程,其中难免有不妥之处,热烈欢迎大家批评指正,相互交流

你可能感兴趣的:(Webgis,OpenLayers,二维)