layer.queryByPoint( ) and layer.open( ) interoperation

Sean Gillies sgillies at FRII.COM
Mon May 23 22:18:38 EDT 2005


On May 23, 2005, at 6:40 PM, Rhys Ickeringill wrote:

> Hi List,
>
> Is the following an undocumented feature or a bug?
>
> I had Mapscript code which looked something like:
>
> layer = map.getLayerByName( name )
> layer.open( )
>
> for( i = 0; i < points.length(); ++i ){
>
>     if( layer.queryByPoint( points[i], MS_SINGLE, 0 ) ){
>         result = layer.getResult( 0 )
>         shp = layer.getShape( result.tileindex, result.shapeindex )
>         info = shp.values
>         }
>     }
>
> layer.close( )
>
> But kept getting the MapServer errors to the effect "layer has not been
> opened" on the call to layer.getShape( ). Playing with it, I found
> that the
> following code gave the functionality I was after:
>
> layer = map.getLayerByName( name )
>
> for( i = 0; i < points.length(); ++i ){
>
>     if( layer.queryByPoint( points[i], MS_SINGLE, 0 ) ){
>         layer.open( )
>         result = layer.getResult( 0 )
>         shp = layer.getShape( result.tileindex, result.shapeindex )
>         info = shp.values
>         layer.close( ) // possibly redundant
>         }
>     }
>
> This leads me to believe that each call to layer.queryByPoint( ) is
> having
> the effect of layer.close( ). So - bug or feature?
>
> Regards,
>
> Rhys
>

Bug. http://mapserver.gis.umn.edu/bugs/show_bug.cgi?id=1175.

Sean


--
Sean Gillies
sgillies at frii dot com
http://zcologia.com



More information about the mapserver-users mailing list