【转】OpenLayers项目分析——(一)项目介绍

https://blog.csdn.net/giser_whu/article/details/45748277

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有: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文件为例。 

  

 
  1. <script src="../lib/OpenLayers.js"></script>

  2.   <script type="text/javascript">

  3. var lon = 5; //x-axis coodinate in map units

  4. var lat = 40; //y-axis coordinate in map units

  5. var zoom = 5; //number of zoom levels

  6. var map, layer;

  7.     //声明变量map、layer;等同于 var map = null; var layer = null;

  8. map = new OpenLayers.Map('map');

  9. //实例化一个地图类OpenLayers.Map

  10. layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",

  11. "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );

  12. //以WMS的格式实例化图层类OpenLayers.Layer

  13. map.addLayer(layer);

  14. map.zoomToExtent(new OpenLayers.Bounds(-3.922119,44.335327,

  15. 4.866943,49.553833));

  16.     //在Map对象上加载Layer对象,并用map.zoomToExtent函数使地图合适地显示

  17.     map.addLayer(new OpenLayers.Layer.GML("GML", "gml/polygon.xml"));

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

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

   例如:

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

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

猜你喜欢

转载自blog.csdn.net/lzkqcc/article/details/81631835