[Cartoweb-users] Creating a filter plugin
Oliver Christen
oliver.christen at camptocamp.com
Tue Apr 24 06:54:33 EDT 2007
the easiest way to clear the existing queries is to set via
filterPostRequest or filterGetRequest a query_clear parameter to trigger the
query plugin own clear action (which seems to simply clear the session
object of the plugin btw)
otherwise you need to extend the query plugin to add some kind of accessor
function to change the values of the queryState object, though i havent
tried that myself before
mapoverlay only offer some kind of easy tool to change some common values or
elements. So user dont have to bother with mapscript. Thats why not
everything was implemented.
But you can do all you need with mapscript, it simply need a bit more code
regards
Oliver
> Yes, we use persistent query results. I thought about it again and came to
> the conclusion that synchronizing query results can not work correctly in
> all cases. Since the boundary of the area queried is not saved, the result
> can not be extended if the new filter is less restrictive then the
> original one. Therefore, the best solution would be to remove all
> persistent query results (of the layer with the filter) if the filter
> changes. Question: How can the filter plugin remove the persistent
> results?
>
> By the way, I was wondering, why I can set the DATA item of a layer object
> via the MapOverlay plugin, but not the FILTER. Wouldn't that be the better
> way to filter data? Or is it not possible to set the FILTER item via
> mapscript?
>
> Thanks,
> Dirk
>
>
>> do you use persistant query result?
>>
>>
>>
>>> Hello Oliver,
>>>
>>> thanks. Everything is working now. After a few test, I found out that
>>> initializeRequest (not handlePreDrawing) needs to be used. Otherwise,
>>> the query plugin will not recognize the changed map object and return
>>> all results. Unfortunately, this causes another side effect: If a query
>>> result exists and the filter is changed, an error is triggered
>>> ("Attribute query returned no results") if none of the existing query
>>> results fits the new filter. If at least one result fits the filter, all
>>> are kept.
>>>
>>> Do you have any idea, how I could synchronize the query results if the
>>> filter changes?
>>>
>>> Regards,
>>> Dirk
>>>
>>
>
More information about the Cartoweb-users
mailing list