Hi Emily:

The filter thing is not strongly typed (it does not really know they
are integers).

It should however be able to check that your DAMAGE attribute is of
type interger and then it will  compare try and convert the other
strings into an interger to match.

The same thing happens in reverse if your DAMAGE attribute was a String.

To force the issue there are a couple of "casting" functions you could
wrap around to force the value to be an int or a double or whatever.

For a while the handling of literal was very slow and tried to parse
every string as a double; then an interger before giving up and
returning a string. Slow and painful.

Can we think of another way? Perhaps detect any number as a request
for numeric comparison and perform all checks using BigDecimal?

Jody

On Wed, Jun 10, 2009 at 9:44 AM, Emily Gouge<ego...@refractions.net> wrote:
> I have shapefile with 5 features with an integer attribute - DAMAMGE).
> Each of these features as a unique DAMAGE value between 1 and 5.  In
> uDig I'm creating a color-theming style that creates 5 rules that are
> similar to the SLD below.  These rules basically evaluate the statement
> "1 <= DAMAGE < 1.8";
>
> When I view the results in uDig, the colors are incorrect as the
> features are being put in the wrong categories.  From my debugging it
> looks like that when the filter is evaluating, the "1.8" is being
> converted to the Integer "1" thus evaluating the expression "1 <= DAMAGE
> < 1" which is always going to return false.
>
> This conversion from 1.8 to 1 is being done in the eval function of the
> BinaryComparisonAbstract class.  Here it converts the "1.8" double to an
> integer.
>
> I'm wondering how/if this can be fixed?  (or maybe it's designed to work
> this way?)
>
> I was thinking of trying to add some logic to this function to be
> smarter about the conversion done & try to not loose precision if
> possible (for example convert from integer to double before we convert
> from double to integer).   I'm not sure if this is the best way to go
> about this?
>
> Thanks,
> Emily
>
>
> <sld:Rule>
>  <sld:Name>rule01</sld:Name>
>  <sld:Title>1..1.8</sld:Title>
>  <ogc:Filter>
>      <ogc:And>
>          <ogc:PropertyIsGreaterThanOrEqualTo>
>              <ogc:PropertyName>Damage</ogc:PropertyName>
>              <ogc:Literal>1</ogc:Literal>
>          </ogc:PropertyIsGreaterThanOrEqualTo>
>          <ogc:PropertyIsLessThan>
>              <ogc:PropertyName>Damage</ogc:PropertyName>
>              <ogc:Literal>1.8</ogc:Literal>
>          </ogc:PropertyIsLessThan>
>      </ogc:And>
>  </ogc:Filter>
>  <sld:MaxScaleDenominator>1.7976931348623157E308</sld:MaxScaleDenominator>
>  <sld:PolygonSymbolizer>
>      <sld:Fill>
>          <sld:CssParameter name="fill">
>              <ogc:Literal>#EFF3FF</ogc:Literal>
>          </sld:CssParameter>
>          <sld:CssParameter name="fill-opacity">
>              <ogc:Literal>0.5</ogc:Literal>
>          </sld:CssParameter>
>      </sld:Fill>
>      <sld:Stroke>
>          <sld:CssParameter name="stroke">
>              <ogc:Literal>#000000</ogc:Literal>
>          </sld:CssParameter>
>          <sld:CssParameter name="stroke-linecap">
>              <ogc:Literal>butt</ogc:Literal>
>          </sld:CssParameter>
>          <sld:CssParameter name="stroke-linejoin">
>              <ogc:Literal>miter</ogc:Literal>
>          </sld:CssParameter>
>          <sld:CssParameter name="stroke-opacity">
>              <ogc:Literal>1</ogc:Literal>
>          </sld:CssParameter>
>          <sld:CssParameter name="stroke-width">
>              <ogc:Literal>1</ogc:Literal>
>          </sld:CssParameter>
>          <sld:CssParameter name="stroke-dashoffset">
>              <ogc:Literal>0</ogc:Literal>
>          </sld:CssParameter>
>      </sld:Stroke>
>  </sld:PolygonSymbolizer>
> <sld:Rule>
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> Geotools-devel mailing list
> Geotools-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to