On Tue, Feb 28, 2012 at 11:51 PM, Martin Davis <mdavis@anonymised.com> wrote:
I'm looking for advice on best practices on writing classes which can be run
as Rendering Transformation processes. Specifically:
- the GeoServerProcess interface extends the GSProcess interface. Which one
should be used?
Whatever, those are just marker interfaces (as far as I remember)
that makes it possible for a spring bound process factory to locate its
processes in the spring context.
- there is also a RenderingProcess interface, which can be used to define
the invertQuery() and invertGrid() methods. However, it extends Process,
which then requires an execute(Map) method. I would prefer to use the
annotation-driven style of process definition, with an execute() method
taking explicit typed parameters. In fact it seems to work fine doing this
and not using the RenderingProcess interface. Is RenderingProcess obsolete?
It's not, the process world has two levels:
- the low level api, which is the only true process api, that messes with maps
and has the RenderingProcess interface that is used to bind between
processes and rendering transformations (which are actually filter functions,
there is a bridge in geotools turning every process with a single output
into a filter function, but if you try so hard to make a process that is only
a rendering transformation then you probably should make it directly
a filter function)
- the annotation driven api, which uses annotation introspection to bind to
the lower level api
Annotated processes that do rendering transforms, in particular vector
to raster ones, are at the moment nothing particularly nice to see,
they are based on naming conventions, see the raster georectification one
in GeoServer (the only process that does vector to raster and rendering
transformation at the same time).
If you want to propose patches to make that better I'm all for it, the
current approach was setup in a haste to make the raster georeferencing
code function under the requirement that the process can work both
stand-alone and as a rendering transform.
Is there any documentation on this (particularly on the annotation-driven
way of defining processes)?
None whatsoever, but GeoServer and GeoTools have quite a bit of processes
implemented to learn from (and improve upon). Contributions welcomed
Cheers
Andrea
--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549
http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf
-------------------------------------------------------