例1.7

添加OGC WMS层

https://demo.mapserver.org/cgi-bin/mapserv?map=/osgeo/mapserver/tutorial/htdocs/example1-7.map&layers=states+states_label+modis_jpl&mode=map

MapServer的另一个令人兴奋的特性是它能够使用来自其他地图服务器的层。在这种情况下,MapServer应用程序将成为WMS(或WFS)客户机。mapserver还可以将map文件中的层共享(或服务于其他映射服务器)。这使应用程序成为一个WMS(或WFS)服务器。什么是WMS或WFS?这些是由开放地理空间联盟(OGC)发布的“基于Web的互操作性服务”规范。wms代表web map服务,wfs代表web feature服务。简而言之,这两种规范的区别在于WMS使用Web栅格格式(PNG、GIF、JPEG)共享层,而WFS使用地理标记语言GML。第三个OGC互操作性规范是Web覆盖服务规范或WCS。MapServer仅在服务器级别支持WCS。要查找有关WMS、WFS和WCS的更多信息,请访问 OGC's web site 然后寻找 OGC Implementation SpecificationsOGC Abstract Specifications .MapServer网站也有 documentationWIKI pages 对于这些规范。

此示例演示如何在 Mapfile 中添加WMS层。

Mapfile

这就是 Mapfile 的外观: Example1-7.map

图层对象和WMS参数

让我们来看看WMS层:

来自JPL的图层modis WMS地图

标记WMS图层对象的开始。

名称modis_jpl

层标识符。

型栅格

由于WMS层是图像,因此我们使用栅格作为层类型。

OFFSITE0 0 0

忽略黑色背景色

**状态* **

默认情况下关闭此层。

连接类型WMS

要使用的层连接类型。默认值为本地。

注解

如果必须是显式的,我们将向map文件中的所有其他向量和栅格层添加本地连接类型。相反,我们只定义外部的连接类型。WMS是一个外部数据层,来自另一个地图服务器。

连接“http://mapus.jpl.nasa.gov/wms.cgi?”

允许我们 get 来自其他服务器的数据。对于WMS连接,这是一个URL。如果我们使用PostGIS数据库,它将是一个SQL语句。请注意,字符串必须在 Mapfile 中的一行中。

METADATA

标记WMS层的元数据对象的开头。MapServer使用此对象中定义的参数以及上面的连接参数来形成对WMS服务器的有效WMS请求。

“wms_srs”“epsg:4326”,

WMS投影。有时,WMS服务器支持多个投影。如果是这种情况,您可能希望在输出投影中请求映射(epsg:2163)。不幸的是,JPL服务器不支持这种投影。

“WMS”名称“modis”

WMS层名称。这就像添加参数“layers=modis”。

“WMS_服务器_版本”“1.1.1”

服务器符合的WMS版本。有关更多选项,请参阅 MapServer OGC规范支持 .

“WMS U格式”“image/jpeg”

我们期望从WMS服务器接收的图像格式。您可以尝试将值替换为 image/png 或者别的什么。

END

标记元数据对象的结尾

要了解有关向应用程序添加WMS层的更多信息,请访问 MapServer WMS Client Howto .

Web对象参数

除了添加WMS图层对象,地图下还有一个新对象。这是Web对象。在Web对象中有两个参数:

imagepath'/data/tmp/'.

指向Web可访问临时目录的绝对本地路径。运行Web服务器进程的用户应该能够写入此目录。确保路径末尾包含斜线(/)。(您的映像路径可能如下所示:“/home/apache/htdocs/tmp/”或“c:/inetpub/wwwroot/tmp/”。

imageurl'/tmp/'.

这是相对于Web服务器的根目录显示ImagePath的方式。如果必须为此键入完整的URL,它将是“http://terrasip.gis.umn.edu/tmp/”。确保路径末尾包含斜线(/)。


最后,在map对象中,我添加了一个新参数:name。这是映射对象的标识符。MapServer将此作为其创建并转储到的所有图像的前缀 tmp 目录。在这一点上不需要它,但是拥有它也不会带来伤害。

如果要将数据层共享到其他地图服务器,则需要在地图对象内以及要共享的每个图层对象内添加元数据对象。从另一台服务器添加的所有WMS层将自动层叠,并且也将对其他服务器可用。要了解有关如何使MapServer应用程序成为WMS服务器的更多信息,请阅读 MapServer WMS Server HowTo . 还存在用于配置MapServer应用程序以支持WFS标准的文档,这两个标准都是 server 作为一个 client .


Back to Example 1.6 | Proceed to Example 1.8