添加OGC WMS图层

查看示例

MapServer的另一项令人兴奋的功能是它能够使用从其他地图服务器层。在这种情况下,MapServer的应用程序成为WMS(WFS)客户端。MapServer的也可以分享(或服务)的 MapFile 中的图层到其他地图服务器。这使得应用程序的WMS(WFS)服务器。WMS或WFS是什么?这些都是“基于网络的互操作性服务”规范,由开放地理空间联盟(OGC)发布。WMS代表的网络地图服务和WFS Web要素服务。这两种规格之间的差异,简单来说,就是WMS使用网络栅格格式(PNG,GIF,JPEG)分享层,而世界粮食首脑会议使用地理标记语言GML。第三种 OGC互操作规范是网络覆盖服务规范或WCS ,MapServer对其支持仅在服务器端。为了找到WMS,WFS和WCS的更多信息,请点击: OGC's web site 和查找 OGC Implementation Specifications 或者 OGC Abstract Specifications. MapServer的网站还有 documentation 这些规范

这个例子告诉你如何在你的 MapFile 中添加一个WMS层。

下面是本例中使用的Mapfile(xmfa7.map):

01 MAP
02     IMAGETYPE "PNG24"
03     EXTENT 201621.496941 -294488.285333 1425518.020722 498254.511514
04     SIZE 400 300
05     SHAPEPATH "../data"
06     SYMBOLSET "../symbols/symbols35.sym"
07     FONTSET "../fonts/fonts.list"
08     PROJECTION
09         "init=epsg:2163"
10     END
11     WEB
12         IMAGEPATH "/ms4w/tmp/"
13         IMAGEURL "/tmp/"
14     END
15     LAYER
16         NAME "states"
17         DATA "states_ugl"
18         STATUS OFF
19         TYPE POLYGON
20         PROJECTION
21             "init=epsg:4326"
22         END
23         CLASSITEM "CLASS"
24         CLASS
25             NAME "States"
26             EXPRESSION "land"
27             STYLE
28                 COLOR 232 232 232
29             END
30         END
31     END
32     LAYER
33         NAME "modis"
34         DATA "raster/mod09a12003161_ugl_ll_8bit.tif"
35         STATUS OFF
36         TYPE RASTER
37         PROCESSING "BANDS=1,2,3"
38         OFFSITE 71 74 65
39         PROJECTION
40             "init=epsg:4326"
41         END
42     END
43     LAYER
44         NAME "modis_jpl"
45         TYPE RASTER
46         OFFSITE 0 0 0
47         STATUS OFF
48         CONNECTIONTYPE WMS
49         CONNECTION "http://wms.jpl.nasa.gov/wms.cgi?"
50         METADATA
51             "wms_srs" "EPSG:4326"
52             "wms_name" "modis"
53             "wms_server_version" "1.1.1"
54             "wms_format" "image/jpeg"
55         END
56         PROJECTION
57             "init=epsg:4326"
58         END
59     END
60     LAYER
61         NAME "states"
62         DATA "states_ugl"
63         STATUS OFF
64         TYPE LINE
65         PROJECTION
66             "init=epsg:4326"
67         END
68         CLASSITEM "CLASS"
69         CLASS
70             NAME "State Boundary"
71             EXPRESSION "land"
72             STYLE
73                 SYMBOL "line5"
74                 COLOR 32 32 32
75                 SIZE 1
76             END
77         END
78     END
79     LAYER
80         NAME "states_label"
81         DATA "states_ugl"
82         STATUS OFF
83         TYPE POLYGON
84         PROJECTION
85             "init=epsg:4326"
86         END
87         CLASSITEM "CLASS"
88         LABELITEM "STATE"
89         CLASS
90             EXPRESSION "land"
91             STYLE
92                 COLOR -1 -1 -1
93             END
94             LABEL
95                 COLOR 132 31 31
96                 SHADOWCOLOR 218 218 218
97                 SHADOWSIZE 1 1
98                 TYPE TRUETYPE
99                 FONT "arial-bold"
100                 SIZE 12
101                 ANTIALIAS TRUE
102                 POSITION CL
103                 PARTIALS FALSE
104                 MINDISTANCE 200
105                 BUFFER 4
106             END
107         END
108     END
109 END

Mapfile 中添加WMS图层

文件变动如下:

8    PROJECTION8    PROJECTION
n9        "proj=laea"n9        "init=epsg:2163"
10        "ellps=clrk66"10    END
11        "lat_0=45"11    WEB
12        "lon_0=-100"12        IMAGEPATH "/ms4w/tmp/"
13        IMAGEURL "/tmp/"
13    END14    END
42    LAYER43    LAYER
nn44        NAME "modis_jpl"
45        TYPE RASTER
46        OFFSITE 0 0 0
47        STATUS OFF
48        CONNECTIONTYPE WMS
49        CONNECTION "http://wms.jpl.nasa.gov/wms.cgi?"
50        METADATA
51            "wms_srs" "EPSG:4326"
52            "wms_name" "modis"
53            "wms_server_version" "1.1.1"
54            "wms_format" "image/jpeg"
55        END
56        PROJECTION
57            "init=epsg:4326"
58        END
59    END
60    LAYER
43        NAME "states"61        NAME "states"
55                SYMBOL "line5"73                SYMBOL "line5"
n56                COLOR 64 64 64n74                COLOR 32 32 32
57                SIZE 175                SIZE 1
78                SHADOWCOLOR 218 218 21896                SHADOWCOLOR 218 218 218
n79                SHADOWSIZE 2 2n97                SHADOWSIZE 1 1
80                TYPE TRUETYPE98                TYPE TRUETYPE
85                PARTIALS FALSE103                PARTIALS FALSE
t86                MINDISTANCE 300t104                MINDISTANCE 200
87                BUFFER 4105                BUFFER 4

说明

让我们看看在WMS层:

来自JPL层#MODIS WMS地图 标志着开始的WMS层对象。

NAME modis_jpl,层标识符。

TYPE RASTER , 由于这WMS图层是图像,使用栅格图层类型。

OFFSITE 0 0 0 ,忽略黑色的背景颜色

STATUS OFF, 打开这层默认关闭。

CONNECTIONTYPE WMS 他输入层连接使用。默认为本地 。

如果我们必须要明确的,我们将增加本地的所有其他矢量和栅格图层在我们的 MapFile CONNECTIONTYPE。相反,我们只定义是外部的连接类型。WMS是一个外部的数据层,来自其他地图服务器。

CONNECTION “http://mapus.jpl.nasa.gov/wms.cgi?” ,连接字符串,使我们能够从另一台服务器上的数据“搞定”。在WMS连接的情况下,这是一个URL。如果我们用的是PostGIS数据库,这将是一个SQL语句。请注意字串是在一个单一的线在你的 MapFile 。

METADATA , 标志着我们的WMS层的元数据对象。MapServer的使用此对象定义的参数,以及与上述连接参数,以形成有效的WMS请求WMS服务器。

"wms_srs" "epsg:4326" , WMS投影。有时WMS服务器支持多个投影。如果是这样的话,你可能会想要求你的输出投影(EPSG:2163)地图。不幸的是,外部的 WMS 服务器不支持这种投影。

"wms_name" "modis" , WMS图层名称。这就像是添加参数 "layers=modis" .

"wms_server_version" "1.1.1" , WMS版本的服务器的版本。可以查看更多支持的版本。

"wms_format" "image/jpeg" , 图像格式,我们预计接收来自WMS服务器。你可以试试“图像/ PNG”或其他东西取代的价值。

END , 标志着年底的元数据对象

其他信息

要知道更多关于WMS图层添加到您的应用程序,请访问 WMS客户端如何来记录.

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

IMAGEPATH '/data/tmp/' , 本地绝对路径到Web访问的临时目录。运行Web服务器进程的用户应该能够写入到这个目录中。确保该路径包含在最后一个斜杠( / )。(你的IMAGEPATH可能是这个样子: /home/apache/htdocs/tmp/ or C:/Inetpub/wwwroot/tmp/.)

IMAGEURL '/tmp/' , 这是怎么IMAGEPATH会出现相对Web服务器的根目录。如果我们必须输入完整的URL,这将是 "http://terrasip.gis.umn.edu/tmp/" 。请确保路径包含在最后一个斜杠( / )。

最后,在 MAP 对象中添加了一个新的参数: NAME 。这是地图对象的标识符。MapServer的使用这个前缀的所有图像创建和转储 tmp 的目录。在这个例子中其实并不需要,但也不会有什么不好的影响。

如果您想分享您的数据层到其他地图服务器,你需要在你的 MAP 对象添加 METADATA 对象,并在每个你想和大家分享的图层对象中添加 METADATA。所有从另一台服务器添加的 WMS 图层会自动进行级联 发布,提供给他人来用(传染性)。 要知道如何使MapServer的应用程序成为一个WMS服务器的详细信息,请仔细阅读 WMS服务器文档。另外,除了 WMS 服务, MapServer 也支持 WFS 服务,可以查看文档了解如何配置 MapServer 来实现 WFS 服务器,或 WFS 客户端。