[OpenLayers-Users] Changing map file FILTER parameter via URL -
WFS layer with OVF connection
Pedrazzi Gelsomini
pedrazzi.gelsomini at gmail.com
Thu Feb 22 06:57:47 EST 2007
Hi everyone,
i have another problem with filtering layers of mapserver.
I did everything as Bart suggested me but something is wrong.
The filter doesnt work as i wish.
When I add the filter option in the layer initialization, Mapserver (or
Openlayers, i dont know) have a strange behavior.
just to make an example... I wait for the following ids:
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
but I receive from mapserver the following response:
- 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4 5
and i dont know why?
Cheers.
2007/2/19, Bart van den Eijnden (OSGIS) <bartvde at osgis.nl>:
>
> 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( "My
>
> wfs",
> "
> >
>
> http://localhost/cgi-bin/mapserv?map=/var/www/thesilence/webroot/mapserver/config/data_points.map&"
> ;,
> {typename: "editMinePoints",
>
> 'ilter:'<Filter><PropertyIsEqualTo><PropertyName>user_id</PropertyName><Literal>
> > 2</Literal></PropertyIsEqualTo></Filter>'}, {
> featureClass: OpenLayers.Feature.WFS}, { featureClass:
> OpenLayers.Feature.WFS});In the "Literal" of my filter I put
> "2" just to test it.. but now I must pass the variable
> "current_user".
> > I would like something like
>
> this:<Filter><PropertyIsEqualTo><PropertyName>user_id</PropertyName><Literal>current_user</Literal>
> > </PropertyIsEqualTo></Filter>but it doesnt work and I cant
> see
> anything.Is it possible?Do I have to change the keyword
> "Literal"?Probably the problem is that I haven't the access
> to
> the value variable and the filter check the literal as a string
> "current_user" 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) <bartvde at osgis.nl>:
> > Hi,yes after the mylayer initialization if you use mergeNewParams.Please
> note, if you already know the user at initialization, you canpass the
> parameter "filter" 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&typename=points&service=WFS&version=1.0.0&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&typename=points&service=WFS&version=1.0.0&request=GetFeature&filter=<testyour
> filter here>
> > Hope this helps.Best regards,BartPedrazzi Gelsomini schreef:> Thank
> you
> very much for your help.> I should ask you more information beacause i
> can't understand what i> have to do.
> > >> > var filter =>
>
> '<Filter><PropertyIsEqualTo><PropertyName>user_id</PropertyName><Literal>3</Literal><>>
> > /PropertyIsEqualTo></Filter>';
> > >>
>
> > mylayer.mergeNewParams({"filter":filter});>>
> Putting these instruction above i have the following error>>
> "this.map has no properties"> ( Grid.js
> > - line 171 - var viewSize = this.map.getSize();>> Do i have to
> insert these instructions after mylayer initialization,> that is in
> the function init() that creates my map?> Is it correct put
> in
> the <PropertyName> the name of a field that I get
> > > from the SELECT query of the OVF file?>> Is it
> enough to add this code lines or I have to do something other in> order
> to make working the Filter Encoding?> Sorry for the trivial questions
> but
> i am quite new in this subject.
> > >> Thanks a lot for your time!>>>> 2007/2/16, Bart van
> den Eijnden (OSGIS) <bartvde at osgis.nl> <mailto:
> > bartvde at osgis.nl>>:>>
> Hi,>> you need to use the FILTER parameter
> from the OGC WFS spec to do> this,
> check> this for more
> info:>>
> >
>
> http://mapserver.gis.umn.edu/docs/howto/filterencoding/>  
> ;
>
> <http://mapserver.gis.umn.edu/docs/howto/filterencoding/>>>
> then you need to call mergeNewParams on your OpenLayers layer:
> > >> var filter
> =>
>
> '<Filter><PropertyIsEqualTo><PropertyName>USER</PropertyName>>
>
> <Literal>Peter</Literal></PropertyIsEqualTo></Filter>';
> > >>
> mylayer.mergeNewParams
> ({"filter":filter});>>
> 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
> > >
> <mailto:pedrazzi.gelsomini at gmail.com
> >>>
> Naar: users at openlayers.org <mailto:
> > users at openlayers.org> <>
> users at openlayers.org
> <mailto:users at openlayers.org>>>
> Onderwerp: [OpenLayers-Users] Changing map file FILTER parameter
> > > via URL -> WFS
> layer with OVF connection> Datum: 16/02/07
> 13:02>> > Hi everyone,I m using
> openlayers
> for my application and I have a> WFS
> layer> filled by my mysql database using
> > mapserver.My layer> inizialitazion
> is:> > var user_wfs = new
> OpenLayers.Layer.WFS( &quot;User
> Points&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;,> >
> > > > &nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
> {typename:> &quot;points&quot;}, {
> featureClass: OpenLayers.Feature.WFS});> >
> > > > In my file.map i have the following
> layer:LAYER&nbsp;&nbsp;&nbsp;>
> CONNECTION &quot;my_points.ovf&quot;&nbsp;&nbsp;&nbsp;
> CONNECTIONTYPE>
> OGR&nbsp;&nbsp;&nbsp;
> DATA &quot;points&quot;&nbsp;&nbsp;&nbsp;
> > > METADATA>
> &nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;>
>
> &quot;wms_srs&quot;&nbsp;&nbsp;&nbsp;>
> &quot;EPSG:4326&quot;> >
> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
> > >
>
> &quot;wms_title&quot;&nbsp;&nbsp;&nbsp;>
>
> &quot;points&quot;&nbsp;&nbsp;&nbsp;>
> &nbsp;&nbsp;&nbsp;
> &quot;wfs_srs&quot;&nbsp;&nbsp;&nbsp;
> > >
> &quot;EPSG:4326&quot;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;>
>
> &quot;wfs_title&quot;&nbsp;&nbsp;&nbsp;>
> &quot;points&quot;&nbsp;&nbsp;&nbsp;
> > > &nbsp;&nbsp;&nbsp;
>
> &quot;gml_featureid&quot;&nbsp;&nbsp;&nbsp;>
> &quot;fid&quot;> >
> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
> > >
>
> &quot;gml_include_items&quot;&nbsp;>
> &quot;all&quot;&nbsp;&nbsp;&nbsp;
> END&nbsp;&nbsp;&nbsp; NAME>
> &quot;points&quot;&nbsp;&nbsp;&nbsp; SIZEUNITS
> > >
> PIXELS&nbsp;&nbsp;&nbsp;> STATUS
> ON&nbsp;&nbsp;&nbsp; DUMP
> TRUE&nbsp;&nbsp;&nbsp;>
> PROJECTION&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
> > >
> &quot;init=epsg:4326&quot;&nbsp;&nbsp;&nbsp;
> END> > &nbsp;&nbsp;&nbsp;
> TOLERANCE 20&nbsp;&nbsp;&nbsp;
> TOLERANCEUNITS>
> PIXELS&nbsp;&nbsp;&nbsp; TYPE
> POINT&nbsp;&nbsp;&nbsp; UNITS
> > > METERS&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp; FILTERITEM>
> &quot;user_id&quot;&nbsp;&nbsp;&nbsp; #FILTER
> &quot;&quot;where> my_points.ovf
> is:&lt;OGRVRTDataSource&gt;
> > > >
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &lt;OGRVRTLayer>
>
> name=&quot;points&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> > >
> &lt;SrcDataSource&gt;ODBC:myuser/mypsw at mydns
> &lt;/SrcDataSource&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;>
> &lt;SrcSQL&gt;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp; SELECT
> > > data_points.id
> AS>
> fid, latitude, longitude, des_walks.com_user_id AS
> user_id> > &nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp; FROM data_points
> JOIN> des_walks&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp; WHERE des_walks.id =
> > >
>
> data_points.des_walk_id&nbsp;&nbsp;&nbsp;>
>
> &lt;/SrcSQL&gt;&nbsp;&nbsp;&nbsp;>
>
> &lt;GeometryType&gt;wkbPoint&lt;/GeometryType&gt;&nbsp;&nbsp;&nbsp;
> > >
>
> &lt;LayerSRS&gt;WGS84&lt;/LayerSRS&gt;>
> >
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &lt;GeometryField>
> encoding=&quot;PointFromColumns&quot;
> x=&quot;longitude&quot;
> > >
>
> y=&quot;latitude&quot;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;>
> &lt;/OGRVRTLayer&gt;&lt;/OGRVRTDataSource&gt;but I need to
> change> the value
> > > of the FILTER parameter in the map file via
> URL.> >> > The
> connection with database works and allows me to put
> my> points on my>
> map.I would like to filter these data by &quot;user_id&quot; and
> > > show only> the
> data linked to a specific user, but i have to pass
> this> parameter via>
> url because it is not always the same.>
> >> > Now i m passing just the typename in
> the openlayers function,
> > > but i dont> know
> how to change the FILTER parameter in my map>
> file.&nbsp;&nbsp;&nbsp;> FILTERITEM
> &quot;user_id&quot;> >
> &nbsp;&nbsp;&nbsp; #FILTER &quot;&quot;Any
> suggestion?Thank you
> > > very much!>
> >> >>
> >> >>
> >> >
>
> _______________________________________________>
> > Users mailing list> >
> > Users at openlayers.org
> <mailto:Users at openlayers.org>> >
> http://openlayers.org/mailman/listinfo/users
> > > >>>>>>>> -->
> Ilaria Gelsomini> Francesca Pedrazzi--Bart van den EijndenOSGIS, Open
> Source GIS
> > bartvde at osgis.nlhttp://www.osgis.nl-- Ilaria GelsominiFrancesca Pedrazzi
> >
>
>
>
>
--
Ilaria Gelsomini
Francesca Pedrazzi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20070222/21b375cd/attachment.html
More information about the Users
mailing list