logo资料库

OGC WMS(Web Map Service)网络地图服务 (吐血整理).doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
1、GeoServer(地理信息系统服务器)是 OpenGIS Web 服务器规范的 J2EE 实现(geoserver 只能用 j2ee 开发),利用 GeoServer 可以方便的发布 地图数据。GeoServer 的主要特征包括:兼容 WMS 和 WFS 特性;能够 将网络地图输出为 jpeg、gif、png、SVG、KML 等格式;能够运行在任何 基于 J2EE/Servlet 容器之上。其安装方式有两种,一种是常见的.EXE 安装, 这种安装方式最简单,只要确保你电脑上安装了 JDK 并且 8080 端口是开的, 按照安装步骤一步一步来就可以完成安装,安装完成以后,可以从开始菜 单中选择 GeoServer -> Start GeoServer 进行启动,启动服务后,打开浏览器, 输入 http://localhost:8080/geoserver/就可以查看到 GeoServer 的欢迎界面了。 另一种安装是以.WAR 的形式安装,开发者电脑上得先安装有 Tomcat,然 后将此 WAR 导入即可。 Geoserver 是一个功能齐全,遵循 OGC 开放标准的开源 WFS-T 和 WMS 服 务器。利用 Geoserver 可以把数据作为 maps/images 来发布(利用 WMS 来实现) 也可以直接发布实际的数据(利用 WFS 来实现),同时也提供了修改,删除和新 增的功能(利用 WFS-T)。 GeoServer, 顾名思义,是一个 Server. 它是开源的 ,允 许用户查看和编辑地理数据。GeoServer 能够发布的数据类型: (1)地图或影象——应用 WMS (2)实时数据——应用 WFS (3)用户更新、删除和编辑的数据——应用 WFS-T。 GeoServer 是您需要显示地图在网页的那些工具的当中一个,用户可以缩放 并且移动。可以与一些客户端联合使用,比如:MapBuilder (for web pages), UDig, GVSig,等等。 对标准的使用允许信息从 GeoServer 到其它地理信息可以很容易 地被结合。 2、Web 地图服务(WMS):利用具有地理空间位置信息的数据制作地图,其中将 地图定义为地理数据可视的表现,地图本身并不是数据。地图通常以图像格式表 达,例如 PNG,GIF 或是 JPEG,有时候也表达为基于矢量图形,如可缩放矢量图 形(SVG)或是网络电脑图形元文件等格式(WebCGM)。根据 OGC 规范,地图服务 是专门提供共享地图数据的服务,负责根据客户程序的请求,提供地图图像、指 定坐标点的要素信息、以及地图服务的功能说明信息。
WMS 规范定义了三个接口(操作):GetCapabilities(获取服务能力), GetMap (获取地图)和 GetFeatureInfo(获取对象信息)。其中 GetMap 为核心操作。 GetCapabitities 返回服务级元数据,它是对服务信息内容和要求参数的一种描述; GetMap 返回一个地图影像,其地理空间参考和大小参数是明确定义了的; GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息。这个规范还定 义了一个用于调用上述操作的万维网统一资源定位器(URL)语法和服务级元数 据的 XML(可扩展标记语言)表达法。 3、WMS 请求方式: WMS 支持标准 HTTP 中标准的 GET 请求和 POST 请 求方式,不过对于 WMS 来说,基本都是基于 GET 方式的服务请求,而且 O GC 官方提供的兼容性测试中也都是基于 GET 方式的请求。 OGC 网络服务明确支持的唯一的分布式计算平台(DCP)就是是万维网本身, 更明确地说是实现了超文本传递协议(HTTP)的网络主机。因此,每个由服务 实例支持的各操作的在线资源都是一个 HTTP 的统一资源定位器(URL)。HTTP 支持两个请求方法:GET 和 POST,一个基本的 WMS 规范仅仅定义用来调用操 作的 HTTP GET。URL 规范保留了一些特定的字符并赋予它们必要的意义,如 下表 1, 表1 HTTP GET查询中的保留字符 字符 用 途 ? & = / : , 查询语句开始的分隔符 查询语句参数之间的分隔符 参数名字和参数值之间的分隔符 格式参数值中 MIME 类型子类型之间的分隔符 SRS 参数值中命名空间和标识之间的分隔符 清单型参数中单个值的分隔符(例如 GETMAP 请求中的 BBOX, LAYERS 和 STYLES) 用于 HTTP GET 请求的在线资源 URL 事实上仅仅是一个 URL 前缀,为了建 立一个有效的操作请求,在其后还添加了另外的参数。URL 前缀被定义为一个
不透明的字符串,它包括协议、主机名、端口号(可选)、路径、和一个问号“?”, 还可以包括一个或几个用于具体服务器的参数并以“&”结束。 表2总结了操作请求URL的各个构件: URL 构件 表2 普通OGC网络服务请求 描 述 http://host[:port]/path?{name[=value]&} name=value& 服务操作的URL前缀。[ ]表示可选 择0个或1个事件;{}表示0个或更多的事 件。前缀完全取决于服务提供者。 由OGC网络服务定义的一个或更 多的标准请求参数的名称和数值对。对 于每个操作,相应的的OWS规范都规定 了请求中使用的必选和可选参数的实际 列表。 4、网络地图服务(WMS)的三大操作 (1)GetCapabilities(必选) http://localhost:8080/geoserver/wms?service=WMS&request=GetCapabilities( GeoServer ) (浏览器会返回提示打开或保存一个文件,我的机器返回的是一个叫“wms”的文 件,没有扩展名。没关系我们把它保存为“wms.xml”就可以了) GetCapabilities 请求返回的是一个对于 WMS 服务的一个元数据的描述,其中 包括有当前服务提供商的一些基本信息以及当前服务的一些能力,而对于使用 WMS 服务的客户端来说,能获取到的所有信息全部包含在此文档中,当客户端 发送一个服务中没有提供的的图片格式时,此时服务端将没有能力处理此请求。 在使用 WMS 服务时需要确认当前服务提供的能力,以便在使用过程中发生一些 不必要的麻烦。 GetCapabilities 接口用于向客户端提供当前地图服务器可以提供的空间信息 类型和范围、具体的图层信息和显示样式、支持的查询方式、没有查询结果时(异 常)的缺省返回信息格式等服务描述信息。 GetCapabilities 请求 URL 的参数 请求参数 VERSION=version(Version ( 版 本 )=(1.1.1 或者 1.3.0) ) 必选(M)/ 可选(O) O 说明 请求版本,URL 中可选的请求参数,当没 有使用时就使用当前服务提供商提供的最 高的 wms 版本服务
SERVICE=WMS REQUEST=GetCapabilities FORMAT=MIME_type UPDATESEQUENCE=strin g M M O O 服务类型 请求名,请求中必须设置当前请求的操作, 可以设置 request 的值为 Getcapabilities 、 GetMap 、 GetFeatureInfo 服务元数据的输出格式 用于控制缓冲存储的数字序列或字符串 (2)GetMap(必选) http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&styles=population&Format=image/pn g&request=GetMap&layers=topp:states&width=550&height=250&srs=EPSG:4326 GetMap 接口的目的在于请求服务器生成一幅具有确定地理位置坐标范围的 地图图像。但按照 WMS 规范,这个操作需要明确地指定出操作本身遵循的 WMS 规范的版本号以及需要显示的具体图层、对应的坐标范围、返回图像的大小和格 式等。 请求参数 GetMap 请求的参数 必选的 (M)/ 可选的 (O) 说 明 VERSION=version M 请求版本.
请求参数 REQUEST=GetMap LAYERS=layer_list STYLES=style_list CRS=namespace:identifier BBOX=minx,miny,maxx,maxy WIDTH=output_width HEIGHT=output_height FORMAT=output_format TRANSPARENT=TRUE|FALSE BGCOLOR=color_value EXCEPTIONS=exception_format 必选的 (M)/ 可选的 (O) M M M M M M M M O O O 说 明 请求名称. 以逗号隔开的一个或多个图层列表, 若存在 SLD 参数则是可选的。 以逗号隔开的请求图层的一个再现风 格列表,若存在 SLD 参数则是可选的。 坐标参考系。 以 SRS 单位表示的边界框边角 (左下 角,右上角)。 以像素表示的地图图像宽度。. 以像素表示的地图图像高度 地图输出格式。. 地图背景的透明性 (default=FALSE). 以十六进制 RGB 颜色值表示的背景颜 色(default=0xFFFFFF). WMS 通告异常的格式 (default=SE_XML). 请求层的时间值。 O O O O TIME=time ELEVATION=elevation Other sample dimension(s) Vendor-specific parameters 下列参数只用于支持格式化层描述符规范的网络地图服务 [3]. SLD=styled_layer_descriptor_UR L WFS=web_feature_service_URL 请求层的高程。 其它适当维度的值。. 可选的实验性参数。. O O 格式化层描述符的 URL(如同 SLD 规 范中确定的). 网络要素服务 URL,该服务提供将要 用 SLD 进行符号化的要素。. 注:在 LAYERS 参数值和 STYLES 参数值之间存在一个一一对应关系 对 GetMap 的响应: 对有效的GetMap请求的响应必须是一张地图,它包含了所请求的具有地理参 考坐标的信息层,使用的是期望的样式,并且采用了指定的空间参照系、范围框、 大小和透明性。一个无效的GetMap请求必须产生一个按请求的Exceptions格式输 出的错误信息(或在极端情况下回答一个网络协议错误)。 (3)GetFeatureInfo(可选)
GetFeatureInfo 是一个可选操作。该操作向 WMS 的客户端程序提供了进一步 查询特定空间实体信息的能力。这种操作往往是由客户程序在 WMS 服务器先前返 回的地图上指定了一个空间实体,进而提交查询而形成。支持 GetFeatureInfo 操作的仅仅是那些定义或继承了属性 queryable=“1”的层。对于其它层,客户端 不能发送 GetFeatureInfo 请求。如果一个 WMS 不支持该请求而遇到了它,则应 该应答一个适当格式的服务异常。 GetFeatureInfo请求参数 请求参数 VERSION=version REQUEST=GetFeatureInfo map request part 必选(M)/ 可选(O) M M M QUERY_LAYERS=layer_list M INFO_FORMAT=output_format M FEATURE_COUNT=number O M X=pixel_column Y=pixel_row M EXCEPTIONS=exception_format O 5、三大操作的样例 描述 请求版本。 请求名称。 地图请求参数的部分拷贝,这些参数产生了 需要查询其信息的地图。 用逗号分隔的需要查询的一个或多个层的列 单。 要素信息的返回格式(MIME 类型)。 需要返回其信息的要素个数(default=1)。 用像素表达的要素的 X 坐标 (以左上角坐标 为 0)。 用像素表达的要素的 Y 坐标 (以左上角坐标 为 0)。 WMS 报 告 异 常 信 息 采 用 的 格 式 (default=application/vnd.ogc.se_xml)。 (1)GetMap 请求类似于在 Web 上请求一幅图像,但它的请求参数更加复杂。 下面是一个样例请求: http://webmapping.mgis.psu.edu/geoserver/wms?version=1.1.1&request=getmap&lay ers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125,24,-67,50&width =400&height=200&format=image/png 返回的图像如下图所示:
> 其中: http:// —— 使用的网络协议 webmapping.mgis.psu.edu/ —— 主机域名 geoserver/wms —— 页面或 web 程序位置 version=1.1.1 —— WMS 版本号 request=getmap —— 操作动词,可以为 GetCapabilities, GetMap 和 GetFeatureInfo 等 layers=topp:states —— 请求地图所包含的图层名,可以为多层 styles=population —— 指定图层绘制的样式名 SRS=EPSG:4326 —— 指定地图的坐标投影系统代码 bbox=-125,24,-67,50 —— 请求地图的范围(The Bounding Box) width=400 —— 地图的像素宽度 height=200 —— 地图的像素高度,宽度和高度的不同设置可能会引起返回图像 的变形 format=image/png —— 返回地图图像的格式,可以为 Image/gif, image/jpg, image/svg+xml 等等 如果参数设置错误,将返回一个 XML 文件来描述错误信息。如下所示: WIDTH and HEIGHT incorrectly specified
(2)GetCapabilities 请求的样例如下所示: http://webmapping.mgis.psu.edu/geoserver/wms?version=1.1.1&request=getcapabiliti es 返回的是一个 XML 文件(文件很大,内容略),包括 Service、Capability 等部 分,详细信息可以查看返回 XML 文件。 把这个文档去头去尾以后留下两个节点 Service 和 Capability。 Service 包 含了有关服务器的一般特性数据,对于只是想直接使用 WMS 服务器的人来说, 这个节点还不太用得上,唯一值得注意的就是 KeywordList 节点,它里面是关键 字,也就是服务器的保留字。 Capability 才是我们学习的重点。如果你想正确 的使用 WMS 服务器,这个节点里面的内容就必须搞清楚了。你可以从这个节点 获得如下信息: 1)服务器支持哪些方法,WMS 服务器必须支持 GetCapabilities 和 GetMa p,此外还有许多扩展的方法。 2)服务器支持哪些返回格式,WMS 返回的地图都是渲染好的图片,因此这 里的格式基本上都是图片格式,如 image/png。 3)服务器发布了哪些图层,这个是 WMS 的重点,不然你连最简单的 Get Map 调用都构造不出来。 (3)GetFeatureInfo 用于查询屏幕某点的对象信息,它的样例请求如下所示: http://webmapping.mgis.psu.edu/geoserver/wms?version=1.1.1&request= getfeatureinfo&layers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125, 24,-67,50&width=400&height=200&format=text/html&X=100&y=100&query_layer s=topp:states 此请求返回一个 HTML 文档来描述对象,如下所示: Results for FeatureType 'states':
分享到:
收藏