[mapserver-users] WFS GetFeature with filter for multiple layers

Rahkonen Jukka Jukka.Rahkonen at mmmtike.fi
Wed Jan 23 03:03:59 PST 2013


Hi,

Some thoughts:

- I am not a specialist with filters, but are you sure that your filter is correct?  I have some examples about filters in page
http://latuviitta.org/Http-POST-ja-Filter.php but they are generated by a ready made application (Kosmo GIS).
- One filter for many layers is not the way to go. For example, it can only work if all the feature types are using same name for the geometry field, and filtering with attributes would also require similar attribute schemas. You may get it to work with your own server but your application won't most probably work against any other WFS server.
- Correct way is to use a list of filters. If your old Mapserver does not support it correctly, update of change to some other server that supports.
- Continue to consider doing one request per one feature type, for many reasons.  It will be a hell to find out what goes wrong with multi-featuretype and multi-filter requests and if one thing fails then nothing works. I am sure that all WFS servers are poorly tested with featuretype lists and lists of filters, especially if you are going to use http GET.  Filters suit much better for http POST and that is better tested option too.

Feel free to test with my TinyOWS at http://hip.latuviitta.org/cgi-bin/tinyows? It would be nice to see what goes to my access and error logs.

-Jukka Rahkonen-


> -----Alkuperäinen viesti-----
> Lähettäjä: Arjen de Korte [mailto:arjendk at gmx.net]
> Lähetetty: 23. tammikuuta 2013 12:09
> Vastaanottaja: Rahkonen Jukka; Lime, Steve D (DNR); mapserver-
> users at lists.osgeo.org
> Aihe: Re: [mapserver-users] WFS GetFeature with filter for multiple layers
> 
> Hi Jukka,
> 
> Thanks for the suggestion. I am already taking that into consideration (and
> probably should have mentioned it). The problem is that it would be quite
> some work to get it into the existing application that way. For simplicity I gave
> an example with two layers, but there can actually be many more, depending
> on the map that is displayed. I would definitely like to keep it simple, but in
> this case one GetFeature request would definitely be a simpler solution! Any
> other suggestions welcome!
> 
> Thanks!
> 
> Kind regards,
> Arjen.
> 
> 
> On Wed, Jan 23, 2013, at 10:39, Rahkonen Jukka wrote:
> > Hi,
> >
> > Keep it simple and make two separate GetFeatures, one for each feature
> > type.
> >
> > -Jukka Rahkonen-
> >
> > Arjen de Korte wrote:
> >
> >
> > > Hi Steve,
> > >
> > > Yes, for now I (my client) is stuck to this version, so a workaround
> > > (or accepting that it can't be done) is the only option at the
> > > moment. Has this been solved in newer versions?
> > >
> > > Kind regards,
> > > Arjen.
> > >
> > >
> > > On Tue, Jan 22, 2013, at 20:15, Lime, Steve D (DNR) wrote:
> > > > Are you stuck running such an old version?
> > > >
> > > > -----Original Message-----
> > > > From: mapserver-users-bounces at lists.osgeo.org
> > > > [mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of
> > > > Arjen de Korte
> > > > Sent: Tuesday, January 22, 2013 10:45 AM
> > > > To: mapserver-users at lists.osgeo.org
> > > > Subject: [mapserver-users] WFS GetFeature with filter for multiple
> > > > layers
> > > >
> > > > Hi all,
> > > >
> > > > I'm having a problem with Mapserver 5.2.1 and WFS GetFeature
> requests:
> > > > when I do a GetFeature request with an OGC filter for more than
> > > > one layer, I only get results for the first layer. I found a
> > > > description of the issue here:
> https://github.com/mapserver/mapserver/issues/3584.
> > > > It says the issue can be worked around by listing a separate
> > > > filter for each layer, but I can't work out a way to do this.
> > > >
> > > > My original request looks like this:
> > > >
> > > > http://myserver.com/cgi-
> > > bin/mapserv.exe?map=mymapfile.map&Service=WFS&
> > > >
> > >
> Request=GetFeature&TypeName=layer1,layer2&Version=1.0.0&Filter=<ogc:
> > > Fi
> > > > lter
> > > >
> > >
> xmlns:ogc="http://www.opengis.net/ogc"><ogc:Intersects><ogc:Property
> > > N
> > > a
> > > > me/><gml:Polygon
> > > >
> > >
> xmlns:gml="http://www.opengis.net/gml"><gml:outerBoundaryIs><gml:Lin
> > > ea
> > > > rRing><gml:coordinates decimal="." cs="," ts="
> > > > ">89760.045356755,436071.75388938
> > > > 89762.029730683,436071.75388938 89762.029730683,436073.7382633
> > > > 89760.045356755,436073.7382633
> > > >
> > >
> 89760.045356755,436071.75388938</gml:coordinates></gml:LinearRing></
> > > g
> > > m
> > > > l:outerBoundaryIs></gml:Polygon></ogc:Intersects></ogc:Filter>
> > > >
> > > > ...returning only results for layer1.
> > > >
> > > > I've tried repeating the exact same filter like:
> > > >
> > > > http://myserver.com/cgi-
> > > bin/mapserv.exe?map=mymapfile.map&Service=WFS&
> > > > Request=GetFeature&TypeName=layer1,
> > > > layer2&Version=1.0.0&Filter=<ogc:Filter
> > > > xmlns:ogc="http://www.opengis.net/ogc"><ogc:Intersects> ...
> > > > </ogc:Intersects><ogc:Intersects> ...
> > > > </ogc:Intersects></ogc:Filter>
> > > >
> > > > and
> > > >
> > > > http://myserver.com/cgi-
> > > bin/mapserv.exe?map=mymapfile.map&Service=WFS&
> > > > Request=GetFeature&TypeName=layer1,
> > > > layer2&Version=1.0.0&Filter=<ogc:Filter
> > > > xmlns:ogc="http://www.opengis.net/ogc"><ogc:Intersects> ...
> > > > </ogc:Intersects></ogc:Filter>,<ogc:Filter><ogc:Intersects> ...
> > > > </ogc:Intersects></ogc:Filter>
> > > >
> > > > ...but the first returns the same: only results for layer1, and
> > > > the second returns an error.
> > > >
> > > > What is the correct way to list multiple filters, or is there
> > > > another solution to work around this limitation?
> > > >
> > > > Thanks!
> > > >
> > > > Kind regards,
> > > > Arjen.
> > > > _______________________________________________
> > > > mapserver-users mailing list
> > > > mapserver-users at lists.osgeo.org
> > > > http://lists.osgeo.org/mailman/listinfo/mapserver-users
> > > >
> > > >
> > > _______________________________________________
> > > mapserver-users mailing list
> > > mapserver-users at lists.osgeo.org
> > > http://lists.osgeo.org/mailman/listinfo/mapserver-users


More information about the mapserver-users mailing list