例1.7

添加OGC WMS层

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

MapServer的另一个令人兴奋的功能是它能够使用其他地图服务器中的图层。在这种情况下,MapServer应用程序将成为WMS(或WFS)客户端。MapServer还可以将 Mapfile 中的图层共享(或提供)给其他地图服务器。这使应用程序成为WMS(或WFS)服务器。什么是WMS或WFS?这些是由开放地理空间联盟(OGC)发布的“基于Web的互操作性服务”规范。WMS代表Web地图服务,WFS代表Web要素服务。简单地说,这两个规范之间的区别在于,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 对于这些规格。

此示例演示如何在映射文件中添加WMS层。

Mapfile

这就是映射文件的外观: Example1-7.map

图层对象和WMS参数

让我们来看看WMS层:

LAYER # MODIS WMS map from NASA

标记WMS图层对象的开始。

NAME modis_nasa

层标识符。

型栅格

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

场外0 0 0

忽略黑色背景色

**状态* **

默认情况下关闭此层。

连接类型WMS

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

备注

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

CONNECTION "https://neo.sci.gsfc.nasa.gov/wms/wms?"

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

METADATA

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

“wms_srs”“epsg:4326”,

WMS预测。有时WMS服务器支持多个投影。如果您希望在这种情况下输出映射(爱普生:2163). 不幸的是,NASA服务器不支持这个预测。

"wms_name" "MOD_143D_RR"

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/'.

这是IMAGEPATH相对于web服务器根目录的显示方式。如果我们必须为此键入完整的URL,它将是“https://demo.mapserver.org/ms_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