[Mapserver-users] How can I get the query info programatically?

Paul Spencer spencer at dmsolutions.ca
Tue May 18 22:19:06 EDT 2004


Ethan,

the guts of it (for php mapscript) run something like this (completely 
untested for syntax or logic errors):

//replace this with whatever your input is and your desired
//query method, I'm assuming form variables named nX and nY
//will contain the PIXEL location to query at

$oPoint = ms_newPointObj();
$oPoint->setXY( $_GET['nX'], $_GET['nY'] );
if (@$oMap->queryByPoint( $oPoint, MS_MULTIPLE, -1) == MS_SUCCESS)
{
     //query returned something, find out what by inspecting each layer
     for ($i=0; $i<$oMap->numlayers; $i++)
     {
         $oLayer = $oMap->getLayer($i);
         $nResults = $oLayer->getNumResults();
         if ($nResults > 0)
         {
             echo "results for layer ".$oLayer->name."<BR>";
             $oLayer->open();
             for ($j=0; $j<$nResults; $j++)
             {
                 $oResult = $oLayer->getResult($j);
                 $oShape = $oLayer->getShape( $oResult->tileindex, 
$oResult->shapeindex);
                 //now you can access $oShape->values as an associative
                 //array of key:value pairs
                 foreach($oShape->values as $key => $value)
                 {
                     echo "$key => $value<BR>";
                 }
             }
             $oLayer->close();
         }
         else
         {
             //no results for this layer
             echo "no results for layer ".$oLayer->name." :(<BR>";
         }
     }
}
else
{
     //query returned nothing
     echo "no results found on any layer :(<BR>";
}

If you get this working, perhaps you could do as Stephen has suggested 
and add it to the accumulated knowledge of MapServerdom ;)

it is also possible to query just one or several layers directly using 
essentially the same method but accessing the layer object for 
queryByPoint instead.

Cheers,

Paul

Stephen Woodbridge wrote:
> Ethan,
> 
> THere are ac bunch of Query examples at
> http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?PerlMapScriptExamples35
> for mapserver 3.5 but on the bottom is an example mapserver 4.2. Look at 
> the quake.pl I think that does some query stuff.
> 
> I also check the archives, because this has been asked before. I thought 
> there was a straight forward query example, but I can't seem to locate 
> the one I was thinking of. Once you get your example worked out you 
> might want to post it to the wiki for others.
> 
> -Steve
> 
> Ethan Alpert wrote:
> 
>> Any chance you can be more specific? I've been to the docs several times
>> looking for how to do this and I'm not finding what I'm looking for.
>>
>> I need to access information about items that were selected with a
>> query.
>>
>> -e
>>
>> -----Original Message-----
>> From: Stephen Woodbridge [mailto:woodbri at swoodbridge.com] Sent: 
>> Tuesday, May 18, 2004 5:39 PM
>> To: Ethan Alpert
>> Cc: mapserver-users at lists.gis.umn.edu
>> Subject: Re: [Mapserver-users] How can I get the query info
>> programatically?
>>
>>
>> Yes, and there are examples. See
>>
>> http://mapserver.gis.umn.edu/doc.html
>> http://mapserver.gis.umn.edu/cgi-bin/wiki.pl
>>
>> -Steve
>>
>> Ethan Alpert wrote:
>>
>>
>>> I'd like to get the information of the items selected in a query. The 
>>> template approach isn't quite what I'm looking for. Is there a way to 
>>> extract this info with perl (or php) mapscript?
>>>
>>> -e
>>>
>>> _______________________________________________
>>> Mapserver-users mailing list Mapserver-users at lists.gis.umn.edu
>>> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>>>
>>
>>
>>
> 
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
> 

-- 
  -----------------------------------------------------------------
|Paul Spencer                           pspencer at dmsolutions.ca   |
|-----------------------------------------------------------------|
|Applications & Software Development                              |
|DM Solutions Group Inc                 http://www.dmsolutions.ca/|
  -----------------------------------------------------------------




More information about the mapserver-users mailing list