WMS GetMap extension: FILTER parameter

Description

There is many interesting use cases useful for a FILTER parameter in GetMap that supports a WFS filter. It is a non-standard extension to the WMS spec, but the spec explicitly allows such extension. Ionic's Red Spider Web already supports a FILTER parameter. Example:

http://...VERSION=1.1.1&REQUEST=GetMap&WIDTH=1000&HEIGHT=1000&SRS=EPSG:32633&BBOX=272880,6655500,273880,6656500& - http://...VERSION=1.1.1&REQUEST=GetMap&WIDTH=1000&HEIGHT=1000&SRS=EPSG:32633&BBOX=272880,6655500,273880,6656500&
LAYERS=MYLAYER&STYLES=default&FORMAT=image/gif&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_xml&
FILTER=<ogc:Filter><ogc:Not><ogcisjoint><ogcropertyName>aGeoProperty</ogcropertyName><gmlolygon srsName="EPSG:32633"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>273015,6655950 273065,6655894 273077,6655899 273096,6655977 273044,6655981</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gmlolygon></ogcisjoint></ogc:Not></ogc:Filter>

Environment

None

Activity

Show:
codehaus
April 10, 2015, 4:47 PM

CodeHaus Comment From: aaime - Time: Thu, 5 Oct 2006 04:22:11 -0500
---------------------
<p>Ok, I've added support for this on the getMap GET request (a POST won't work now) as or revision 5098.

I've added a new FILTER parameter to the requests that accepts a list of filters with the same sintax

and semantics as our wfs getFeatures GET request, that is:</p>
<ul>
<li>allows for a list of filters enclosed in ( ) (no other separator, just enclose each filter in ( ), as

requested by the WFS 1.0 KVP ogc spec).</li>
<li>allows for the specification of a single filter that will be applied to all the layers (this is our

extension to the spec, already supported in the WFS getFeatures, and so I've replicated the

behaviour here too).</li>
</ul>

<p>An example of the new requests may be:</p>

<p><a href="http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&amp;styles=default_polygon&amp;Format=image/png&amp;request=GetMap&amp;layers=states&amp;width=550&amp;height=250&amp;srs=EPSG:4326&amp;filter=(" class="external-link" rel="nofollow">http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&amp;styles=default_polygon&amp;Format=image/png&amp;request=GetMap&amp;layers=states&amp;width=550&amp;height=250&amp;srs=EPSG:4326&amp;filter=(</a>&lt;Filter&gt;&lt;PropertyIsEqualTo&gt;&lt;PropertyName&gt;STATE_NAME&lt;/PropertyName&gt;&lt;Literal&gt;Illinois&lt;/Literal&gt;&lt;/PropertyIsEqualTo&gt;&lt;/Filter&gt</p>

<p>which, properly url-encoded, becomes:</p>

<p><a href="http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&amp;styles=default_polygon&amp;Format=image/png&amp;request=GetMap&amp;layers=states&amp;width=550&amp;height=250&amp;srs=EPSG:4326&amp;filter=(%3CFilter%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3ESTATE_NAME%3C/PropertyName%3E%3CLiteral%3EIllinois%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/Filter%3E" class="external-link" rel="nofollow">http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&amp;styles=default_polygon&amp;Format=image/png&amp;request=GetMap&amp;layers=states&amp;width=550&amp;height=250&amp;srs=EPSG:4326&amp;filter=(%3CFilter%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3ESTATE_NAME%3C/PropertyName%3E%3CLiteral%3EIllinois%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/Filter%3E</a>)</p>

codehaus
April 10, 2015, 4:47 PM

CodeHaus Comment From: aaime - Time: Thu, 5 Oct 2006 04:51:12 -0500
---------------------
<p>Ok, I'm resolving this.

Support for easier to write filter format will be handled by geos-727,

support for post requests in geos-726.</p>

<p>Let me know if you spot any bug.</p>

codehaus
April 10, 2015, 4:47 PM

CodeHaus Comment From: aaime - Time: Mon, 12 Feb 2007 07:52:50 -0600
---------------------
<p>Reopening since this needs more work and needs to work just like WFS</p>

codehaus
April 10, 2015, 4:48 PM

CodeHaus Comment From: jdeolive - Time: Mon, 26 Feb 2007 11:35:03 -0600
---------------------
<p>it seems this has been solved on 1.5.x, all is required is the port to trunk. filter parsing is very much differnt on trunk now in wfs so i am moving as a blocker for 1.6. Also, this issue now relates to <a href="https://jira.codehaus.org/browse/GEOS-925" title="sld post does not work with new dispatcher" class="issue-link" data-issue-key="GEOS-925"><del>GEOS-925</del></a>, in which the dispatcher cannot handle elements of a request that are specified in both post and get.</p>

codehaus
April 10, 2015, 4:48 PM

CodeHaus Comment From: aaime - Time: Tue, 12 Jun 2007 05:30:37 -0500
---------------------
<p>Fixed at r6974</p>

Assignee

Unassigned

Reporter

codehaus

Triage

None

Fix versions

None

Affects versions

Components

Priority

High
Configure