Openlayers中layer介绍

1.base layers & overlay layers

base layer:最底层的layer,其他的图层是在他之上,最先加入的图层默认作为base layer.

overlay layer:不是base layer的layer就是overlay layer

2.使用layer的步骤:

  1. 创建layer
  2. 把layer添加到Map中,可以用map.addlayer(layer)或map.addLayers([layer1,layer2,.....]

3.样例:创建一个多图层的地图

 <!DOCTYPE html>
<html lang='zh-cn'>
<head>
    <meta charset='utf-8' />
      <title>Base Layer Test</title>
      <script type='text/javascript' src='OpenLayers.js'></script>
      <script type='text/javascript'>
          var map;
          function init() {
				map = new OpenLayers.Map('map_element',{});
              var wmsLayerMap = new OpenLayers.Layer.WMS(
			      'Base layer',
				  'http://vmap0.tiles.osgeo.org/wms/vmap0',
				  {layers:'basic'},
				  {isBaseLayer:true}
				  );
			  var wmsLayersLabels = new OpenLayers.Layer.WMS(
				   'Location Labels',
				   'http://vmap0.tiles.osgeo.org/wms/vmap0',
				   {layers:'clabel,ctylabel,statelabel',
				   transparent:true},
				   {opacity:.5}
				);

				map.addLayers([wmsLayerMap,wmsLayersLabels]);

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

				if(!map.getCenter())
				{
					map.zoomToMaxExtent();
				}
              }

      </script>
  </head>
  <body onload='init();'>
      <div id='map_element' style='width:800; height: 600px;'>
      </div>
  </body>
  </html>

运行代码,得到如下结果:

4.Layer.WMS类解析

首先看一下Layer.WMS类的参数:

参数 描述
name {string},表示图层名称
url {string},表示WMS的基地址
params {object},代表获取地图的查询字符串及参数取值
options {object},添加在图层上的其他选项的哈希表

Name参数:

Layer.WMS类的第一个参数,表示图层名称,string类型。图层名称要放在引用里面用以代表它是string类型。名称是自己任意取的。如果在地图中添加了图层切换控件,图层名讳出现在该控件中。记住在引用之后有一个逗号。

URL参数:

代表网络地图服务的URL地址

Params参数:

是一个包含键:值对的匿名对象(object?)该参数指定服务端的设置,这些设置影响WMS服务器返回的地图图像。当Openlayers向地图服务器发出请求时,这些键:值对将会附加到openlayers生成的URL地址之后。

可能的键:值对有:

layers:指定WMS服务器需要返回的图层

transparent:为标注图层等图层请求透明的图片

srs:指定投影类型

Options:

包含客户端Openlaysers图层对象的属性,所有的图层都具有这些参数,主要有:isBaseLayer,opacity,visibility,由于图层属性是客户端的设置,因此WMS服务器(或其他服务器)不知道这些参数。

5.配置图层参数示例i:

 <!DOCTYPE html>
<html lang='zh-cn'>
<head>
    <meta charset='utf-8' />
      <title>Layer Test</title>
      <script type='text/javascript' src='OpenLayers.js'></script>
      <script type='text/javascript'>
          var map;
          function init() {
				map = new OpenLayers.Map('map_element',{});
              var wmsLayerMap = new OpenLayers.Layer.WMS(
			      'Base layer',
				  'http://vmap0.tiles.osgeo.org/wms/vmap0',
				  {layers:'basic'},
				  {isBaseLayer:true}
				  );
			  var wmsLayersLabels = new OpenLayers.Layer.WMS(
				   'Location Labels',
				   'http://vmap0.tiles.osgeo.org/wms/vmap0',
				   {layers:'clabel,ctylabel,statelabel',
				   transparent:true},
				   {visibility:false,opacity:.5}
				);
				var wmsStateLines = new OpenLayers.Layer.WMS(
					'State Line Layer',
					'http://labs.metacarta.com/wms/vmap0',
					{layers:'stateboundary',
					transparent:true},
					{
					minScale:13841995.078125}
				);
				wmsWaterDepth = new OpenLayers.Layer.WMS(
					'Water Depth',
					'http://labs.metacarta.com/wms/vmap0',
					{layers:'depthcontour',
					transparent:true},
					{opacity:0.8}
				);
				wmsRoads = new OpenLayers.Layer.WMS(
				'Roads',
				'http://labs.metacarta.com/wms/vmap0',
				{layers:'priroad,secroad,rail',
				transparent:true},
				{transistionEffect:'resize'}
				);
				map.addLayers([wmsLayerMap,wmsLayersLabels,wmsStateLines,wmsWaterDepth,wmsRoads]);

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

				if(!map.getCenter())
				{
					map.zoomToMaxExtent();
				}
              }

      </script>
  </head>
  <body onload='init();'>
      <div id='map_element' style='width:800; height: 600px;'>
      </div>
  </body>
  </html>

程序执行后的结果为:

时间: 2024-08-08 01:27:18

Openlayers中layer介绍的相关文章

OpenLayers中的图层

OpenLayers有多个不同的图层类,每一个都可以连接到不同的地图服务器.例如通过Layer.WMS类可以连接到WMS地图服务器,通过Layer.Google类可以连接到谷歌地图服务器.OpenLayers中的每个图层都是独立的,对一个的操作不会影响到另外一个. 不管地图应用的目的是什么,一个有用的地图至少需要有一个图层,至少一个基底图层.其他基底图层之上的图层称之为叠加图层.基底图层和叠加图层是OpenLayers中的两种图层类型. 基底图层 基底图层在图层列表的最下方,其他图层都在其之上.

POP动画引擎中Layer与CALayer的一点区别

POP动画引擎是facebook提供的一个开源框架, 可以实现很多的动画效果, 这里就不一一介绍啦, 有兴趣的童鞋请移步: https://github.com/facebook/pop 下面简单的讲一下POP动画引擎中Layer与CALayer的区别: 这里, 代码做的都是同一个效果: 执行位移动画3秒, 然后在1秒后移除所有动画 使用POP效果图: 使用CALayer效果图: 可以看到, POP执行的动画当动画被移除之后, 被执行对象保留了被停止时的状态 而CALayer执行的动画当动画被移

Openlayers中热力图的实现

概述: 本文讲述结合heatmap.js,在Openlayers中如何实现热力图. heatmap.js简介: Heatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示.Heatmap.js 这个 JavaScript 库可以实现各种动态热力图的网页,帮助您研究和可视化用户的行为. 实现效果: 实现代码: <html> <head> <meta charset="UTF-8"

OpenLayers学习--Layer体系(二)

在OpenLayers学习--Layer体系(一)中,绘制出整个OpenLayers的UML架构图. 这里重点讨论OpenLayers的网络瓦片地图的绘制过程,这里以XYZ图层作为样例来调试学习. 在讨论之前,首先明确一些基本概念: 分辨率(resolution):瓦片上每个像素所代表的地图距离(单位是地图单位). 最大范围(maxExtent):地图或者图层的最大的范围. 瓦片切图原点的位置(tileOriginCorner):"tl"(左上角)."tr".&qu

ios中layer动画和UIView动画代码总结

kCATransitionFade淡出 kCATransitionMoveIn覆盖原图 kCATransitionPush推出 kCATransitionReveal底部显出来 pageCurl   向上翻一页 pageUnCurl 向下翻一页 rippleEffect 滴水效果 suckEffect 收缩效果,如一块布被抽走 cube 立方体效果 oglFlip 上下翻转效果 #pragma mark UIView 动画 - (IBAction)pressClick1:(id)sender {

[转]C# 互操作性入门系列(一):C#中互操作性介绍

传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 C# 互操作性入门系列(四):在C#中调用COM组件 本专题概要: 引言 平台调用 C++ Interop(互操作) COM Interop(互操作) 一.引言   这个系列是在C#基础知识中遗留下来的一个系列的,因为在C# 4.0中的一个新特性就是对COM互操作改进,然而COM互操作性却是.NET

OpenLayers中地图缩放级别的设置方法

来源于:http://www.cnblogs.com/sailheart/archive/2011/03/15/1984519.html 一.概述 在OpenLayers中,地图必须具有一个缩放级别的范围,缩放级别可以用比例尺(scale)或者分辨率(resolution)表示. 比例尺——屏幕上1米代表多少地图坐标单位:分辨率——屏幕上一个像素代表多少地图坐标单位.两者的转换关系是:scale = resolution * 72 * 39.3701(1米=39.3701英寸,1英寸=72像素)

C#中的委托介绍

什么是委托? 之前写了事件的介绍: 这里也把委托相关知识也总结一下. 委托是c#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针 声明委托的方式:delegate 返回值类型 委托类型名(参数) 比如: 代码如下: delegate void StringProcess(string s); 注意:这里的除了前面的delegate,剩下部分和声明一个函数一样,但是StringProcess不是函数名,而是委托类型名 声明的委托是一种类型,就像int.Person一样,如果要用的话还要声

设计模式在实际业务应用中的介绍之1——抽象工厂模式实现对数据库访问组件的封装

设计模式在实际业务应用中的介绍之1--抽象工厂模式实现对数据库访问组件的封装 基于C#打造的通用数据库访问组件 基于C#打造的通用数据库访问组件,完全支持开闭原则,设计上支持可扩展支持任意主流数据库,目前组件只实现了Oracle.MS SQL.MySQL三种库. 该组件实现简单.架构清晰,目前组件只包括5个类文件,兼容了三种数据库,组件实现采用了单例模式.工厂模式. 获取组件源码请入QQ群706224870,在群文件中下载.入群验证信息:codefc 下面简单描述下实现思路: 5个类文件如下:D