[fusion-users] Problems using map.query() method
Tom Lazo
tom.lazo at hotmail.com
Tue May 12 16:59:04 EDT 2009
Hi Vitor,
I have a problem here. I use Fusion with MapServer and i'm trying to filter
some features from a layer with this code:
options.maxFeatures = 0;
options.layers = 'LOTES';
options.filter = 'ID_FICHA = 193';
this.getMap().query(options);
But it paints me the entire map when it's suppose just to paint the feature
with the id = 193.
I've changed the Query.php just like you did, but noth.
Please tell me where is my mistake.
Thanks
Tom
Vitor Fortunato wrote:
>
> I made it!
>
> I've just change the line
> if (@$oLayer->queryByShape($oSpatialFilter) == MS_SUCCESS) {
> for
> if (@$oLayer->queryByAttributes($field, $filter, MS_MULTIPLE) ==
> MS_SUCCESS)
> {
>
> where:
> - $field is the item (attribute) on wich the query is performed;
> - $filter is the expression
> - MS_MULTIPLE allow to selection of all records returned (use MS_SINGLE to
> select only the first record)
> Ex.: queryByAttributes('gid', 'gid in (1, 2, 3)', MS_MULTIPLE)
>
> I am a little bit confused about the $field parameter, because I can set
> it
> to be any field of the layer, it don't affects the query. But I have to
> set
> a valid field of the layer...
> in the $filter parameter I can use any "where" expression supported by
> PostGIS (st_intersects, st_area, in, and, like ...)
> I am using a mapfile pointing to tables in PostGIS..
>
>
> -----
>
> PS.: I don't known how to call queryByShape and queryByAttributes at the
> same time and combine the results!
>
> Reference of the queryByAttributes method:
> http://mapserver.gis.umn.edu/docs/reference/phpmapscript-class/classes/layerobj
>
>
> Best Regards
> Vitor Fortunato
>
>
>
>
> On Sat, May 31, 2008 at 9:30 PM, Paul Spencer <pspencer at dmsolutions.ca>
> wrote:
>
>> Vitor,
>>
>> you are not doing anything wrong, the mapserver code for the query()
>> function just hasn't been updated to use the filter value in Query.php
>> (although it does parse it from the request parameters).
>>
>> Patches welcome :)
>>
>> Cheers
>>
>> Paul
>>
>>
>> On 29-May-08, at 6:03 AM, Vitor Fortunato wrote:
>>
>> I am having problems to use the map.query() method to filter attributes.
>>> In this method you can send a SQL filter inside the options parameter.
>>> But it didn't works for me...
>>>
>>> I think the query method is ignoring this parameter.
>>>
>>> I've found the code bellow in the query.php file, and it seems that this
>>> file is not using the filter parameter...
>>> The code bellow, shows only the queryByShape using the $oSpatialFilter
>>> parameter...
>>>
>>>
>>> /// ... ... ... >>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>
>>> if (@$oLayer->queryByShape($oSpatialFilter) == MS_SUCCESS) {
>>> $result->hasSelection = true;
>>> $layerName = $oLayer->name;
>>> array_push($result->layers, $layerName);
>>> $result->$layerName->featureCount = $oLayer->getNumResults();
>>> //TODO: dump out the extents of the selection
>>> }
>>>
>>> /// >>>>>>>>>>>>>>>>>>>>>>>>>>> ... ... ...
>>>
>>>
>>>
>>>
>>> I have a simple widget that uses the following code:
>>>
>>> execute : function() {
>>> var options = {};
>>> options.selectionType = 'INTERSECTS';
>>> options.geometry = "POLYGON((-75.58840579710144 -10.755072463768112,
>>> -61.16086956521739 -10.755072463768112, -61.16086956521739
>>> 0.005797101449276809, -75.58840579710144 0.005797101449276809,
>>> -75.58840579710144 -10.755072463768112))";
>>> options.maxFeatures = 0;
>>> options.filter = "gid=1"
>>> options.layers = 'States';
>>>
>>> this.getMap().query(options);
>>> }
>>>
>>>
>>> the polygon intersects with 5 states, but I would like to select just
>>> the
>>> state with 'gid = 1', using the filter option.
>>> My code select the 5 states that intersect with the polygon and don't
>>> apply the filter.
>>>
>>> What I am doing wrong?
>>>
>>> _______________________________________________
>>> fusion-users mailing list
>>> fusion-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/fusion-users
>>>
>>
>>
>> __________________________________________
>>
>> Paul Spencer
>> Chief Technology Officer
>> DM Solutions Group Inc
>> http://www.dmsolutions.ca/
>>
>>
>
> _______________________________________________
> fusion-users mailing list
> fusion-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/fusion-users
>
>
--
View this message in context: http://n2.nabble.com/Problems-using-map.query%28%29-method-tp2061713p2872287.html
Sent from the Fusion Users mailing list archive at Nabble.com.
More information about the fusion-users
mailing list