Adrian Custer wrote:
Hey all,
I'm trying to figure out the rendering toolchain, tracking particularly
three elements:
CRS (and projection): where these are determined, handled which
I believe I now underestand in general and will figure out
specifics later,
Resolution (display at 96dpi versus printing at 300+ dpi) and
Orientation(so I can pick how the map will appear on my
screen/page/powerpoint slide).
I presume that the rendering system must be capable of handling these
things. Below, you'll find Jesse's original email outlining the
rendering steps---all my understanding to date comes from that so if my
question seems confused, I am referring to that outline.
1) uDig vs. Geotools
As I understand things, uDig has a "meta" rendering system that embeds
various renderers internally. Is this meta system capable of handling
the issues above in a way that the individual renderers cannot?
Good question, uDig does define a ViewPort model that gathers together
the information you
describe for safe keeping. And it may make use of its own callback
object into the label generation
in order to handle things like rotation correctly.
2) Handling dpi
Does Geotools assume a screen resolution or is the rendering system
resolution independent? If the latter, where in the chain is the dpi
determined?
Interesting, I am trying to remember if the SLD specification is
resolution dependent. I am not
sure it is, preferring to work with things like point when it comes to
font size and so on, and making
use of pixels everywhere else.
As I understand Jesse's explanation, there's a decimation step that
happens once the 'styled features' have been created. This implies that
the dpi has been set by that stage.
3) Handling rotation
As far as I can tell, any rotation stuff I have come across has been a
hack rather than a robust part of the renderering system. That is, we
can't rotate the output while still having the text labels appear
horizontal. Is that correct? Has anyone thought seriously about this
issue?
Interesting, no I had not thought about the issue. We just put together
the following picture of SLD
rendering for our own project, I have not gone through the details of
how labels are "floated" to the
surface of the image yet ... my impression is a strategy object should
be passed in, and that as labels
are rendered they should be stored for collision detection and so on
once all are available. I recall
David Blasby working with ways to specify a priority on labels (so city
names would not be bumped
off the map by street names).
In any case the idea is that the strategy (or callback) object would
render things the right way up even in the face
of rotation of the data underneath. It would work with screen
coordinates and so on ...
Cheers, sorry I did not pay attention to the specifics for you.
Jody
thanks,
adrian
P.S. Sorry to pester the list incessantly but I do hope to figure out
enough of what is going on so I can create docs to help a whole cadre of
programmers take the library and run with it.
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel