MapServer 是一个地图渲染程序,简单的说,就是在服务器端将空间数据渲染成地图的程序,遵循基本的 CGI 规范,接受输入,返回输出。它的输入参数并不是通过 url 传递,而是由 mapfile 指定,mapfile 是一个文本文件,后缀名为 .map,严格的说,这个 mapfile 是一个配置文件,告诉 MapServer 主程序(也就是渲染程序)输入的空间数据的位置、输出地图的格式,样式等等。如图可以看出其原理:
在使用 MapServer 中,最重要和最核心的就是根据数据本身与输出地图需求配置 mapfile 文件,没有之一,所以掌握 mapfile 的配置是使用 MapServer 的必备技能。通过配置 MapServer 的 mapfile 配置文件,就可以通过 MapServer 发布 WMS、WFS、WCS 和 SOS 等服务了,下图便是调用发布的 WMS 地图服务效果图:
看完效果图,是不是也有跃跃欲试的想法呢?但是,任何事情,想要做好,都要从基础做起,基础可能枯燥,但是是必经之路。这里的基础就是基本的地图和GIS知识,和 配置 mapfile 的知识,当然,可能有人不太了解地图和GIS的基础知识,不用着急,即使不太懂,你也可以看懂这篇文章涉及的内容,而配置 mapfile 的基础知识才是我们要学习的。
一、 mapfile 基础知识
mapfile 是一个类似 XML 格式的文本文件,又开始标签和闭合标签,标签不区分大小写,最好是写大写,这样容易区分标签和内容。一个 mapfile 文件最外边的标签是 MAP
,表示的是地图对象,一个地图对象对应着一个或多个图层对象 - LAYER
,一个图层包含数据和输出的样式。MapServer 是从上到下按顺序读取并执行 mapfile 文件的配置的,所以在有多个 LAYER
对象的时候,在前面的 LAYER
会先绘制,后面的 LAYER
后绘制