[postgis-users] mechanix of a query

P Kishor punk.kish at gmail.com
Sun Sep 20 08:11:08 PDT 2009


On Sun, Sep 20, 2009 at 8:52 AM, Pavel Iacovlev
<iacovlev.pavel at gmail.com> wrote:
> 1)
> I would start investigating from MapServer. What are your layer values for
> TOLERANCEUNITS pixels
> TOLERANCE 10 (your value here)

Thanks, will look at that setting. Right now I don't have any
tolerance values set.

>
> 2)
> Do you debug your requests with firebug ?

Yes.

The interesting thing is... protection should be n-ways... OpenLayers
should allow setting min/max values of bbox queries (perhaps it does;
haven't explored that yet), MapServer should not send queries that
cause a hang (but, how is it to know?), and, most importantly, Pg
shouldn't hang when the bbox is smaller than the geometry. In this, my
geometry is 1 km by 1 km, and the bbox being sent is smaller. Also,
instead of finding all the geometries that fall within a bbox, the
correct result really should be the geometry within which my click
falls.


>
> Your speed should not be constant, you should get faster responses for
> smaller bboxes.
>
> On Sun, Sep 20, 2009 at 4:28 PM, P Kishor <punk.kish at gmail.com> wrote:
>> On Sun, Sep 20, 2009 at 2:47 AM, Pavel Iacovlev
>> <iacovlev.pavel at gmail.com> wrote:
>>> You can enable debug of Mapserver
>>> http://mapserver.org/development/rfc/ms-rfc-28
>>>
>>> You can configure PostgreSQL to log all your queries. Here is a tool
>>> to analyze them and how to make PostgreSQL log them
>>> http://pgfouine.projects.postgresql.org/tutorial.html
>>>
>>> Mapserver computes the current bbox view and sends the query to
>>> PostGIS and then you get all the geometries that are inside that bbox.
>>> Thats why you should create a GisT index to speed things up.
>>>
>>
>> Thanks for the logging info. I will do so. Actually, I do have a Gist
>> index on my layer. It is a simple, lat/lon grid over my study area. I
>> have a WMSGetFeatureInfo control in OpenLayers that returns the xmin,
>> ymin, xmax, ymax for the grid square containing the user's mouse
>> click.
>>
>> When I am zoomed out (example queries below), the bbox is
>>
>> xmax: -88.026581        ymax: 45.970243
>> xmin: -89.435577        ymin: 45.325117
>>
>> The result comes back immediately.
>>
>> When I am zoomed in, the result never comes back. The bbox sent in the query is
>>
>> xmax: -88.643017        ymax: 45.688914
>> xmin: -88.819141        ymin: 45.608274
>>
>>
>> As you can see, the bbox in the second query is very small, and my
>> guess is, no geometry is found within that bbox. That itself is
>> erroneous, however, the funny thing is, I don't even get a "0" result.
>> There is simply no response from the server, and my user interface
>> just hangs, waiting for a response to WMSGetFeatureInfo.
>>
>> From the user's perspective, this is confusing. Since I am requesting
>> the info for the grid square in which my click is contained, its speed
>> should be constant, no matter how much I am zoomed in or out. After
>> all, the mouse can have only one click x,y, and that click can only be
>> contained within one grid square, no matter what my zoom level. Of
>> course, when I am zoomed out, then the precision of which grid square
>> my click falls within is very coarse, and I may not get the correct
>> grid square back, however, when I am zoomed in, I should be able to
>> more accurately click within the grid square I desire. So, actually,
>> zooming in is, from the user's perspective, a desired state.
>>
>> I am not sure which technology here is at fault. I have OpenLayers,
>> MapServer and PostGIS in play, and something is failing to work as
>> intuited.
>>
>> Any suggestions?
>>
>>
>>
>>
>>> On Sun, Sep 20, 2009 at 7:15 AM, P Kishor <punk.kish at gmail.com> wrote:
>>>> I am trying to understand the mechanics of a getfeatureinfo query. My
>>>> setup is data in Pg/PostGIS, served by MapServer via WMS, with
>>>> OpenLayers in the front. When I click on a map and send a
>>>> GetFeatureInfo query, MapServer grabs the x,y sent in the URL, and,
>>>> for the layer (also sent in the URL), finds the row in the table which
>>>> contains the x,y of my click.
>>>>
>>>> How does MapServer do that?
>>>>
>>>> Does it run a Pg/PostGIS query for this?
>>>> How can I find out the syntax of this query?
>>>>
>>>> If a GetFeatureInfo takes too long, what can I do to speed it up?
>>>>
>>>>
>>>> --
>>>> Puneet Kishor
>>>> _______________________________________________
>>>> postgis-users mailing list
>>>> postgis-users at postgis.refractions.net
>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>
>>>
>>>
>>>
>>> --
>>> http://iap.md, The future is open
>>>
>>
>>
>>
>> --
>> Puneet Kishor http://www.punkish.org
>> Carbon Model http://carbonmodel.org
>> Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
>> Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor
>> Nelson Institute, UW-Madison http://www.nelson.wisc.edu
>> -----------------------------------------------------------------------
>> Assertions are politics; backing up assertions with evidence is science
>> =======================================================================
>> Sent from Madison, WI, United States
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>
>
>
> --
> http://iap.md, The future is open
>



-- 
Puneet Kishor http://www.punkish.org
Carbon Model http://carbonmodel.org
Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor
Nelson Institute, UW-Madison http://www.nelson.wisc.edu
-----------------------------------------------------------------------
Assertions are politics; backing up assertions with evidence is science
=======================================================================
Sent from Madison, WI, United States



More information about the postgis-users mailing list