[Geoprisma-dev] Attribute filtering

Alexandre Dube adube at mapgears.com
Mon Nov 1 08:12:22 EDT 2010


Etienne,

   I totally agree that this could be a GeoExt.ux widget.  All the 
features you mentioned about it have no direct dependence on GeoPrisma.  
A thread could be started on the GeoExt-DEV ML.

   In you project, do you need any access control using filtering ?  For 
example, "restrict the data X to a given extent and a given attribute 
having a specific value to the user Y".   If so, that could be discussed 
here.

Regards,

Alexandre


On 10-10-29 03:11 PM, Etienne Dube wrote:
> Hi guys,
>
> We have a new requirement in one of our projects, that involves 
> attribute filtering on a vector layer. What's needed is a widget that 
> allows the user to filter the features to be displayed by specifying 
> an attribute, an operator and a comparison value. One or more of these 
> criteria could be combined using logical operators (AND/OR) to create 
> more complex queries; eventually multiple filtering expressions could 
> be combined by forming a tree of conditions, similar to what the OGC 
> Filter Encoding standard describes. Such a feature has already been 
> discussed previously (see ticket 
> http://trac.osgeo.org/geoprisma/ticket/38).
>
> I spent some time defining the problem and exploring what tools could 
> be used to solve it. A few thoughts:
>
> - We could offer two different modes for this widget:
>
>     1. A preconfigured mode, in which the choices of attributes (and 
> possibly operators) to filter on, along with the logical operators 
> used to combine these criteria, would be defined in the widget's 
> configuration. Different preconfigured query templates could be 
> defined in this way, for every layer the widget applies to. The user 
> would only have to fill in the values to filter on.
>
>     2. An "expression builder" mode. In this case, the choice of 
> attributes, operators and any logical combination (AND/OR) or criteria 
> would be left to the user, and a GUI panel would be provided to build 
> these expressions. This mode mostly targets GIS specialists and other 
> power users who have an understanding of boolean logic, in order to 
> fulfill various free-form querying needs.
>
> - Initially we could provide support for vector layers only. 
> OpenLayers already provides the OpenLayers.Filter classes to build the 
> filtering expressions, and is able to do filtering on the client side. 
> However, since it's not a particularly efficient way of doing things, 
> a way to pass the filter expression to the service would be desirable. 
> As Yves mentioned in ticket #38, FeatureServer offers basic attribute 
> filters as criteria passed in key/value pairs in a GET request, but 
> this support is quite limited: it seems that only 1 criteria per 
> attribute is accepted, there's no way to combine multiple criteria 
> using AND/OR operators (AND is the default when specifying a filter 
> for more than 1 attribute) and only the PostGIS data source is 
> supported for attribute filters. Short of extending FS and its 
> protocol, a solution could be to add a WFS proxy and pass a Filter 
> Encoding expression in the request (as you may know, OL already has 
> the logic to generate an ogc:Filter element from OpenLayers.Filter 
> objects).
>
> - Support for filtering WMS layers (issued from vector sources) would 
> be a good idea too. I believe it's possible by passing an ogc:Filter 
> as part of a SLD in the GetMap request.
>
> - OpenGeo developed a QueryPanel widget (it's in their GXP repository) 
> that offers similar functionality; see 
> http://workshops.opengeo.org/geoext/more_ogc/app.html. I've not been 
> able to make it work yet, and from what I see it can only apply 
> filters on WFS and WMS layers. Nevertheless, this could be a good 
> starting point.
>
> - For the moment we can settle with text boxes for entering filter 
> values, but it would be interesting to offer other control types (date 
> picker, selection list). Another cool feature to have would be the 
> ability to populate such selection lists with domain values (e.g. 
> coming from a catalog table in the DB). However I'm not aware if any 
> feature service (be it FeatureServer, WFS or MapFish Server) can do 
> that kind of stuff, and I think it wouldn't be extremely elegant to 
> have to establish an off-the-band connection to the data source for 
> retrieving those domain value lists.
>
> I think that the widget could be developed as a GeoExt ux first, since 
> it's usefulness goes beyond the scope of GeoPrisma. I'm writing here 
> to have some initial feedback, and I'm open to continue the discussion 
> on the GeoExt dev mailing list if you feel it would be more relevant 
> there.
>
> Ideas, suggestions and corrections are welcome.
>
> Etienne
>


-- 
Alexandre Dubé
Mapgears
www.mapgears.com




More information about the Geoprisma-dev mailing list