Hi, If you use WFS version 1.1.0 or 2.0.0 you must rewrite the polygon so that coordinates are in latitude-longitude order https://docs.geoserver.org/master/en/user/services/wfs/axis_order.html. Did you do that?
-Jukka Rahkonen- Lähettäjä: Brad Spencer <b...@numaps.com.au> Lähetetty: tiistai 11. helmikuuta 2020 1.39 Vastaanottaja: 'Jody Garnett' <jody.garn...@gmail.com>; 'GeoServer Users' <geoserver-users@lists.sourceforge.net> Aihe: Re: [Geoserver-users] Geoserver 2.11.2 Jody, Your observation about TYPENAME starting with numeric appears to be the problem. I changed the layer in geoserver to be ‘abs:MB2016meshblocks’ and voila! The CQL_FILTER containing a WKT spatial component plus an attribute component worked in Geoserver CQL Filter viewer and as a URL as expected – 141 features. http://13.55.5.169:8008/geoserver/abs/wms?REQUEST=Getfeature&SERVICE=WFS&TYPENAME=abs:MB2016meshblocks&OUTPUTFORMAT=application/json&srsName=EPSG:4326&VERSION=1.0.0&CQL_FILTER=Within(geometry,POLYGON((144.7434 -37.9707,144.7434 -37.6572,145.1608 -37.6572,145.1608 -37.9707,144.7434 -37.9707))) AND persons_usually_resident > 400 However, I get zero returns if I use version 1.1.0 or 2.0.0 but it works a treat with 1.0.0 and that will do me for now. I am not sure if this is a bug in 2.11.2 or not and maybe we should look to upgrade. But things to note is that if you have a non OGC compliant TYPENAME (starting with a numeric was my case), the CQL_FILTER using BBOX spatial filter works but when you use a CQL_FILTER using a WKT object (Polygon, Linestring, Point, etc) as your spatial filter it may not work. Thanks for all your help and patience, now I have some work my end! Cheers, Brad Spencer Managing Director [cid:image001.png@01D05769.0726F2C0] http://www.numaps.com.au/ mob: 0404 841 131 BradArt<https://www.facebook.com/pg/numaps.com.au/photos/?ref=page_internal> From: Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> Sent: 10 February 2020 22:14 To: Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> Cc: GeoServer Users <geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net>> Subject: Re: [Geoserver-users] Geoserver 2.11.2 bbox spatial filter uses the && operator (working on the index) rather than within which uses the geometries. Check the WMS spec for ImplementsSpatialFilter, think this is a flag indicating spatial filters are available. -- Jody Garnett On Mon, 10 Feb 2020 at 11:29, Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> wrote: Ok we are using postgis. Re the typename, we could look at renaming these layers as we are on development right now, however, how come the CQL filter using a BBOX spatial filter works? Also, have any thoughts about the Getcapabilities constraints settings? <fes:Constraint name="ImplementsSpatialFilter"> Sent from my iPhone On 10 Feb 2020, at 20:40, Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> wrote: The data source is internal to your configuration of geoserver (shapefile, postgis, geomesa, etc...). - I don't think you are doing something wrong, I am suspecting that the data source is not doing a good job of combining a within filter and an attribute filter. I can see something unusual, your time name may not be valid for WFS: - abs:2016meshblocks - XML Element names must start with a letter or underscore, and this one starts with "2" -- Jody Garnett On Mon, 10 Feb 2020 at 10:26, Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> wrote: See below.... Sent from my iPhone On 10 Feb 2020, at 20:11, Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> wrote: No worries, in this case it was me making the initial mistake :P As for this trouble with CQL, please keep in mind that once the filter is parsed for your request, it is then packaged up by the data source (for example translated to SQL for a database request). So we really need to know what data source you are using to have a better idea what is going on :) The other common thing is to make sure the coordinates in your request match the coordinates in your Did you try my URL links? Won’t the data source be specified in the full link that includes the CQL filter. Also be aware that one of these links shows a BBOX spatial filter in the CQL which works correctly. The BBOX filter’s geometry is used in the CQL Within filter to create a wkt Polygon that does not work. This makes no sense to me. I must be doing something wrong? brad... -- Jody Garnett On Mon, 10 Feb 2020 at 09:45, Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> wrote: Jody, Sorry about that I was not aware of these rules. Cheers, Brad…. From: Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> Sent: 10 February 2020 16:55 To: Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> Subject: Re: [Geoserver-users] Geoserver 2.11.2 Please keep our policy in mind about keeping communication on the list. I am sorry I accidentally replied to you directly (made a mistake using my phone). Many folks, including my employer, offer direct email support commercially. By keeping thing on the list, like how to figure out the logs, we help people doing a web search and participate in the community. On Mon, Feb 10, 2020 at 5:06 AM Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> wrote: Jody, I simply do not understand the Geoserver logs. They make no sense to me. Would it help if I just cut and pasted to you into an email? Cheers, Brad…. From: Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> Sent: 10 February 2020 12:23 To: Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> Cc: geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net> Subject: Re: [Geoserver-users] Geoserver 2.11.2 Can you increase the logging and check what query is being generated. What data store are you using? On Sun, Feb 9, 2020 at 11:48 PM Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> wrote: Guys, Can anyone please shed some light on this geoserver problem for me? Cheers, Brad…. From: Brad Spencer <b...@numaps.com.au<mailto:b...@numaps.com.au>> Sent: 06 February 2020 10:44 To: 'geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net>' <geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net>> Subject: Geoserver 2.11.2 I am trying to do a getFeature request using a CQL_FILTER. The filter has two components a spatial filter defined as Within(geometry,POLYGON((144.7434 -37.9707,144.7434 -37.6572,145.1608 -37.6572,145.1608 -37.9707,144.7434 -37.9707))) plus an attribute filter component persons_usually_resident > 400. This should return over 100 polygon features. I get zero features returned when I should get over 100 returned. http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&CQL_FILTER=Within(geometry,POLYGON((144.7434 -37.9707,144.7434 -37.6572,145.1608 -37.6572,145.1608 -37.9707,144.7434 -37.9707))) AND persons_usually_resident > 400 I have also trued URL encoded CQL_Filter: http://13.55.5.169:8008/geoserver/abs/wms?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&CQL_FILTER=Within(geometry%2CPOLYGON((144.7434%20-37.9707%2C144.7434%20-37.6572%2C145.1608%20-37.6572%2C145.1608%20-37.9707%2C144.7434%20-37.9707)))%20AND%20component%20persons_usually_resident%20%3E%20400 I know the spatial data is correct as I have used a BBOX CQL_FILTER with the same geometry and it works fine returning the correct data number of features and no urlencoding. That also validates we are looking at the correct layer and geometry. This also returns about the same number of features as the spatial filters should be returning - there will be minor differences tho due to the Within is a little different to BBOX. http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.0.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&CQL_FILTER=BBOX(geometry,144.7434,-37.9707,145.1608,-37.6572)%20AND%20persons_usually_resident%20%3E%20400 I have also checked the syntax of the WKT POLYGON((144.7434 -37.9707,144.7434 -37.6572,145.1608 -37.6572,145.1608 -37.9707,144.7434 -37.9707)) via https://arthur-e.github.io/Wicket/sandbox-gmaps3.html so I feel confident that is correct. In addition I tried an OGC filter with no luck. http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&FILTER=<Filter><And><PropertyIsGreaterThan><PropertyName>persons_usually_resident</PropertyName><Literal>400</Literal></PropertyIsGreaterThan><Within><PropertyName>geometry</PropertyName><Polygon><outerBoundaryIs><LinearRing><coordinates<http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&FILTER=%3cFilter%3e%3cAnd%3e%3cPropertyIsGreaterThan%3e%3cPropertyName%3epersons_usually_resident%3c/PropertyName%3e%3cLiteral%3e400%3c/Literal%3e%3c/PropertyIsGreaterThan%3e%3cWithin%3e%3cPropertyName%3egeometry%3c/PropertyName%3e%3cPolygon%3e%3couterBoundaryIs%3e%3cLinearRing%3e%3ccoordinates> decimal='.' cs=':' ts=' '>144.7434:-37.9707 144.7434:-37.6572 145.1608:-37.6572 145.1608:-37.9707 144.7434:-37.9707</coordinates></LinearRing></outerBoundaryIs></Polygon></Within></And></Filter> I need to be able to support either a OGC or CQL spatial filter with a variable sized search polygon which could be a circle of 40 points or a user digitized arbitrary area. I can do this on a Cubewerx WFS service using OGC Filter but am really struggling with Geoserver 2.11.2. The only thing I can think of is that the access control setting on our geoserver may be set incorrectly. http://13.55.5.169:8008/geoserver/abs/wfs?request=getcapabilities&service=WFS specifically... <fes:Constraint name="ImplementsSpatialFilter"> <ows:NoValues/> <ows:DefaultValue>FALSE</ows:DefaultValue> </fes:Constraint> If this is a problem how can I change this default constraint? We are also thinking of upgrading to a newer version of geoserver but cannot understand why these requests are ignoring the spatial filters? Cheers, Brad Spencer Managing Director <image001.png> http://www.numaps.com.au/ mob: 0404 841 131 BradArt<https://www.facebook.com/pg/numaps.com.au/photos/?ref=page_internal> _______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net<mailto:Geoserver-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/geoserver-users -- -- Jody Garnett -- -- Jody Garnett
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users