I tried to use the cross-layer filtering functions but I'm not gettng what I would expect.
One of the examples in the docs match what I'd like to accomplish:
a layer with points (accommodations) and a layer with lines (routes).
http://docs.geoserver.org/stable/en/user/extensions/querylayer/index.html
(Sinche there's a bug in DWITHIN wouldn't it be better to add a note about that in the docs?)
Let's start with WFS.
<wfs:Query typeName="sf:bugsites">
<ogc:Filter>
<ogc:DWithin>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Function name="collectGeometries">
<ogc:Function name="queryCollection">
<ogc:Literal>sf:roads</ogc:Literal>
<ogc:Literal>the_geom</ogc:Literal>
<ogc:Literal>INCLUDE</ogc:Literal>
</ogc:Function>
</ogc:Function>
<ogc:Distance units="meter">100</ogc:Distance>
</ogc:DWithin>
</ogc:Filter>
</wfs:Query>
I want to filter the features (routes) in the 2nd layer, so instead of INCLUDE I wrote as a test:
<ogc:Literal>myfield=1234</ogc:Literal>
and that works ok.
But that filter should be more complicated than that.
I want to use strMatches. So I wrote something like
<ogc:Literal>strMatches(myfield, '.*\b(1234|5678)\b.*')=true</ogc:Literal>
But that returns 0 features.
If I want to use WMS I don't even know how to use that filter inside DWITHIN.
DWITHIN(the_geom, collectGeometries(queryCollection('sf:roads','the_geom','INCLUDE')), 200, meters).
What should I write instead of include?
Are CQL functions like strMatches supported in the querylayer module?
Thank you
maxx