Discussion:
Tile rendering problem
(too old to reply)
Tom (JDi Solutions)
2007-05-30 12:32:49 UTC
Permalink
Hi there,

I am experiencing problems with geoserver 1.5.0

This image (http://tinyurl.com/yseqbz) shows OpenLayers with some aerial
photography as the base layer and then a data layer drawn by Geoserver via
WMS over the top (green dots) Most of the tiles are rendered perfectly but
occasionally they are rendered with no data. The two missing ones in the
middle have been rendered by geoserver but have come out wrong because the
area of green dots which covers the rest of the map should also cover those
tiles. The problem is exacerbated because the tiles are cached so they've
now been cached wrong! Clearing the cache and re-rendering usually means
they are drawn correctly but scrolling round the map reveals that the
problem has just moved. So far I have only seen this on tiles where the
whole tile area is covered by a single feature but this may be a red
herring. No idea as yet if this is also the case in previous versions, is
it worth checking?

I am using an Oracle datastore, there seems to be no problem with the WMS
request which is shown below:

http://myserver:8080/geoserver/wms?LAYERS=my_layer&FORMAT=image%2Fgif&ISBASELAYER=false&TRANSPARENT=true&OPACITY=0&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A27700&BBOX=542361.8%2C255590.4%2C542515.4%2C255744&WIDTH=256&HEIGHT=256

Compared to one which rendered correctly:

http://devserver:8080/geoserver/wms?LAYERS=my_layer&FORMAT=image%2Fgif&ISBASELAYER=false&TRANSPARENT=true&OPACITY=0&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A27700&BBOX=542361.8%2C255744%2C542515.4%2C255897.6&WIDTH=256&HEIGHT=256

any help is greatly appreciated.

regards,

Tom
Andrea Aime
2007-05-30 12:49:56 UTC
Permalink
Post by Tom (JDi Solutions)
Hi there,
I am experiencing problems with geoserver 1.5.0
This image (http://tinyurl.com/yseqbz) shows OpenLayers with some aerial
photography as the base layer and then a data layer drawn by Geoserver
via WMS over the top (green dots) Most of the tiles are rendered
perfectly but occasionally they are rendered with no data. The two
missing ones in the middle have been rendered by geoserver but have come
out wrong because the area of green dots which covers the rest of the
map should also cover those tiles. The problem is exacerbated because
the tiles are cached so they've now been cached wrong! Clearing the
cache and re-rendering usually means they are drawn correctly but
scrolling round the map reveals that the problem has just moved. So far
I have only seen this on tiles where the whole tile area is covered by a
single feature but this may be a red herring. No idea as yet if this is
also the case in previous versions, is it worth checking?
Well, in Geoserver 1.5.1-rc1 we do use OpenLayers for map preview, and
I never noticed that a feature covering a full tile makes the tile
be transpaent. Yet, sometimes OpenLayers gets fed up of waiting and
simply does not show the tile. You can force openlayers to retry
loading tiles multiple times with the following line of javascript:

OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;

Also, in Geoserver 1.5.1-rc1, just released, we have an on the fly
meta tiler that should be good if your map has labels. Map previews
do use it in 1.5.1, and you can find docs here:
http://docs.codehaus.org/display/GEOSDOC/WMS+vendor+parameters
If you would like to try I out and report your experience it would
be great. The image starts loading a bit later, but then tiles
should be loaded faster than without the on the fly meta tiler.

Cheers
Andrea
Tom (JDi Solutions)
2007-05-30 12:53:47 UTC
Permalink
Post by Andrea Aime
Post by Tom (JDi Solutions)
Hi there,
I am experiencing problems with geoserver 1.5.0
This image (http://tinyurl.com/yseqbz) shows OpenLayers with some aerial
photography as the base layer and then a data layer drawn by Geoserver
via WMS over the top (green dots) Most of the tiles are rendered
perfectly but occasionally they are rendered with no data. The two
missing ones in the middle have been rendered by geoserver but have come
out wrong because the area of green dots which covers the rest of the
map should also cover those tiles. The problem is exacerbated because
the tiles are cached so they've now been cached wrong! Clearing the
cache and re-rendering usually means they are drawn correctly but
scrolling round the map reveals that the problem has just moved. So far
I have only seen this on tiles where the whole tile area is covered by a
single feature but this may be a red herring. No idea as yet if this is
also the case in previous versions, is it worth checking?
Well, in Geoserver 1.5.1-rc1 we do use OpenLayers for map preview, and
I never noticed that a feature covering a full tile makes the tile
be transpaent. Yet, sometimes OpenLayers gets fed up of waiting and
simply does not show the tile. You can force openlayers to retry
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
The images are definitely being loaded correctly by OpenLayers and they are
cached which suggests Geoserver has rendered them. Also, it seems it is
only the shading that has not been rendered correctly, see my latest example

Also, in Geoserver 1.5.1-rc1, just released, we have an on the fly
Post by Andrea Aime
meta tiler that should be good if your map has labels. Map previews
http://docs.codehaus.org/display/GEOSDOC/WMS+vendor+parameters
If you would like to try I out and report your experience it would
be great. The image starts loading a bit later, but then tiles
should be loaded faster than without the on the fly meta tiler.
I will look into this.

Cheers
Post by Andrea Aime
Andrea
Andrea Aime
2007-05-30 13:59:18 UTC
Permalink
Post by Andrea Aime
Well, in Geoserver 1.5.1-rc1 we do use OpenLayers for map preview, and
I never noticed that a feature covering a full tile makes the tile
be transpaent. Yet, sometimes OpenLayers gets fed up of waiting and
simply does not show the tile. You can force openlayers to retry
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
The images are definitely being loaded correctly by OpenLayers and they
are cached which suggests Geoserver has rendered them. Also, it seems
it is only the shading that has not been rendered correctly, see my
latest example
I tried with the tiger:giant_polygon sample data, which is an enormous
rectangle, both with a solid gray fill, and a fill using an external
image, and both work fine.
So, we have to understand what is peculiar with your case... it
may be the Oracle datastore. I know there are issues with Oracle
in large area extents (bbox queries spanning more than half of the
earth), but it does not seem to be your case.
Could you also post your SLD symbolizer?

Cheers
Andrea
Tom (JDi Solutions)
2007-05-30 14:36:07 UTC
Permalink
Below is the style for the specific feature. Do you want to see the whole
file?

<Rule>
<Name>Rule 14</Name>
<Title>Green Belt GB/1</Title>
<Abstract>Thick Green border</Abstract>

<ogc:Filter>
<ogc:PropertyIsEqualTo>

<ogc:PropertyName>FEATURE_TYPE</ogc:PropertyName>
<ogc:Literal>Green_Belt</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>


<!-- like a linesymbolizer but with a fill too -->
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:type="simple"
xlink:href="greendots.gif"/>
<Format>image/gif</Format>
</ExternalGraphic>
<Opacity>
<ogc:Literal>0</ogc:Literal>
</Opacity>
<Size>
<ogc:Literal>9</ogc:Literal>
</Size>
<Rotation>
<ogc:Literal>0.5</ogc:Literal>
</Rotation>
</Graphic>
</GraphicFill>
</Fill>
<Stroke>
<CssParameter
name="stroke">#00FF00</CssParameter>
<CssParameter
name="stroke-width">3</CssParameter>
<CssParameter
name="stroke-opacity">1</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
Post by Andrea Aime
Post by Andrea Aime
Well, in Geoserver 1.5.1-rc1 we do use OpenLayers for map preview,
and
Post by Andrea Aime
I never noticed that a feature covering a full tile makes the tile
be transpaent. Yet, sometimes OpenLayers gets fed up of waiting and
simply does not show the tile. You can force openlayers to retry
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
The images are definitely being loaded correctly by OpenLayers and they
are cached which suggests Geoserver has rendered them. Also, it seems
it is only the shading that has not been rendered correctly, see my
latest example
I tried with the tiger:giant_polygon sample data, which is an enormous
rectangle, both with a solid gray fill, and a fill using an external
image, and both work fine.
So, we have to understand what is peculiar with your case... it
may be the Oracle datastore. I know there are issues with Oracle
in large area extents (bbox queries spanning more than half of the
earth), but it does not seem to be your case.
Could you also post your SLD symbolizer?
Cheers
Andrea
Andrea Aime
2007-05-30 14:42:32 UTC
Permalink
Post by Tom (JDi Solutions)
Below is the style for the specific feature. Do you want to see the
whole file?
No, no need. The trouble is that I don't see anything pecurial
about this file.
Can you dump the oracle layer to a shapefile, zip it and sent
it to me along with the full SLD file by private mail, or put them
somewhere I can access them (http/ftp server)? I cannot reproduce this
behaviour in any way, so I guess the only way to track this
down is to look what the map renderer is doing with a debugger.

Cheers
Andrea

Tom (JDi Solutions)
2007-05-30 12:52:22 UTC
Permalink
Indeed, the "whole tile area is covered" bit was a red herring. See
example: http://tinyurl.com/2vznk4 which shows interestingly that
geoserver seems to have just forgotten to shade it. The garish green border
is the edge of the dotted shaded area. The border is shown in the tile but
it is not shaded.
Post by Tom (JDi Solutions)
Hi there,
I am experiencing problems with geoserver 1.5.0
This image (http://tinyurl.com/yseqbz) shows OpenLayers with some aerial
photography as the base layer and then a data layer drawn by Geoserver via
WMS over the top (green dots) Most of the tiles are rendered perfectly but
occasionally they are rendered with no data. The two missing ones in the
middle have been rendered by geoserver but have come out wrong because the
area of green dots which covers the rest of the map should also cover those
tiles. The problem is exacerbated because the tiles are cached so they've
now been cached wrong! Clearing the cache and re-rendering usually means
they are drawn correctly but scrolling round the map reveals that the
problem has just moved. So far I have only seen this on tiles where the
whole tile area is covered by a single feature but this may be a red
herring. No idea as yet if this is also the case in previous versions, is
it worth checking?
I am using an Oracle datastore, there seems to be no problem with the WMS
http://myserver:8080/geoserver/wms?LAYERS=my_layer&FORMAT=image%2Fgif&ISBASELAYER=false&TRANSPARENT=true&OPACITY=0&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A27700&BBOX=542361.8%2C255590.4%2C542515.4%2C255744&WIDTH=256&HEIGHT=256
http://devserver:8080/geoserver/wms?LAYERS=my_layer&FORMAT=image%2Fgif&ISBASELAYER=false&TRANSPARENT=true&OPACITY=0&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A27700&BBOX=542361.8%2C255744%2C542515.4%2C255897.6&WIDTH=256&HEIGHT=256
any help is greatly appreciated.
regards,
Tom
Continue reading on narkive:
Loading...