From: Jody G. <jod...@gm...> - 2011-07-01 11:30:15
|
They do provide a function - so you should be able to create a "relatePattern" function call. If that works we have a clear reason (and code example) to create a issue report in the JIRA issue tracker. -- Jody Garnett On Friday, 1 July 2011 at 9:14 PM, Matthias Lendholt wrote: > Because CQL accepts "intersects(the_geom, LINESTRING (27.3 37, 27.3 > 37.6))" I thought it should work the same for relatePattern. > > Neither FilterFactory nor FilterFactory2 provide a RelatePattern filter. > > However, the inner StaticGeometry class provides > static String relatePattern(Geometry arg0, Geometry arg1, String arg2) > exist. > > Matthias > > > Am 01.07.2011 12:00, schrieb Jody Garnett: > > You may need to call a function to parse your string into a geometry? I > > am not sure how the CQL parser handles things - perhaps it only expects > > geometry literals for spatial filters?? > > > > Try using FilterFactory and check if the function works for you? > > > > -- > > Jody Garnett > > > > On Friday, 1 July 2011 at 1:45 AM, Matthias Lendholt wrote: > > > > > > > > Am 30.06.2011 14:28, schrieb Jody Garnett: > > > > The complete function list is in the docs here: > > > > - > > > http://docs.geotools.org/latest/userguide/library/main/filter.html#function-list > > > > > > yeah, thanks. I already trid it, but I still get this exception. The > > > second geometry (WKT) is not accepted. > > > > > > > > > Caused by: org.geotools.filter.text.cql2.CQLException: Encountered > > > "LINESTRING" at line 1, column 25. > > > Was expecting one of: > > > <STRING_LITERAL> ... > > > "true" ... > > > "false" ... > > > "(" ... > > > "[" ... > > > <INTEGER_LITERAL> ... > > > <FLOATING_LITERAL> ... > > > <IDENTIFIER> ... > > > . Parsing : relatePattern(the_geom, LINESTRING (27.3 37, 27.3 > > > 37.6),***1*****). Current Token : "," > > > at > > > org.geotools.filter.text.cql2.CQLCompiler.compileFilter(CQLCompiler.java:106) > > > at > > > org.geotools.filter.text.commons.CompilerUtil.parseFilter(CompilerUtil.java:194) > > > at org.geotools.filter.text.cql2.CQL.toFilter(CQL.java:131) > > > at org.geotools.filter.text.cql2.CQL.toFilter(CQL.java:110) > > > at ... > > > > > > org.geotools.filter.text.generated.parsers.CQLParser is not part of > > > geotools-2.6.5-project.zip and therefore I cannot debug it. > > > > > > > > > I tested other functions and they work: > > > intersects(the_geom, LINESTRING (27.3 37, 27.3 37.6)) works... > > > > > > Cheers, Matthias > > > > > > > > > > -- > > > > Jody Garnett > > > > > > > > On Thursday, 30 June 2011 at 9:42 PM, Matthias Lendholt wrote: > > > > > > > > > Hi all, > > > > > > > > > > How do I get a RELATES/DE9IM filter with CQL? I'm looking for a filter > > > > > similar to this postgis function: > > > > > boolean ST_Relate(geometry geomA, geometry geomB, text > > > > > intersectionMatrixPattern); > > > > > > > > > > I tried it with CQL.toFilter("relates(the_geom," + refGeomAsWKT+ > > > > > ",'" + > > > > > de9impattern + "')"); and changed the parameter order but never was > > > > > successful. > > > > > > > > > > Any ideas? > > > > > Many thanks, Matthias > > > -- > [mat...@gf... (mailto:mat...@gf...)] > GFZ German Research Centre for Geosciences > CeGIT Centre for GeoInformation Technology > Tel +49 331 288-1687; FAX +49 331 288-1703 > Telegrafenberg A20, 14473 Potsdam, Germany > Blog http://zeigertelegraph.gfz-potsdam.de > Contact MECARD QR Code: http://goo.gl/488J |