[mapserver-users] long expression statement doesn't work anymore

Steve Lime Steve.Lime at dnr.state.mn.us
Fri Oct 23 15:34:03 EDT 2009


As I mentioned earlier, I'd love a test case!

>>> On 10/23/2009 at 1:28 PM, in message
<2001F78572A34911ACFBA0BF7CD874CC at Worthlaptop>, "Worth Lutz"
<wal3 at mindspring.com> wrote:
> I'm seeing the same (or similar) problem.
> 
> First I query a MSsql database and get a result set.  The parcel ids from
> the result set are inserted into an expression in a class which is inserted
> into a layer of the map which has its geometry data in a postgres database.
> (Don't ask why two databases!  We hope to move the data soon.)  The parcels
> are then highlighted on the map.
> 
> The problem we are seeing is when there are lots of parcels, the resulting
> map has missing parcels in the highlighted set.  My solution to this was to
> reduce the number of parcels in each class to 100 and insert many identical
> classes.  My results seem more stable but I still have and error when the
> number of parcels exceeds 500 or so.  Each parcel id is 9 characters long
> and the form of expression is "([tag] in '123456789,987654321')"
> 
> 
> 
> -----Original Message-----
> From: mapserver-users-bounces at lists.osgeo.org 
> [mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of Steve Lime
> Sent: Wednesday, October 21, 2009 11:20 AM
> To: Mapserver Mailinglist ENG; Rafael Szajbel
> Subject: Re: [mapserver-users] long expression statement doesn't work
> anymore
> 
> Any chance you could create a simple test case showing the problem? The fact
> it shows some
> features is puzzling. If it was just a matter of the expression getting
> truncated then you should
> see an expression parse error.
> 
> Steve
> 
>>>> Rafael Szajbel <szajbel at widemann.de> 10/21/2009 6:58 AM >>>
> Hello,
> 
> in an older MapServer version (4.10.0) it is possible to use a very long
> Expression or Filter statement.
> 
> Like this one with over 1000 comma separated values:
> 
>       EXPRESSION ('[NR]' IN 'ID1,ID2,.................,ID1100')
> 
> This works fine:
> 
> With newer MapServer versions (whether cgi (expression in mapfile) or
> phpmapscript (expression set with setExpression)) like 5.2.1 or 5.6.0 beta3
> only o small part of the polygons appears:
> 
> 
> So is there a limit on expression statement since version 5?
> There are no errors in the log-file with debug set to 5.
> 
> This is my layer definition:
> 
>   LAYER
>          DATA "shapes/fs.shp"
>          NAME "FS"
>          STATUS ON
>          TYPE POLYGON
>          CLASS
>               NAME "FS"
>               EXPRESSION ('[NR]' IN
> 'ID1,ID2,.............................,ID1100')    # <-- of course without
> the points ;)
>               STYLE
>                     COLOR 255 255 200
>                     OUTLINECOLOR 0 0 0
>              END
>         END
>   END
> 
> Thanks for any hint.
> 
> Rafael
> 
> PS: It is not possible to classify on attributes.  
> 
> 
> 
> 
> 
> 
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org 
> http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list