OpenLayers是一个强大的JavaScript包,能够从它的官网免费下载。OpenLayers包含了不少强大的网页地图展现与操做功能,而且可以将不一样源的图层展现在同一张地图中,支持各类第三方的地图API(如:Google,Yahoo,Bing,OSW,Baidu以及天地图等),固然OL也支持由你本身服务器(如Geoserver)发布的一些地图服务(WMS,WFS等)。javascript
下载好OL的包,将解压后文件夹中的OpenLayers.js文件、theme文件夹和img文件夹拷贝出来,放在你网页文件的同一个目录下(或其余你网页能够调用到的位置)。而后就能够新建一个html文件用于地图展现了。html
先来一段示例代码:java
1 <!DOCTYPE html> 2 <html lang='en'> 3 <head> 4 <meta charset='utf-8' /> 5 <title>My OpenLayers Map</title> 6 <script type='text/javascript' src='OpenLayers.js'></script> 7 <script type='text/javascript'> 8 9 var map; 10 11 function init() { 12 map = new OpenLayers.Map('map_element', { 13 14 }); 15 var wms = new OpenLayers.Layer.WMS( 16 'wmsL', 17 'http://vmap0.tiles.osgeo.org/wms/vmap0', 18 {layers: 'basic'}, 19 {IsBaseLayer: 'true'} 20 ); 21 22 map.addLayer(wms); 23 if(!map.getCenter()){ 24 map.zoomToMaxExtent(); 25 } 26 } 27 28 </script> 29 </head> 30 <body onload='init();'> 31 <div id='map_element' style='width: 1000px; height: 500px;'></div> 32 </body> 33 </html>
以上有几个点须要注意:api
1.第6行为引用下载的OpenLayers.js包的标签语句,其中src属性表示的即是OpenLayers包的位置,此处为相对路径。固然也能够引用绝对路径或官网的路径(要联网哦),引用OL官网路径的方式以下:服务器
<script type='text/javascirpt' src='http://openlayers.org/api/OpenLayers.js'></script>
2.注意OL中map和layer的概念,map是用来展现地图的容器,layer是来自服务器的图层,每一个map能够加载0个,1个或多个layer。由于JavaScript是面向对象的语言,因此上面说的map和layer都是类,须要声明对象来实例化。layer有不少的子类,每种子类表明一种类型的图层,好比本例中的OpenLayers.Layer.WMS它用于显示WMS服务的图层,还有其余子类如:OpenLayers.Layer.Google(用于显示谷歌地图),OpenLayers.Layer.Vector(用于展现矢量图层)等等,这些类的具体属性以及初始化所需的参数,能够经过OpenLayers文档查询,本例中的OpenLayers.Layer.WMS的构造函数有四个参数,分别为WMS图层的名字、请求WMS服务的url(能够加上一些request参数)、这是一个包含多个键值对的匿名对象(这个对象里的键值对会做为参数传递给服务器)以及wms layer本身的一些属性设置(也是一些键值对组成的匿名对象)。本例中WMS图层的初始化过程为:ide
1 var wms = new OpenLayers.Layer.WMS( 2 'wmsL', 3 'http://vmap0.tiles.osgeo.org/wms/vmap0', 4 {layers: 'basic'}, 5 {IsBaseLayer: 'true'} 6 );
第一个参数为图层名,第二个为服务器url,第三个为发给服务器的参数(本例中只有一个,表示请求的图层叫basic,能够有不少个,参见API文档),第四个参数为layer在客户端的一些属性,本例中表示这个图是基础图层。函数
3.刚才说了OpenLayers中map能够添加多个layer,那么有几种添加方法呢?本例中使用了map类的addLayer方法,除了这种方法还能够在map初始化时将已经声明好的layer做为其参数:ui
var map =new OpenLayers.Map('map_element',{layers:[Layer1,Layer2,...]});
4.要注意,map构造函数的第一个参数是未来要显示这个map的html标签的id(通常状况下使用div标签显示地图),第二个参数为包含map属性的匿名对象。url
好了,一个简单的OL网页就须要注意这些了。spa
参考文献:OpenLayers 2.10 Beginner's Guide