[Mapserver-users] problem QueryByPoint

passera passera.ext at culture.gouv.fr
Thu Jul 8 04:31:21 EDT 2004


Norbert Thieme a écrit :

> passera schrieb:
>
>> Hello,
>> I'm a student french and my english is very bad.
>> My problem are the function QueryByPoint and QueryByRect.
>> I do not manage to recover information in the .dbf .
>>
>>
>> My mapfile is:
>>
>> LAYER
>>       NAME immeuble
>>       TYPE polygon
>>       STATUS ON
>>       DATA IMMEUBLE41
>>       CLASSITEM "SDAP_X"
>> *      * CLASS
>>             COLOR 0 0 0
>>             OUTLINECOLOR 0 0 0
>>             NAME "Immeuble"
>>             SYMBOL 0
>>             TEMPLATE "query.html"
>>        END
>> END
>>
>>
>> My .php is:
>>
>> $layer = $map->getlayerbyname("immeuble");
>> $point = 
>> pixeltogeo($map,$HTTP_POST_VARS["mapa_x"],$HTTP_POST_VARS["mapa_y"]);
>> $queryfound = $map->querybypoint($point,MS_SINGLE,-1);
>> if ($queryfound == MS_SUCESS){
>>       $count_results = $layer->getnumresults();
>>       print($count_results);
>> }
>> if ($queryfound == MS_FAILURE){
>>       print("failure");
>> }
>>
>> // $queryfound is every time equal MS_FAILURE
>>
>>
>> Please help
>> _______________________________________________
>> Mapserver-users mailing list
>> Mapserver-users at lists.gis.umn.edu
>> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>>
>>
>
> Hi,
>
> Try something like this:
>
> if (@$layer->queryByPoint($q_point, $q_mode, 0) == MS_SUCCESS) // you 
> can leave the @ to see the messages
> {
>   $res_count = $layer->getnumresults();
>   for ($i = 0; $i < $res_count; $i++)
>   {
>     $result = $layer->getResult($i);
>     $layer->open();
>     $items = $layer->getitems(); // get the names of the fields - you 
> only need this once per layer
>     $data_shp = $layer->getshape($result->tileindex, 
> $result->shapeindex); // get the shapeobj - each result has a shape-, 
> tile- and classindex
>     $layer->close();
>     $data_val = $data_shp->values; // get the values from the shapeobj
>   }
> }
>
> Regards,
> Norbert
>
>
Thank you very much. My problem was : $layer->queryByPoint($q_point, 
$q_mode, 0) and me I wrote $map->queryByPoint($q_point, $q_mode, 0).
$layer = layerObj  --> right for use querybypoint
$map = mapObj  --> wrong for use querybypoint



More information about the mapserver-users mailing list