<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EpostStil17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=NO-BOK link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Hi all,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>I want to do attribute dependent rendering using SLD with filters inside the <Rule> element, but cannot get it to work properly with MapServer 6.0.1 when the CONNECTIONTYPE is POSTGIS. However, all other things being equal, it works well with MapServer 5.2.1. It also works well with other data formats like GML or shape, in both versions of MapServer. Are there any changes in MapServer that I should be aware of that might affect how filters work?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>As an example, the attached figure1 shows the correct map generated by MS 5.2.1, while figure2 shows the MS 6.0.1 generated map in which all polygons get the same color. MS 6.0.1 uses the same PostGIS database and SLD file and an equivalent map file. In case it can provide any clues, my MS 5.2.1 generates SQL like this (from the log file):<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>[Wed Jan 11 23:20:47 2012].319000 query_string_0_6:DECLARE mycursor BINARY CURSOR FOR SELECT "drval1"::text,"drval2"::text,asbinary(force_collection(force_2d(wkb_geometry)),'NDR'),ogc_fid::text from ukcbut00.depare WHERE wkb_geometry && setSRID('BOX3D(-1.57769913517149 50.6363909616681,-0.843360864828487 50.8899255935367)'::BOX3D, find_srid('','ukcbut00.depare','wkb_geometry') )<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>The select command fetches the two attributes drval1 and drval2, on which the filters act, as well as the geometry. However, MS 6.0.1 constructs SQL like this:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>[Wed Jan 11 22:22:06 2012].26000 msPostGISLayerWhichShapes query: select encode(ST_AsBinary(ST_Force_2D("wkb_geometry"),'NDR'),'hex') as geom,"ogc_fid" from ukcbut00.depare where wkb_geometry && GeomFromText('POLYGON((-1.57514202386 50.6588672768767,-1.57514202386 50.9035127337513,-0.841117976140038 50.9035127337513,-0.841117976140038 50.6588672768767,-1.57514202386 50.6588672768767))',find_srid('','ukcbut00.depare','wkb_geometry')) and (( ("drval1"<= 0)  OR  ("drval1"<= 10)  OR  ("drval1"<= 20)  OR  ("drval1">= 20) ))<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>(The clause ("drval1"<= 0)  OR  ("drval1"<= 10)  OR  ("drval1"<= 20)  OR  ("drval1">= 20) seems a bit odd and is true for all polygons.)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Below I have included the SLD code in its entirety.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Knut<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US><?xml version="1.0" encoding="ISO-8859-1"?><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><StyledLayerDescriptor version="1.0.0" <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    xsi:schemaLocation="<a href="http://www.opengis.net/sld">http://www.opengis.net/sld</a>" <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    xmlns="<a href="http://www.opengis.net/sld">http://www.opengis.net/sld</a>" <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    xmlns:ogc="<a href="http://www.opengis.net/ogc">http://www.opengis.net/ogc</a>" <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    xmlns:xlink="<a href="http://www.w3.org/1999/xlink">http://www.w3.org/1999/xlink</a>" <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                  <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  <NamedLayer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    <Name>depare</Name><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    <UserStyle><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>      <Title>AML Depth Area</Title><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>      <FeatureTypeStyle><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       <Rule><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         <ogc:Filter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <ogc:PropertyIsLessThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <ogc:PropertyName>drval1</ogc:PropertyName><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <ogc:Literal>0</ogc:Literal><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </ogc:PropertyIsLessThanOrEqualTo>     <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </ogc:Filter>                           <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          <PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <CssParameter name="fill">#B4EBFF</CssParameter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </Rule>         <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        <Rule>                         <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         <ogc:Filter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <And><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                           <ogc:PropertyIsGreaterThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                             <ogc:PropertyName>drval1</ogc:PropertyName><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                             <ogc:Literal>0</ogc:Literal><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                           </ogc:PropertyIsGreaterThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                           <ogc:PropertyIsLessThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                             <ogc:PropertyName>drval2</ogc:PropertyName><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                             <ogc:Literal>10</ogc:Literal><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                           </ogc:PropertyIsLessThanOrEqualTo>      <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </And>                   <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </ogc:Filter>                                            <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          <PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <CssParameter name="fill">#66EBFF</CssParameter>                                                <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                                                 <CssParameter name="fill-opacity">0.1</CssParameter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </Rule><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       <Rule>                          <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         <ogc:Filter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>           <And><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                          <ogc:PropertyIsGreaterThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                             <ogc:PropertyName>drval1</ogc:PropertyName><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                             <ogc:Literal>10</ogc:Literal><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                          </ogc:PropertyIsGreaterThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                          <ogc:PropertyIsLessThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                            <ogc:PropertyName>drval2</ogc:PropertyName><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                            <ogc:Literal>20</ogc:Literal><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                          </ogc:PropertyIsLessThanOrEqualTo>       <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </And>                     <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </ogc:Filter>                           <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          <PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <CssParameter name="fill">#0097FF</CssParameter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </Rule>       <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>      <Rule><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         <ogc:Filter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <ogc:PropertyIsGreaterThanOrEqualTo><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <ogc:PropertyName>drval1</ogc:PropertyName><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <ogc:Literal>20</ogc:Literal><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </ogc:PropertyIsGreaterThanOrEqualTo>              <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </ogc:Filter>                           <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          <PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            <Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>              <CssParameter name="fill">#2222FF</CssParameter><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            </Fill><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </PolygonSymbolizer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </Rule>                                      <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>      </FeatureTypeStyle><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>    </UserStyle><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>  </NamedLayer><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>   <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US></StyledLayerDescriptor><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>