Thank you for your comments,

On 10/05/11 11:48, Jody Garnett wrote:


However, the current filter system in Geotools assumes a single value for each property.
Actually it does not; You should also be able to use xpath to reference a specific example if you want to do a < comparison? We may be in need of creating additional functions that work on a list of items? We have a similar set of functions allowing access to the component parts of a Geometry.

What I mean is for example filtering on the following equation:
a/b/c = "foo"

where the property expression "a/b/c" evaluates to multiple values.

This is currently not supported in the filters. The filters will try to extract one value from "a/b/c". If evaluation results in a collection rather than a single value, the filters will not be able to handle it and always return false.

Currently in app-schema, a work-around exists for making this work on mapped feature collections. This work-around only works when the filtering is applied to the mapping datastore, not when applying filters on already built complex features. Therefore it does not work in two situations
- in WMS styling files, it doesn't work
- I am currently creating a new post-filtering system for a performance improved app-schema and I cannot use the old workaround any more. Better would be provide proper support for filtering on multiple values in the actual filters.
I suspect the question is wrong Niels; I think you need to update the renderer to work with multiple results; ie for a single feature; the query may produce multiple geometries; each of which will need to be handed to the renderer etc...

Actually , this doesn't really have anything to do with the renderer. In fact, I am not working on WMS right now, I am working on a performance improvement that applies to building features in app-schema, for both wms and wfs, but I am actually mainly testing wfs at the moment. The WMS point was just an example in which the current work-around doesn't apply, because there too filters are applied on already built features.

The issue here is a more general issue of applying a filter on a complex feature, irrespective of where or for what it is used.


So the problem is not in updating the expression / filter / style system; the problem is in updating the rendering pipeline to work with this more general data?
I could not find any information on multi-valued properties in the OGC filter standard. But in XPath, the standard says that when comparing nodes with multiple values, the result should be the OR-ed aggregation of all possible combinations. My proposal is that the same principle would be applied to geotools filters.
Interesting; I can see how that would work:
* for rendering you are saying "yes - some of the content here matches the filter".

I also would of been content with (and I think I prefer the power of):
* a list of (true, true, false,false,false,true,...) being returned; and then using that list to index out the appropriate entries.

That is an interesting approach, but the filter interface returns a boolean value when evaluated, according to the current API.

Regards,

--
*Niels Charlier*

Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914

Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to