Rendering Transforms

14 views
Skip to first unread message

jericks

unread,
Jan 8, 2012, 9:56:42 PM1/8/12
to GeoScript

Hi all!

As a part of my raster experiments (https://github.com/jericks/
geoscript-groovy/tree/raster) I was inspired by Andrea's Rendering
Transformations article (http://docs.codehaus.org/display/GEOTOOLS/
Rendering+transformations) and tried to implement them in GeoScript.
I modified the geoscript.style.Transform[1] class so it can either be
a Geometry or Rendering transform. If it is a Rendering Transform,
the FeatureTypeStyle's transformation property is set instead of the
Symbol's geometry or label property. So far so good. Here is an
example where I create a Rendering Transform that creates a minimum
rectangle for an entire Layer[2]:

Transform t = new Transform(new Function("minimumRectangle", { Layer
layer ->
def features = layer.features
def geom = new GeometryCollection(features.collect{f->f.geom})
def newLayer = new Layer()
newLayer.add([geom.minimumRectangle])
newLayer
}), Transform.RENDERING)

However, when I try to create a rendering Transform that creates a
Point Layer from a Raster Layer[2], I get an exception:

SEVERE: Don't have support for plain coverages in rendering
transformations now
java.lang.UnsupportedOperationException: Don't have support for plain
coverages in rendering transformations now
at
org.geotools.renderer.lite.StreamingRenderer.applyRenderingTransformation(StreamingRenderer.java:
2048)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:
1966)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:
804)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:
593)

I am not sure what a "plain coverage" is. I think this error is
somehow related to me not implementing the RenderingTransformation
interface correctly [3]. I really don't understand what I should be
doing with the invertQuery and invertGridGeometry methods. Can anyone
help me out?

Thanks,
Jared

[1] https://github.com/jericks/geoscript-groovy/blob/raster/src/main/groovy/geoscript/style/Transform.groovy

[2] https://github.com/jericks/geoscript-groovy/blob/raster/src/test/groovy/geoscript/style/TransformTestCase.groovy

[3] https://github.com/jericks/geoscript-groovy/blob/raster/src/main/groovy/geoscript/filter/Function.groovy

Andrea Aime

unread,
Jan 9, 2012, 4:24:31 AM1/9/12
to geos...@googlegroups.com
Uh, makes me think you are using a rather old build of GeoToools 8.x?

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

-------------------------------------------------------
Reply all
Reply to author
Forward
0 new messages