[Mapserver-users] How can I get the query info programatically?
Paul Spencer
spencer at dmsolutions.ca
Tue May 18 19:19:06 PDT 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