Hi David,

Thank you for the feedback, I have only done this with SQL statements. I'm surprised that we implemented this using a different syntax. Anyway your complete example below will hopefully help others to get it working also.

Thanks,
  -Steve W

On 8/21/2012 3:28 PM, Fawcett, David (MPCA) wrote:
I do something like the second example in one of my applications.  I send the 
comma-delimited string for use as part of the IN statement.

This basically allows you to symbolize features from your spatial data set 
based on data passed in through the URL.

I pass these URL vars:
&group1=129,119,041,005,159,051,011,147,097,015,067,171,081,063,025,093,009,149,079,049,065,003,143,027,039,007,099,121,151,135,107,047,033,031,023,089,001,013,161,109,139,061,055,101,045,127,113,117,167,085,133,073,071,157,105,083,165,077,111,059,115,019,153,125,169,087,043,145,017,131,021,173,035,095,091,155,057,103,075,029,069&group2=137,163,037,141,123&group3=&group4=053

Here is the layer definition:

LAYER
   NAME "airdata"
   STATUS DEFAULT
   DATA 'county_thin'
   TYPE POLYGON
   TEMPLATE "templates/emiss_imap_template.html"

   VALIDATION
      group1 "^[0-9\,]+$"
      group2 "^[0-9\,]+$"
      group3 "^[0-9\,]+$"
      group4 "^[0-9\,]+$"
   END
   CLASS
      NAME "group1"
            EXPRESSION ('[county_fip]' IN '%group1%')
           STYLE
               COLOR 241 238 246
           END
   END
   CLASS
      NAME "group2"
            EXPRESSION ('[county_fip]' IN '%group2%')
           STYLE
               COLOR 189 201 225
           END
   END
   CLASS
      NAME "group3"
            EXPRESSION ('[county_fip]' IN '%group3%')
           STYLE
               COLOR 116 169 207
           END
   END
   CLASS
      NAME "group4"
            EXPRESSION ('[county_fip]' IN '%group4%')
           STYLE
               COLOR 5 112 176
           END
   END

END

David.

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Stephen Woodbridge
Sent: Tuesday, August 21, 2012 1:16 PM
To: [email protected]
Subject: Re: [mapserver-users] validation block

Typically the SQL syntax is   column in (a,b,c,d)
So based on this

[id_bassin] in '%ID_BASSIN%'

would be problematic I think because your syntax is:

column in 'string'

Which is not valid. Also what is your validation for %ID_BASSIN%?
Is something like this?   ^\([0-9]+(,[0-9]+)*\)$

where ID_BASSIN=(123,234,345)

or do you want something like:

[id_bassin] in (%ID_BASSIN%)

with a valdiation like:  ^[0-9]+(,[0-9]+)*$

where ID_BASSIN=123,234,345

-Steve W

On 8/21/2012 1:33 PM, Marc-André Trottier wrote:
here is an example of two class in 'adn_station_max_v.map' :

CLASS
      NAME "Information non disponible (grande échelle)"
      EXPRESSION ( '[etat]' = 'GRIS' AND [id_bassin] in '%ID_BASSIN%')
      GROUP "BASSIN"
          MINSCALEDENOM 0
      MAXSCALEDENOM 150000
      STYLE
          SYMBOL 'circle'
          COLOR 128 128 128
          OUTLINECOLOR 0 0 0
          SIZE 9
      END

      LABEL
          COLOR           0 0 0
          OUTLINECOLOR    255 255 255
          ANTIALIAS       FALSE
          TYPE            TRUETYPE
          FONT            "ubuntu"
          SIZE            14
          POSITION auto
          FORCE                     TRUE
      END
END

CLASS
      NAME "Seuil d\'inondation majeure"
      EXPRESSION ( '[etat]' = 'ROUGE' AND [region_admin_id] in '%ID_REG%')
      GROUP "REG_ADMIN"
      MINSCALEDENOM 110000

      STYLE
          SYMBOL 'circle'
          COLOR   255 0 0
          OUTLINECOLOR 0 0 0
          SIZE 14
      END

      LABEL
          WRAP            "!"
          ALIGN           CENTER
          COLOR           0 0 0
          OUTLINECOLOR    255 255 255
          ANTIALIAS       FALSE
          TYPE            TRUETYPE
          FONT            "ubuntu"
          SIZE            14
          FORCE                     TRUE
          OFFSET          0 12
      END
END

if i understant this meant that for a layer, i must validate all
variables of all class even if i don't use them all.
My include of 'adn_station_max_v.map' contains X substitutions in X
class so i must have X validations even if i don't use all X class.

In my example, i include many class with 'adn_station_max_v.map' but
i'm using only one variable at a time. All class in CLASSGROUP 'REG_ADMIN'
only use 'ID_REG'.


2012/8/21 Stephen Woodbridge <[email protected]
<mailto:[email protected]>>

     You probably need to quote:

                    'ID_BASSIN' '[[a-zA-Z0-9]{0,10},??]*'

                    "#ID_REG' '[[a-zA-Z0-9]{0,10},??]*'

     And I would be very suspicious that '#ID_REG' is a value identifier
     because of the '#' character.

     -Steve W


     On 8/21/2012 11:38 AM, Marc-André Trottier wrote:

         there is my layer's definition :

               LAYER
                   VALIDATION
                       ID_BASSIN '[[a-zA-Z0-9]{0,10},??]*'
                       #ID_REG '[[a-zA-Z0-9]{0,10},??]*'
                   END
                   INCLUDE "../layers/bd/adn_station_max___v.map"
                   CLASSGROUP "BASSIN"
                   NAME "adn_station_bassin"
               END

               LAYER
                   VALIDATION
                       #ID_BASSIN '[[a-zA-Z0-9]{0,10},??]*'
                       ID_REG '[[a-zA-Z0-9]{0,10},??]*'
                   END
                   INCLUDE "../layers/bd/adn_station_max___v.map"
                   CLASSGROUP "REG_ADMIN"
                   NAME "adn_station_reg_admin"
               END

         with these commented lines a got this error :
         msValidateParameter(): Regular expression error. Parameter pattern
         validation failed.

         without comment, i got no error.

         CLASSGROUP 'BASSIN' contains many class but each class use only
         'ID_BASSIN' and
         CLASSGROUP 'REG_ADMIN' contains many class but each class use
         only 'ID_REG'

         is it the right thing to do ? or like i thought, the validation
         block
         can contains only the variable used by the layer ?



         _________________________________________________
         mapserver-users mailing list
         [email protected].__org
         <mailto:[email protected]>
         http://lists.osgeo.org/__mailman/listinfo/mapserver-__users
         <http://lists.osgeo.org/mailman/listinfo/mapserver-users>


     _________________________________________________
     mapserver-users mailing list
     [email protected].__org
     <mailto:[email protected]>
     http://lists.osgeo.org/__mailman/listinfo/mapserver-__users
     <http://lists.osgeo.org/mailman/listinfo/mapserver-users>




_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users



_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to