GeoServer扫盲 OpenLayers相关(3)

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

 

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

 

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

 

  OpenLayers所能够利用的地图数据资源“丰富多彩”,在这方面提供给拥护较多的选择,比如WMS、WFS、GoogleMap、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(newOpenLayers.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等。它们会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功能性。

 

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

本篇文章来源于GIS动力站|www.gispower.org 原文链接:http://www.gispower.org/article/opengis/2008/730/0873094724KHG883I9I067KC0KF55I_4.html

转载自:https://blog.csdn.net/kgdnui/article/details/5507394

You may also like...