[OpenLayers-Users] Changing map file FILTER parameter via URL - WFS layer with OVF connection

Bart van den Eijnden (OSGIS) bartvde at osgis.nl
Mon Feb 19 06:58:51 EST 2007


Hi,

you should be able to use a javascript variable and pass that into the
constructor, so:

var wfs_filter =
'<Filter><PropertyIsEqualTo><PropertyName>'+user_id+'</PropertyName><Literal>
2</Literal></PropertyIsEqualTo></Filter>';

and then:

var edit_mine_wfs = new OpenLayers.Layer.WFS( "My wfs",                    "
http://localhost/cgi-bin/mapserv?map=/var/www/thesilence/webroot/mapserver/config/data_points.map&",
{typename: "editMinePoints",  'filter':wfs_filter}, { featureClass:
OpenLayers.Feature.WFS}, { featureClass: OpenLayers.Feature.WFS});

Best regards,
Bart

--
Bart van den Eijnden
OSGIS, Open Source GIS
http://www.osgis.nl


--------- Oorspronkelijk bericht --------
Van: Pedrazzi Gelsomini <pedrazzi.gelsomini at gmail.com>
Naar: Bart van den Eijnden OSGIS <bartvde at osgis.nl>
Cc: users at openlayers.org
Onderwerp: Re: [OpenLayers-Users] Changing map file FILTER parameter via URL
- WFS layer with OVF connection
Datum: 19/02/07 09:45

> Hi,just another question about filter problems...I thought that all was
working but I was trying with the code below:var edit_mine_wfs = new
OpenLayers.Layer.WFS( &quot;My
wfs&quot;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &quot;
>
http://localhost/cgi-bin/mapserv?map=/var/www/thesilence/webroot/mapserver/config/data_points.map&amp;&quot;,
{typename: &quot;editMinePoints&quot;,&nbsp;
&#39;ilter:&#39;&lt;Filter&gt;&lt;PropertyIsEqualTo&gt;&lt;PropertyName&gt;user_id&lt;/PropertyName&gt;&lt;Literal&gt;
> 2&lt;/Literal&gt;&lt;/PropertyIsEqualTo&gt;&lt;/Filter&gt;&#39;}, {
featureClass: OpenLayers.Feature.WFS}, { featureClass:
OpenLayers.Feature.WFS});In the &quot;Literal&quot; of my filter I put
&quot;2&quot; just to test it.. but now I must pass the variable
&quot;current_user&quot;.
> I would like something like
this:&lt;Filter&gt;&lt;PropertyIsEqualTo&gt;&lt;PropertyName&gt;user_id&lt;/PropertyName&gt;&lt;Literal&gt;current_user&lt;/Literal&gt;
> &lt;/PropertyIsEqualTo&gt;&lt;/Filter&gt;but it doesnt work and I cant see
anything.Is it possible?Do I have to change the keyword
&quot;Literal&quot;?Probably the problem is that I haven&#39;t the access to
the value variable and the filter  check the literal as a string
&quot;current_user&quot; and not as its integer value.
> Thank you very much for every help.Have a good week.2007/2/16, Bart van
den Eijnden (OSGIS) &lt;bartvde at osgis.nl&gt;:
> Hi,yes after the mylayer initialization if you use mergeNewParams.Please
note, if you already know the user at initialization, you canpass the
parameter &quot;filter&quot; already in the constructor of your layer,
> just like you pass in typename right now.The filter encoding I gave was
just an example, for the right name ofthe PropertyName check the
DescribeFeatureType response of yourMapserver WFS, something like:
>
http://localhost/cgi-bin/mapserv?map=/var/www/thesilence/webroot/mapserver/config/data_points.map&amp;typename=points&amp;service=WFS&amp;version=1.0.0&amp;request=DescribeFeatureType
> I would advise you to first get things running by putting a direct URLin
the browser, and then code the stuff in OpenLayers javascript, so
trysomething like:
>
http://localhost/cgi-bin/mapserv?map=/var/www/thesilence/webroot/mapserver/config/data_points.map&amp;typename=points&amp;service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;filter=&lt;testyour
filter here&gt;
> Hope this helps.Best regards,BartPedrazzi Gelsomini schreef:&gt; Thank you
very much for your help.&gt; I should ask you more information beacause i
can&#39;t understand what i&gt; have to do.
> &gt;&gt; &gt;&nbsp;&nbsp;var filter =&gt;
&#39;&lt;Filter&gt;&lt;PropertyIsEqualTo&gt;&lt;PropertyName&gt;user_id&lt;/PropertyName&gt;&lt;Literal&gt;3&lt;/Literal&gt;&lt;&gt;&gt;
&gt;&nbsp;&nbsp;/PropertyIsEqualTo&gt;&lt;/Filter&gt;&#39;;
> &gt;&gt;
&gt;&nbsp;&nbsp;mylayer.mergeNewParams({&quot;filter&quot;:filter});&gt;&gt;
Putting these instruction above i have the following error&gt;&gt;
&quot;this.map has no properties&quot;&gt; ( Grid.js
>  - line 171 - var viewSize = this.map.getSize();&gt;&gt; Do i have to
insert these instructions after mylayer initialization,&gt; that is in
the&nbsp;&nbsp;function init() that creates my map?&gt; Is it correct put in
the &lt;PropertyName&gt; the name of a field that I get
> &gt; from the SELECT query of the OVF&nbsp;&nbsp;file?&gt;&gt; Is it
enough to add this code lines or I have to do something other in&gt; order
to make working the Filter Encoding?&gt; Sorry for the trivial questions but
i am quite new in this subject.
> &gt;&gt; Thanks a lot for your time!&gt;&gt;&gt;&gt; 2007/2/16, Bart van
den Eijnden (OSGIS) &lt;bartvde at osgis.nl&gt; &lt;mailto:
> bartvde at osgis.nl&gt;&gt;:&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
Hi,&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; you need to use the FILTER parameter
from the OGC WFS spec to do&gt;&nbsp;&nbsp;&nbsp;&nbsp; this,
check&gt;&nbsp;&nbsp;&nbsp;&nbsp; this for more
info:&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
>
http://mapserver.gis.umn.edu/docs/howto/filterencoding/&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;http://mapserver.gis.umn.edu/docs/howto/filterencoding/&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
then you need to call mergeNewParams on your OpenLayers layer:
> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; var filter =&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&#39;&lt;Filter&gt;&lt;PropertyIsEqualTo&gt;&lt;PropertyName&gt;USER&lt;/PropertyName&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;Literal&gt;Peter&lt;/Literal&gt;&lt;/PropertyIsEqualTo&gt;&lt;/Filter&gt;&#39;;
> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
mylayer.mergeNewParams({&quot;filter&quot;:filter});&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
Best regards,&gt;&nbsp;&nbsp;&nbsp;&nbsp;
Bart&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;&nbsp;&nbsp;&nbsp;&nbsp; Bart van
den Eijnden&gt;&nbsp;&nbsp;&nbsp;&nbsp; OSGIS, Open Source
GIS&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
> http://www.osgis.nl&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; ---------
Oorspronkelijk bericht --------&gt;&nbsp;&nbsp;&nbsp;&nbsp; Van: Pedrazzi
Gelsomini &lt;pedrazzi.gelsomini at gmail.com
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;mailto:pedrazzi.gelsomini at gmail.com&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
Naar: users at openlayers.org &lt;mailto:
> users at openlayers.org&gt; &lt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
users at openlayers.org
&lt;mailto:users at openlayers.org&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
Onderwerp: [OpenLayers-Users] Changing map file FILTER parameter
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; via URL -&gt;&nbsp;&nbsp;&nbsp;&nbsp; WFS
layer with OVF connection&gt;&nbsp;&nbsp;&nbsp;&nbsp; Datum: 16/02/07
13:02&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Hi everyone,I m using openlayers
for my application and I have a&gt;&nbsp;&nbsp;&nbsp;&nbsp; WFS
layer&gt;&nbsp;&nbsp;&nbsp;&nbsp; filled by my mysql database using 
> mapserver.My layer&gt;&nbsp;&nbsp;&nbsp;&nbsp; inizialitazion
is:&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; var user_wfs = new
OpenLayers.Layer.WFS( &amp;quot;User
Points&amp;quot;,&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;http://localhost/cgi-bin/mapserv?map=/var/www/thesilence/webroot/mapserver/config/data_points.map&amp;amp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt; &amp;quot;,&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
{typename:&gt;&nbsp;&nbsp;&nbsp;&nbsp; &amp;quot;points&amp;quot;}, {
featureClass: OpenLayers.Feature.WFS});&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; In my file.map i have the following
layer:LAYER&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
CONNECTION &amp;quot;my_points.ovf&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
CONNECTIONTYPE&gt;&nbsp;&nbsp;&nbsp;&nbsp; OGR&amp;nbsp;&amp;nbsp;&amp;nbsp;
DATA &amp;quot;points&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; METADATA&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;wms_srs&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;EPSG:4326&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;wms_title&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;points&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;quot;wfs_srs&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;EPSG:4326&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;wfs_title&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;points&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;quot;gml_featureid&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;fid&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;gml_include_items&amp;quot;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;all&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
END&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;points&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIZEUNITS
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
PIXELS&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp; STATUS
ON&amp;nbsp;&amp;nbsp;&amp;nbsp; DUMP
TRUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
PROJECTION&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;init=epsg:4326&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
END&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;
TOLERANCE 20&amp;nbsp;&amp;nbsp;&amp;nbsp;
TOLERANCEUNITS&gt;&nbsp;&nbsp;&nbsp;&nbsp;
PIXELS&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE
POINT&amp;nbsp;&amp;nbsp;&amp;nbsp; UNITS
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; METERS&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FILTERITEM&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;quot;user_id&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; #FILTER
&amp;quot;&amp;quot;where&gt;&nbsp;&nbsp;&nbsp;&nbsp; my_points.ovf
is:&amp;lt;OGRVRTDataSource&amp;gt;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;OGRVRTLayer&gt;&nbsp;&nbsp;&nbsp;&nbsp;
name=&amp;quot;points&amp;quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;lt;SrcDataSource&amp;gt;ODBC:myuser/mypsw at mydns&amp;lt;/SrcDataSource&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;lt;SrcSQL&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; data_points.id AS&gt;&nbsp;&nbsp;&nbsp;&nbsp;
fid, latitude, longitude, des_walks.com_user_id AS
user_id&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM data_points
JOIN&gt;&nbsp;&nbsp;&nbsp;&nbsp; des_walks&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE des_walks.id =
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
data_points.des_walk_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;lt;/SrcSQL&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;lt;GeometryType&amp;gt;wkbPoint&amp;lt;/GeometryType&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;lt;LayerSRS&amp;gt;WGS84&amp;lt;/LayerSRS&amp;gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;GeometryField&gt;&nbsp;&nbsp;&nbsp;&nbsp;
encoding=&amp;quot;PointFromColumns&amp;quot;
x=&amp;quot;longitude&amp;quot;
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;
y=&amp;quot;latitude&amp;quot;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;lt;/OGRVRTLayer&amp;gt;&amp;lt;/OGRVRTDataSource&amp;gt;but I need to
change&gt;&nbsp;&nbsp;&nbsp;&nbsp; the value
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; of the FILTER parameter in the map file via
URL.&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; The
connection with database works and allows me to put
my&gt;&nbsp;&nbsp;&nbsp;&nbsp; points on my&gt;&nbsp;&nbsp;&nbsp;&nbsp;
map.I would like to filter these data by &amp;quot;user_id&amp;quot; and
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; show only&gt;&nbsp;&nbsp;&nbsp;&nbsp; the
data linked to a specific user, but i have to pass
this&gt;&nbsp;&nbsp;&nbsp;&nbsp; parameter via&gt;&nbsp;&nbsp;&nbsp;&nbsp;
url because it is not always the same.&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Now i m passing just the typename in
the openlayers function,
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; but i dont&gt;&nbsp;&nbsp;&nbsp;&nbsp; know
how to change the FILTER parameter in my map&gt;&nbsp;&nbsp;&nbsp;&nbsp;
file.&amp;nbsp;&amp;nbsp;&amp;nbsp;&gt;&nbsp;&nbsp;&nbsp;&nbsp; FILTERITEM
&amp;quot;user_id&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #FILTER &amp;quot;&amp;quot;Any
suggestion?Thank you
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; very much!&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
_______________________________________________&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&gt; Users mailing list&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 
> Users at openlayers.org
&lt;mailto:Users at openlayers.org&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
http://openlayers.org/mailman/listinfo/users
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; --&gt;
Ilaria Gelsomini&gt; Francesca Pedrazzi--Bart van den EijndenOSGIS, Open
Source GIS
> bartvde at osgis.nlhttp://www.osgis.nl-- Ilaria GelsominiFrancesca Pedrazzi
> 






More information about the Users mailing list