当前位置:首页 > GeoServer基础教程
BBOX:该参数允许客户请求一个特定的Bounding Box。该参数的值为逗号分隔的一串实数列表,形如:”minx,miny, maxx, maxy”,它们分部代表请求图层CRS下的区域坐标:最小x、最小y、最大x、最大y。其x、y轴的单位、方向、增量都在层CRS中定义。BoundingBox和map像素矩阵之间的关系是BoundingBox包围在像素矩阵的外边,而不是通过地图周边像素的中心,在该内容中,单个像素描述地面的一个区域。
FORMAT:该强制参数声明了地图的要求格式。WMS服务器支持的GetMap请求格式值在服务元数据中以
WIDTH、HEIGHT:该强制参数指定产生的地图整数值大小,单位为像素。Map CS适用于map,WIDTH-1指定了Map CS中x轴方向的最大值,而HEIGHT-1则为y轴方向的最大值.。如果请求的格式为picture,则返回的图片将不考虑MIME类型,准确地为指定的width和height像素值。在这种情况下,如果BBOX的比率和width/height的比率不一致时,WMS将会拉伸返回的地图以使得最终像素能够在BBOX比率下自动生成。换句话说,就是使得在一个输出像素不是方形的,或者拉伸图像区域到不同比率的设备上也能够使用该定义去请求一幅地图。如果WIDTH/HEIGHT比率与X、Y以及像素尺寸的比率不一致,那么就会发生图像扭曲。
TRANSPARENT:该可选参数定义地图背景是否透明,可取值:”TRUE” 和FALSE”,默认和参数缺省时取值:FALSE.。绘制透明像素地能力使得不同的地图请求可以被叠置生成一个复合地区。强烈推荐每个WMS提供一种可以提供透明图层的格式以使得图层可以与其他图层叠置.。注意:image/gif格式具有透明性并且可以让通常客户完全显式。image/png格式提供一个范围内的意义的点,或实体将不能设成透明的,而客户端可能仍然请求TRANSPARENT=TRUE当FORMAT参数包含一个图形元素格式,TRANSPARENT参数可能在请求中出现,但其设置值将会被WMS忽略。
BGCOLOR:该可选参数为一个字符串,用来指定地图将要使用的背景色(无数据区)。BGCOLOR通常的格式为一个RGB值的十六进制编码,其中对于每个颜色值red、green和blue使用两个十六进制字符,所以该值的范围为00到FF(十进制的0和255)。其 格式为oxRRGGBB,RRGGBB大小写都是允许的。而”0x”必须为小写的”x”,如果该参数在请求中缺失,则默认的值为oxFFFFFF(对应的值为白色)。当FORMAT值为图像格式时,服务器应该设置背景像素值为BGCOLOR值,当FORMAT的值为图形元素格式(它们没有显式的背景),或者图像格式时,WMS应该避免为前景元素使用BGCOLOR值,因为这样在该背景颜色下,它们将不可见。当图层已经确定为不透明”opaque”时,地图上的重要点、实体将不显式任何背景。 GetFeatureInfo(可选)
GetFeatureInfo是一个可选操作。它只支持可查询属性被定义或继承为“1”(真)的层。客户端不得向其他层发出GetFeatureInfo要求。如果一个WMS收到一个GetFeatureInfo请求,但不支持它,它会回应一个格式正确的服务异常反应(XML代码= OperationNotSupported)。
GetFeatureInfo操作设计的目的是为一个WMS的客户端提供更多返回地图请求的地图要素的信息。GetFeatureInfo典型用例,一个用户看到一个地图请求响应,在地图上选择一个点(I,j)来获取更多信息。基本操作为客户端提供指定哪个像元被访问, 哪个层应该进行调查,信息应该返回什么样格式的功能。因为WMS的协议是无状态的, 对于WMS,GetFeatureInfo请求通过包括大部分原始GetMap请求参数(除了VERSION和REQUEST)
表明用户正预览的是什么地图。从GetMap请求下的空间范围信息((BBOX,,CRS,,WIDTH,,HEIGHT)来看,随着用户选择的I、J点的变化,WMS返回关于位置的附加信息。 GetFeatureInfo的请求参数
GetFeatureInfo的请求参数详解:
QUERY_LAYERS:QUERY_LAYERS参数规定查询的图层。它的值是一个以逗号分隔的一个或多个图层列表。此参数应至少包含1个图层的名称,但也可以包含比原来的GetMap请求的层少。如果在QUERY_LAYERS中规定查询的图层没有在WMS中的元数据中被定义,将返回服务异常(code = LayerNotDefined)。
INFO_FORMAT:INFO_FORMAT参数表示返回的特征信息时使用何种格式。WMS服务器支持的GetFeatureInfo请求格式值在服务元数据中以
FEATURE_COUNT:FEATURE_COUNT参数规定在返回的每个图层中所允许包含的特征数据量的最大值。
I,J:指示兴趣点,这是根据地图的CS定义,I和J是地图坐标系统中的一个坐标,因此I的值应介于0与i轴的最大值,J值应介于0和第j轴的最大值,点I = 0,J = 0表示该像素在地图的左上角,I向右增加而J向下增加。点(I,J)表示所指示的像素的中心。如果j或者I值无效,则服务器会发出一个服务异常(code = InvalidPoint)。 WFS(Web Feature Service,网络特征数据执行规范)
WFS是基于地理要素级别的数据共享和数据操作,WFS规范定义了若干基于地理要素(Feature)级别的数据操作接口,并以 HTTP 作为分布式计算平台。通过 WFS服务,客户端可以得到矢量数据格式描述的单个地理要素的空间数据或要素集的空间数据,并可以对单个地理要素进行编辑、 删除、 添加等数据操作。WFS采用 GML描述地理要素特征, 根据用户请求的内容返回 GML描述的空间数据。
OpenGIS的WFS实施规范为下一步操作逻辑提供支持,提出了描述使用了分布式计算平台HTTP地理特征数据处理操作界面。数据处理操作包括以下能力: 创建一个新功能实例 删除功能实例 更新功能的实例
获取或查询功能,对空间和非空间的限制 WFS规范定义了 6 个基本操作:
GetCapabilities操作 返回描述 WFS 服务元数据的XML文档, 服务元数据描述了该 WFS服务可以提供的地理要素类型以及针对每个要素类型的操作;
DescribeFeatureType操作 返回WFS能够提供的地理要素类型的GML应用模式描述文档; GetFeature操作 根据用户查询条件,从WFS中获取地理要素,用户可以设定空间和非空间查询条件;
Transaction 操作 为事务请求提供服务。用于描述地理数据变化的操作方法, 如创建、 修改和删除地理要素的操作;
LockFeature操作 WFS可以在一个事务处理期间锁定一个地理要素类型中的一个或多个地理要素实例, 这使 WFS具有支持可序列化事务的能力;
GetGmlObject 操作 一个 WFS 服务可能通过追踪Xlinks 来获取客户请求所需的构成地理要素的子要素实例。
WCS(Web Coverage Service,网络覆盖执行规范)WCS面向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖物(COverage)“在网上相互交换。网络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType。
GetCapabilities操作返回描述服务和数据集的XML文档。
GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。
DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。
至此,空间数据互操作的接口规范WMS、WFS和WCS已经介绍完毕,这些都是一些理论的东西,大家可以选择粗略看看,也可以更深入地去学习和理解。当然,如果需要深入学习和理解应用的,紧靠这一节的内容是远远不够的。此外,考虑到WMS使用得最为频繁,我在本文中着重介绍了WMS服务的规范和请求参数,希望有所助益。
除了本文所介绍的三种协议外,GeoServer还支持TMS、WMS-C、WMTS等多个协议,此外,Web Processing Server(WPS)作为新近推出的标准,也有了越来越广泛的使用,对于这些内容,最好的学习之处还是OGC的官网(http://www.opengeospatial.org/),本文的大部分内容也是参考翻译于此,感兴趣的朋友可以多多前往学习。
GeoServer基础教程(五):使用
GeoServer和OpenLayers发布地图服务
在前面几节的关于GeoServer的基础教程中,我们介绍了如何使用GeoServer发布地图
数据等基本的服务器端的操作,这一节我们继续学习如何使用GeoServer和OpenLayers的结合来发布地图服务。 OpenLayers(http://openlayers.org)是一个专为Web GIS客户端开发提供的JavaScript类库包,用于实现标准格式发布的地图数据访问。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加。除此之外,OpenLayers实现访问地理空间数据的方法都符合行业标准。OpenLayers 支持Open GIS 协会制定的WMS(Web Mapping Service)和WFS(Web Feature Service)等网络服务规范,可以通过远程服务的方式,将以OGC服务形式发布的地图数据加载到基于浏览器的OpenLayers客户端中进行显示。 使用开源的GeoServer和OpenLayers发布地图服务在Web GIS部署中比较常用。本文将结合GeoServer和OpenLayers发布一个地图服务示例。
大家可以下载我编写的示例程序文件作为学习参考。下载地址:http://pan.http://www.china-audit.com//share/link?shareid=4130147131&uk=1746237888。下面是效果图:
发布地图数据
要提供Web GIS服务,首要的是提供所需的地图数据,我们首先根据GeoServer基础教程(三):部署发布Shapefile地图数据一文所讲,部署好需要的地图数据。具体发布的地图数据大家可以使用文中提到的示例数据,也可以使用自己的地图数据。
我的示例数据使用的是同济大学校园地图,上文中的下载文件里并不包含地图数据,所以大家应该替换使用自己的地图数据。
编写网页html文件
网页的内容最终需要利用html展示出来,我们需要对html标记语言有基本的了解,如果需要对样式进行美化还需要css的相关知识,这里不再赘述,对次相关知识不熟悉的朋友,建议先阅读w3school提供的html基础教程和css基础教程。 此处对应index.html和style.css文件。
引入使用OpenLayers控制发布地图数据
OpenLayers实际上是一个专为Web GIS客户端开发提供的JavaScript类库包。如果需要真正用好这个工具,我们必须具备熟练的JavaScript相关知识。考虑到我们的应用比较简单,大家可以直接学习OpenLayers的用户文档(http://docs.openlayers.org)来熟悉JavaScript的语法知识等。 此处对应config.js文件。
继续美化或增强功能
至此,使用GeoServer和OpenLayers发布地图服务已经圆满完成了,不出意外的话,我们已经可以通过浏览器来访问刚刚发布的地图服务页面了。随着对GeoServer和OpenLayers的应用能力提升,大家可以根据自身需求,继续美化或者增强此地图服务的功能。
到这里,GeoServer基础教程系列已经基本完成,愿大家有所得。关于GeoServer和OpenLayers的学习,大家有何疑问,欢迎与我交流。
共分享92篇相关文档