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