Hi,
today I just spotted yet another instance where the shapefile
renderer behaviour is odd enough to cause me trouble.
In the specific, when the streaming renderer encouters a rendering
error, it logs the error and then it reports it with an event
to whoever is listening.
The shapefile renderer does not log anything. This means that if
nobody is listening there is no report whatsoever of what
went wrong during the rendering. To compensate for this, I should
add a listener to the the shapefile renderer and log the errors.
This is but the last of the issues we've encountered by using
the shapefile renderer. The work needed to fix the shapefile
renderer would be better spent bringing the last optimizations
it has back in the shapefile datastore and switch back to the
streaming renderer.
It's too late for 1.6.x, but I would really like to have this
done by 1.6.1 or 1.6.2: http://jira.codehaus.org/browse/GEOS-1540
Oh, note it would be possible to switch back now, but we
would loose much of the extra performance the shapefile renderer
gives us. If you want raw numbers, I tried to render that famous
Texas tiger roads shapefile with the both of them:
shapefile renderer: 14.25s
streaming renderer: 78.5s
As you can see the difference is massive, and it's mostly due
to shapefile datastore using inefficient coordinate sequences
(as far as I know, at least, to make sure I really have to
try out switching the shapefile handlers to build and emit
efficient coordinate sequences).
Cheers
Andrea