Python Mapscript QueryByPoint

Sean Gillies sgillies at FRII.COM
Wed Mar 9 06:56:33 PST 2005


Jon,

Check the querying howto under mapscript/doc.  I am hosting an HTML
version of the same doc at


http://users.frii.com/sgillies/projects/mapscript/querying-HOWTO.html

cheers,
Sean

On Mar 9, 2005, at 7:52 AM, Jon Saints wrote:

> Thanks to the list,
>
> adding a blank template to my mapfile worked like a
> charm. Now I can access the resultset and call the
> function results.getResult(0).  this object appears to
> only have a memeber variable called shapeindex.
>
> how can I use this information to get the other
> attribute fields from the dbf information in the shape
> file?
>
> thanks in advance
> Jon
>
>
> --- Eric Bridger <eric at GOMOOS.ORG> wrote:
>> On Tue, 2005-03-08 at 07:49, Jon Saints wrote:
>>> I am having trouble querying a flat shapefile
>> using
>>> python mapscript with the queryByPoint function.
>>>
>>> My getResults always equals None. I believe my
>> trouble
>>> has something to do with: (from the swig
>>> documentation) "A query will not set results for a
>>> layer with a NULL 'template' attribute."
>>>
>>> I have tried using both map and pixel coords for
>> the
>>> point object. Both point objects, I am sure
>> intersect
>>> a feature of layer 0 on my map.
>>>
>>> I receive the error:
>>> "'NoneType' object has no attribute 'numresults'"
>>>
>>> My code:
>>> ------------------------------------------
>>> #Map coords
>>> #click = pointObj()
>>> #click.x = 77.01
>>> #click.y = 38.89
>>>
>>> #pixel Coords
>>> click = pointObj()
>>> click.x = 300
>>> click.y = 200
>>>
>>> myMap.getLayer(0).queryByPoint( myMap, click,
>>> MS_SINGLE, 10.0 )
>>> results = myMap.getLayer(0).getResults()
>>> output = results.numresults
>>> -------------------------------------------
>>>
>>>
>>> excerpt from My mapfile:
>>> ------------------------------------------
>>> LAYER
>>>   NAME dcdem2000
>>>   TYPE POLYGON
>>>   STATUS ON
>>>   METADATA
>>>     desc "Census Blocks"
>>>     logo "test.jpg"
>>>   END
>>>   DATA "/home/jons/Data/DC/created/dcdem2000"
>>>   CLASS
>>>     NAME "Census Blocks 2000"
>>>     COLOR 225 225 225
>>>     OUTLINECOLOR 100 100 100
>>>   END
>>> END
>>> ------------------------------------------
>>
>> In your LAYER add TEMPLATE "ttt".
>> That will define a template and allow queries even
>> though you don't use
>> it.
>>
>> Eric
>>
>
>
--
Sean Gillies
sgillies at frii dot com
http://users.frii.com/sgillies



More information about the MapServer-users mailing list