Hello Steve,

maybe you can use a bounding box instead taking the <bbox=793732,6570204,793765,6570228> command in the WFS request somehow (with your own coordinates naturally)? I do not work with open layers so I do not know how to do it there. It works quite nicely in Leaflet.
Basically I zoom to where I'm interested in and then fire the request. I guess one could also do this without zooming in first.

Hope this can be of any help.

Cheers

Lars

Am 26.01.2015 um 16:38 schrieb steve.tout...@inspq.qc.ca:

I understand the objective of rfc 91, but the most common use case would be to pass the supplied geometry.....

If mapserver doesn't use the supplied geometry, that means that it doesn't support spatial filtering.

Our data covers the whole country, not using the supplied geometry means we can't use mapserver as a wfs server....

Is there something we can do about it? A workaround we could use?




"Lime, Steve D (MNIT)" <steve.l...@state.mn.us>

2015-01-26 10:14

A
"steve.tout...@inspq.qc.ca" <steve.tout...@inspq.qc.ca>, "mapserver-users@lists.osgeo.org" <mapserver-users@lists.osgeo.org>
cc

Objet
RE: [mapserver-users] Mapserver doesn't send good filter to postgis









It’s a limitation in older versions of MapServer where specific backend optimizations were scattered about the WMS/WFS code. Most of those optimizations address the most common use cases – I guess this wasn’t one of them. It’s surprising that at worst the extent of the supplied geometry isn’t passed (I see a comment in the WFS code about this). The specific filter intersection test is applied on the MapServer side – the results are correct, performance can suffer though.
 
This is being addresses in MapServer 7.0 where more complete filter translation functions are being supported (RFC 91).
 
Steve
 
From: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of steve.tout...@inspq.qc.ca
Sent:
Monday, January 26, 2015 8:55 AM
To:
mapserver-users@lists.osgeo.org
Subject:
[mapserver-users] Mapserver doesn't send good filter to postgis

 
Sorry my first post was with an inapprpriate title......

I'm using mapserver 6.4.1 and postgis 2.1


using OpenLayers 2.13.1 I draw a small polygon that I use for a within spatial filter of a WFS getfeature request. The problem is that mapserver is not sending this polygon to postgis, it is sending the extent of the mapfile as filter...


The wfs POST Request (created and send by OpenLayers client)

<ogc:Filter xmlns:ogc="
http://www.opengis.net/ogc"><ogc:Within><ogc:PropertyName>msGeometry</ogc:PropertyName><gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="urn:ogc:def:crs:EPSG::3857"><gml:exterior><gml:LinearRing><gml:posList>-8081644.2511244 5835062.56996 -8081707.5505384 5834980.1612889 -8081638.2794815 5834913.2788892 -8081533.1785677 5834988.5215889 -8081644.2511244 5835062.56996</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></ogc:Within></ogc:Filter>

In Mapserver log, I see

FLTLayerApplyPlainFilterToLayer():  ([shape]  within  fromText('POLYGON ((-8081644.2511243997141719 5835062.5699599999934435, -8081707.5505384001880884 5834980.1612889003008604, -8081638.2794815003871918 5834913.2788891997188330, -8081533.1785677000880241 5834988.5215889001265168, -8081644.2511243997141719 5835062.5699599999934435))'))


Then a few lines later, I see that it is not sending the polygon received as filter

select .......  where geom_p && ST_GeomFromText('POLYGON((-9239517 5465442,-9239517 9349764,-5565974 9349764,-5565974 5465442,-9239517 5465442))',3857);


See the polygon definition is different, postgis receive the extent defined in the mapfile

EXTENT -9239517 5465442 -5565974 9349764



And, in postgis log I see this query, See the

select ....... where geom_p && ST_GeomFromText('POLYGON((-9239517 5465442,-9239517 9349764,-5565974 9349764,-5565974 5465442,-9239517 5465442))',3857);



Why Mapserver is not sending the polygon received as filter to postgis?



Thanks!

Steve Toutant, M. Sc.
Analyste en géomatique
Secteur environnement
Direction de la santé environnementale et de la toxicologie
Institut national de santé publique du Québec
Tél.: 418 646-6777 poste 30015
Téléc.: 418 644-4593

steve.tout...@inspq.qc.ca
http://www.inspq.qc.ca
http://www.monclimatmasante.qc.ca

Pour me rejoindre par courrier
Service de l'infrastructure et du réseau
Direction des technologies de l'information
Ministère de la Sécurité Publique
2525 boul. Laurier, 2e étage
Tour Laurentides
Québec, G1V 2L2





_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to