[OpenLayers-Dev] Problems with WMS.Post + singleTile + sld_body

Andreas Hocevar ahocevar at opengeo.org
Wed Apr 20 09:58:00 EDT 2011


I suspect this is an issue because we use a transitionEffect by default now, which does not work for IFrame tiles. Can you please create a ticket on http://trac.osgeo.org/openlayers ?

A workaround in the meantime would be to use tiled layers and configure them with a gutter (e.g. "gutter: 15" instead of "singleTile: true").

Andreas.

On Apr 20, 2011, at 15:42 , Carlos Lacerda wrote:

> Hi Andreas,
> 
> Thanks for your reply.
> 
> I repeat my test using openlayers of trunk, the parameter tileOptions:
> {maxGetUrlLength: 2048} run´s perfect but the problem of old images
> using singleTile:true persist :-(
> 
> All runs fine the only problem is the singleTile:true, with
> singleTile:false layer refresh Ok when change parameter to true old
> images persist on the map.
> Has a parameter or one point to try solve this problem ??
> 
> I see now that this problem only occurs when i use sld_body parameter,
> in example:
> 
> trafo = new OpenLayers.Layer.WMS("Transformadores", wmsServer,{
>            layers: 'axx:TRAFO_PERDAS',
>            styles: '',
> 	    format: 'image/png',
> 	    transparent: true,
> 	    sld_body:sldTrafo.getSLD()
>        }, {
>             'opacity': 1,
>             'isBaseLayer': false,singleTile:true,
>             tileOptions: {maxGetUrlLength: 2048}
>        });
> trafo2 = new OpenLayers.Layer.WMS("Transformadores2", wmsServer,{
> 		layers: 'axx:TRAFO_PERDAS',
> 		styles: '',
> 		format: 'image/png',
> 		transparent: true
> 		//sld_body:sldTrafo.getSLD()
> 	}, {
> 	      	 'opacity': 1,
> 	         'isBaseLayer': false,singleTile:true,
> 	          tileOptions: {maxGetUrlLength: 2048}
>        });
> 
> Is the same layer, one using sld_body and another not. The second
> layer without sld_body run´s fine, refresh is OK and old images not
> occurs, the first layer using sld_body with singleTile:false runs fine
> but in my case i have the know problem of "TextSymbolizer label near
> tile edges" and its necessary use singleTile:true, with singlTile:true
> problem with old images appear.
> 
> I attach a image of this two layers, the small elements is the first
> layer using sld_body with the old images problem, the greater images
> is from first layer too, in
> SLD maxScaleDenominator define the size of image, the greater images
> is correct but small elements is old from previous zoom. If i disable
> the first layer only the greater images is diplayed using SLD from
> server in second layer. SLD is the same in this case only one send by
> OpenLayers and another in the server.
> 
> In my case its necessary dynamic SLDs and OpenLayers its like a glove
> to this, singleTile is the only problem for me now :-(
> 
> All sugestions are appreciated.
> 
> Thanks a lot.
> Carlos
> 
> On Wed, Apr 20, 2011 at 4:50 AM, Andreas Hocevar <ahocevar at opengeo.org> wrote:
>> Note that the tileOptions: {maxGetUrlLength: 2048} configuration option was added *after* the last release. So can you please try out the latest trunk version of OpenLayers and see what results you get with that?
>> 
>> Andreas.
>> 
>> On Apr 19, 2011, at 15:22 , Carlos Lacerda wrote:
>> 
>>> Hi All,
>>> 
>>> I´m user OpenLayers with Geoserver in my projects to render eletrical networks.
>>> It´s fine for my purposes, but now a found a problem to use singleTile
>>> with dynamical SLD´s
>>> 
>>> Explaining....
>>> 
>>> Initially  use WMS.Post to create a layer and send a dynamic SLD using
>>> sld_body parameter
>>> 
>>> var trafo = new OpenLayers.Layer.WMS.Post("Transformadores", wmsServer,{
>>>             layers: 'axx:TRAFO_PERDAS',
>>>             cql_filter:"mes_ref='201102'";
>>>             styles: '',
>>>     srs: 'EPSG:4326',
>>>     format: 'image/png',
>>>     transparent: true,
>>>     sld_body: sldTrafo.getSLD(),//JS with SLD, its a large SLD
>>>         }, {
>>>             'opacity': 1,
>>>             'isBaseLayer': false,
>>>             'wrapDateLine': false,
>>>             buffer: 0,
>>>            //singleTile:true
>>>         });
>>> This layer works fine but have the know problem of  TextSymbolizer
>>> label near tile edges.
>>> 
>>> All right, i add parameter 'singleTile:true' to solve the problem and
>>> the same solve the problem but have a issue, when zoom or pan the map
>>> the old image is not distroyed, when pan or zoom new image is created
>>> correct but old image before created not disapears creating impression
>>> of a overlay in map, an example if a have an area with five elements
>>> when zoom this area the five elements is duplicated to ten elements,
>>> if my SLD chage simbols depending of a scale for example the old
>>> images are displayed like a overlay.
>>> It´s necessary some parameter to solve this problem ?
>>> 
>>> I´m using IE8.
>>> 
>>> Reading documentation about WMS.POST deprecated, i try use Layer.WMS
>>> using tileOptions: {maxGetUrlLength: 2048}  without success, using
>>> this method only small SLDs runs.
>>> How should i use this parameter ??
>>> 
>>> When use large SLD with this parameter the folowing error is throw by IE:
>>> 
>>> Message: Invalid Pointer
>>> 
>>> Line 156
>>> Character: 49
>>> Code: 0
>>> URI: http://openlayers.org/api/OpenLayers.js
>>> 
>>> 
>>> 
>>> Thanks a lot for any help.
>>> 
>>> --
>>> Sds,
>>> Carlos Lacerda
>>> System Architect - CIAS
>>> Brasil
>>> _______________________________________________
>>> Dev mailing list
>>> Dev at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
>> 
>> 
>> 
>> --
>> Andreas Hocevar
>> OpenGeo - http://opengeo.org/
>> Expert service straight from the developers.
>> 
>> 
> 
> 
> 
> -- 
> Sds,
> Carlos Lacerda
> System Architect - CIAS
> Brasil
> <small.png>_______________________________________________
> Dev mailing list
> Dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-dev

-- 
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.



More information about the Dev mailing list