Mapfile

作者

史蒂夫·莱姆

联系

明尼苏达州第纳尔的史蒂夫·莱姆

作者

杰夫麦克纳

联系

jmckenna在gatewaygeomatics.com

最后更新

2021-03-27

mapfile是mapserver的核心。它定义对象之间的关系,将mapserver指向数据所在的位置,并定义如何绘制对象。

映射文件由 MAP MAP.

在可靠地使用mapfiles配置mapserver之前,必须了解一些重要的概念。第一个概念是 LAYER .图层是数据加样式的组合。数据以属性和几何图形的形式,使用 CLASSSTYLE 指令。

参见

MapServer简介 “ Mapfile 简介”

备注

在设置服务器和映射文件时,强烈建议您查看 MAP= 通过设置来调用MapServer可执行文件 MS_MAP_PATTERNMS_MAP_NO_PATH 或者隐藏 MAP= 参数,如本文档中所建议的 限制 Mapfile 访问 。中列出了保护服务器安全的所有可能环境变量 环境变量

笔记

  • 映射文件不区分大小写。

  • 这个 ** Mapfile 由地图服务器从上到下读取** ;这意味着 Mapfile 顶部附近的层将先于底部附近的层绘制。因此,用户通常将背景图像和其他背景层类型放置在其 Mapfile 的顶部附近,并将线和点放置在其 Mapfile 的底部附近。

  • 必须引用包含非字母数字字符或mapserver关键字的字符串。建议将所有字符串放在双引号中。

  • 自MapServer 7.0起, Mapfile 预计将 UTF-8 encoded 。非UTF-8编码的 Mapfile 需要被图示为UTF-8。

  • 对于mapserver版本<5,每个mapfile的默认最大层数为200层(mapserver大于等于5时没有层限制)。这可以通过编辑map.h文件来更改,将ms_maxlayers的值更改为所需的数字并重新编译。以下是使用低于5的MapServer版本时的其他重要默认限制:

    • MaxClasses 250(在map.h中设置)

    • MaxStyles 5(在map.h中设置)

    • maxsymbols 64(在mapsymbol.h中设置)

    MapServer版本>=5对类、样式、符号或层没有限制。

  • 文件路径可以是绝对路径,也可以是相对于映射文件位置的路径。此外,可以相对于shapepath指定数据文件。

  • 映射文件具有层次结构,映射对象为“根”。所有其他物体都落在这个物体下面。

  • 注释用#表示。由于版本7.2的MapServer还支持单行或多行的C样式注释,因此 /* ... */

  • 属性的命名使用以下语法:[attributename]。

    备注

    属性的名称包含在方括号之间 区分大小写. 通常,ESRI生成的形状数据集的属性(.dbf列名)都是大写的,例如,对于postgis, ALWAYS 使用小写字母。

  • mapserver正则表达式通过操作系统的C库使用。有关如何在系统上使用和编写正则表达式的信息,您应该阅读C库提供的文档。在Linux上,这是glibc,您可以阅读“man 7 regex”…大多数Unix上也有此手册页。由于这些regex兼容posix,因此在Windows上也应该是相同的,因此Windows用户可以尝试在Web上搜索“man 7 regex”,因为手册页在整个Web上都可用。

  • .map文件的语法颜色应可用于您最喜欢的文本编辑器(例如: Notepad++ steps )