MS RFC 133:映射文件语法清理

日期

2021-01-26

作者

塞思吉尔文

联系

sethg@geographika.co.uk

状态

采用

最后更新

2022-03-29

版本

MapServer 8.0版

概述

此RFC建议将废弃的Mapfile关键字和语法作为8.0版本的一部分删除。由于各种原因,关键字在以前的MapServer版本中已被弃用,继续支持它们可能会使新的MapServer用户感到困惑。

看见 MS RFC 26:版本5术语清理 对于有着类似目标的RFC来说。构成RFC基础的注释可在 MapServer Wiki

弃用选项

列出为已弃用的每个关键字都有许多选项。

  • 完全删除

    • 从解析器中删除

    • 删除所有代码路径和引用

    • 从文档中删除

    • 从所有MS自动测试和示例中删除

  • 恢复关键字

    • 从文档中删除不推荐使用的引用

  • 保留为已弃用状态

  • 添加调试警告(如果使用),目标是在未来的MapServer 9.0中删除

注本RFC是初稿,旨在列出可在MapServer开发人员邮件列表上讨论的选项。

升级 Mapfile

为了帮助用户升级 Mapfile ,在Python中添加了版本验证功能 mappyfile 项目。在线验证器目前托管在http://mappyfile.geographika.net/上,但如果需要,也可以托管在mapserver.org域上。

还可以在命令行本地运行mappyfile项目,以使用以下命令针对特定版本的MapServer验证映射文件:

mappyfile validate C:\Code\mapserver\mapserver\msautotest\**\*.map --version=8.0

这将以以下格式记录指定版本的所有映射文件语法错误:

class16.map (Line: 26 Column: 3) ERROR: Invalid value in CLASS - 'color' does not match any of the regexes: '^__[a-z]+__$'

建议的关键字更改

建议对映射文件进行以下语法更改。

CLASS

删除以下不推荐使用的关键字。它们被用来在 CLASS 块,而不是在 STYLE 块。

  • BACKGROUNDCOLOR 自6.0起不再推荐使用

  • COLOR 自6.0起不再推荐使用

  • MAXSIZE 自6.0起不再推荐使用

  • MINSIZE 自6.0起不再推荐使用

  • OUTLINECOLOR 自6.0起不再推荐使用

  • SIZE 自6.0起不再推荐使用

  • SYMBOL 自6.0起不再推荐使用

  • MAXSCALE-不在文档中

还有以下几点 OVERLAY 样式1使用的快捷方式(未记录):

  • OVERLAYBACKGROUNDCOLOR

  • OVERLAYCOLOR

  • OVERLAYMAXSIZE

  • OVERLAYMINSIZE

  • OVERLAYOUTLINECOLOR

  • OVERLAYSIZE

  • OVERLAYSYMBOL

不推荐直接在类中使用样式的方法:

LAYER
  NAME 'bdry_counpy2'
  TYPE LINE
  DATA '../query/data/bdry_counpy2.shp'
  STATUS DEFAULT
  CLASS
      COLOR 231 231 231
  END
END

新方法(自2002年以来):

LAYER
  NAME 'bdry_counpy2'
  TYPE LINE
  DATA '../query/data/bdry_counpy2.shp'
  STATUS DEFAULT
  CLASS
      STYLE
          COLOR 231 231 231
      END
  END
END

LABEL

LAYER

MAP

SYMBOL

STYLE

  • ANGLEITEM 从5.0起不再推荐使用

  • ANTIALIAS 在7.0中删除了GD支持

  • BACKGROUNDCOLOR 自6.2起不再推荐使用

  • MINSIZE-不在文档中,未使用?

  • MaxSize-不在文档中,未使用?

SCALEBAR

WEB

  • LOG 从5.0起不再推荐使用

  • MINSCALE 从5.0起不再推荐使用

  • MAXSCALE 从5.0起不再推荐使用

向后兼容性问题

用户需要从 Mapfile 中移除不推荐使用的关键字才能使用MapServer 8.0

文件需求

将更新映射文件文档以反映映射文件语法中的任何更改。

文件夹

  • mapfile.c

  • mapfile.h

  • maplexer.l

  • maplexer.c

  • mapserver.h

  • Mapserver/ms自动测试映射文件

  • mapcopy.c

  • maplegend.c

票号和参考号

投票历史

来自ThomasB、TomK、JeromeB、JukkaR、Mikes、EvenR、JeffM、SethG、SteveL的+1

请参阅https://lists.osgeo.org/pipermail/mapserver-dev/2021-May/016476.html