使用“AND”逻辑表达式定义Mapserver类的问题

时间:2013-12-02 23:23:45

标签: gis mapserver map-files umn-mapserver

我似乎无法克服这个障碍。 Mapserver没有抛出任何错误......但它也没有返回任何东西......我怀疑我的逻辑表达式(......没有任何错误......我真的不知道这里发生了什么)

理想情况下,我想使用这两列来过滤我的shapefile:'[YODA](文本)'和'[ZOOM](整数)'。

目前我的代码为:

    LAYER
        # Zoom Level 11-16
        TYPE ANNOTATION
        STATUS ON 
        GROUP "yoda"
        DATA "yoda_graphics"
        NAME "yoda_awesome"
    #    # Visible in map from zoom level 11 onwards
        MAXSCALEDENOM 325008
        MINSCALEDENOM 5078
        LABELITEM "label"
        CLASS
        # Yoda Head
        EXPRESSION (('[YODA]' ~* '/^I/') AND ([Zoom]>8)) ## where things are suspect...
        # yoda shell symbol w/ label
        STYLE
          SYMBOL 'yoda_red_top_shell'
          #COLOR  255 255 255
          #COLOR 218 218 203
          COLOR 184 184 156
          SIZE 16
        END
        STYLE
          SYMBOL 'yoda_red_top_shell'
          #COLOR 225 104 104
          #COLOR 204 184 181
          COLOR 214 214 169
          SIZE 15
        END
        STYLE
         SYMBOL 'yoda_blue_shell'
         #COLOR  80 101 123
         #COLOR 183 192 221
         COLOR 241 241 226
         SIZE 15
        END
        LABEL
          TYPE truetype
          FONT "deja-bold"
          SIZE 5
          #COLOR 255 255 255
          COLOR 184 184 156
          PARTIALS FALSE
          WRAP " "
          ALIGN center
          POSITION CC
          ANGLE 0
        END # end label
      END #end class  
END # layer

1 个答案:

答案 0 :(得分:0)

使用显式正则表达式运算符时,不应使用斜杠包围正则表达式。

这是正确的:

CLASSITEM "Yoda"
CLASS
  EXPRESSION /^I/

在您的情况下,请使用:

EXPRESSION (('[YODA]' ~* '^I') AND ([Zoom]>8))