[Geoprisma-dev] Attribute filtering
Etienne Dube
etienne.dube at boreal-is.com
Tue Nov 2 10:06:19 EDT 2010
Hi Alexandre,
We don't need access control based on filters for this specific project,
but it's still something that's on our wishlist. I see that as somewhat
different from the attribute filtering widget, since this kind of access
control would have to be implemented server-side (probably by putting
some logic in the proxy) to offer any real security.
I started coding a first chunk of the widget, and will post to
GeoExt-dev when I have something to show.
Thanks for your feedback,
Etienne
On 01/11/2010 8:12 AM, Alexandre Dube wrote:
> 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
>>
>
>
--
Etienne Dubé
Consultant / Développeur
Boréal Informations Stratégiques
101, Du Moulin, bureau 202-A
Magog (Québec)
J1X 4A1
Tel. : 514.313.5951 #1131
Courriel: etienne.dube at boreal-is.com
More information about the Geoprisma-dev
mailing list