[Geoserver-users] Failing to Render WMS PNG Image

Hi,

You have two troubles: First you have not used WMS before and you feel not sure about how to make correct requests. Second, you are using some complex feature type that may make some special troubles.

Try to cut your cake and make a new layer with simple data from your area. For example the World borders shapefiles are in EPSG:4326 and should be good for you http://thematicmapping.org/downloads/world_borders.php

Once you have made your system to show images for you from this dataset you know that pretty much is OK. After that change into your own dataset and see what happens. If it fails, you can do more detailed questions for us and we can concentrate to what is essential. It will take some time to prepare the reference layer, but it will save more.

-Jukka Rahkonen

···

Ryan Moody wrote:

Andrea, Ian, Rahkonen and Rini, thank you all for your suggestions. I’m now using the following WMS request:

http://localhost:8080/geoserver/wms?

SERVICE=WMS&

REQUEST=GetMap&

VERSION=1.1.0&

WIDTH=459&

HEIGHT=353&

LAYERS=sprint21:DepthArea&

TRANSPARENT=TRUE&

FORMAT=image/png&

BBOX=-1.304114,50.724729,-1.040936,50.817929&

SRS=EPSG:4326&

STYLES=

I believe this is the correct WMS request following Ian’s guidance – I’ve also set STYLES=, which should make the layer use its default style. I’ve checked in the GeoServer Web Admin page – my DepthArea layer has “polygon” as its default style, and this SLD just specifies that polygons should be rendered in a certain colour – there are no complex rendering rules based on the feature’s attribution, so I don’t think the bounding box error is being caused by an invalid styling.

Can you think of anything else I can try, or any other configurations I should check that may resolve this bounding box issue?

Best Regards,

Ryan

From: Rini.Angreani@anonymised.com [mailto:Rini.Angreani@anonymised.com]
Sent: 08 November 2013 09:55
To: andrea.aime@anonymised.com; Ryan Moody; Ben.Caradoc-Davies@anonymised.com.
Cc: geoserver-users@lists.sourceforge.net; Francoise Kingman; Neil Kirk
Subject: RE: [Geoserver-users] Failing to Render WMS PNG Image

Hi Ryan,

I suspect it has something to do with your style.

Is it referring to some properties that don’t exist in the complex feature type?

This might help: http://docs.geoserver.org/latest/en/user/data/app-schema/wms-support.html

Some examples in the unit tests here: https://github.com/geoserver/geoserver/blob/master/src/extension/app-schema/app-schema-test/src/test/java/org/geoserver/test/WmsGetMapTest.java

Cheers

Rini

From: andrea.aime@anonymised.com [mailto:andrea.aime@anonymised.com] On Behalf Of Andrea Aime
Sent: Friday, 8 November 2013 5:07 PM
To: Ryan Moody; Angreani, Rini (CESRE, Kensington); Caradoc-Davies, Ben (CESRE, Kensington)
Cc: GeoServer Mailing List List; Francoise Kingman; Neil Kirk
Subject: Re: [Geoserver-users] Failing to Render WMS PNG Image

On Thu, Nov 7, 2013 at 5:52 PM, Ryan Moody <ryan.moody@anonymised.com> wrote:

Caused by: java.lang.IllegalArgumentException

at org.geotools.filter.FilterFactoryImpl.bbox2d(FilterFactoryImpl.java:434)

at org.geotools.filter.FilterFactoryImpl.bbox(FilterFactoryImpl.java:423)

at org.geotools.data.complex.filter.UnmappingFilterVisitor.visit(UnmappingFilterVisitor.java:539)

at org.geotools.renderer.lite.FastBBOX.accept(FastBBOX.java:127)

at org.geotools.data.complex.AppSchemaDataAccess.unrollFilter(AppSchemaDataAccess.java:593)

at org.geotools.data.complex.AppSchemaDataAccess.unrollQuery(AppSchemaDataAccess.java:319)

at org.geotools.data.complex.AbstractMappingFeatureIterator.getUnrolledQuery(AbstractMappingFeatureIterator.java:315)

at org.geotools.data.complex.AbstractMappingFeatureIterator.<init>(AbstractMappingFeatureIterator.java:202)

at org.geotools.data.complex.DataAccessMappingFeatureIterator.<init>(DataAccessMappingFeatureIterator.java:135)

at org.geotools.data.complex.MappingFeatureIteratorFactory.getInstance(MappingFeatureIteratorFactory.java:193)

at org.geotools.data.complex.MappingFeatureCollection.features(MappingFeatureCollection.java:174)

at org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2475)

at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2045)

at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:829)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:481)

… 103 more

Ok, so we have a filter visitor in app-schema (thus, you are using complex features) that bombs

when dealing with the FastBBOX filter, an custom optimized BBOX filter implementation that

speeds up (significantly, at least on fast data sources) rendering.

Possibly something for Ben and Rini to look at?

Cheers

Andrea

==

Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

==

Ing. Andrea Aime

@geowolf

Technical Lead

GeoSolutions S.A.S.

Via Poggio alle Viti 1187

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it

http://twitter.com/geosolutions_it


Thanks all for your assistance - we’ve now identified the cause of the problem!

The DepthArea feature is defined in our GML Application Schema with a single geometry property (multiplicity unbounded). However, our app-schema mapping file takes geometries from three spatial columns (points, lines, polygons) in our PostGIS database and maps them to this single geometry attribute in the GMLAS.

This worked fine for a WFS request, but appears to fail for a WMS request. However, when we changed our mapping to be 1 to 1, i.e. a single spatial column to the single geometry attribute, the WMS successfully gave us a PNG image.

It would appear that GeoServer WMS does not support the rendering of a feature’s geometry when it is mapped across by App-Schema from multiple geometry columns. However, we have decided that a suitable workaround for us is to define multiple geometry properties in our GMLAS, one for each geometry type, and then simply perform multiple 1 to 1 mappings between a PostGIS geometry column and its corresponding property in the GMLAS.

Many thanks again for your assistance :slight_smile:

Ryan

From: Rahkonen Jukka [mailto:jukka.rahkonen@anonymised.com]
Sent: 08 November 2013 11:19
To: ‘geoserver-users@lists.sourceforge.net’
Subject: Re: [Geoserver-users] Failing to Render WMS PNG Image

Hi,

You have two troubles: First you have not used WMS before and you feel not sure about how to make correct requests. Second, you are using some complex feature type that may make some special troubles.

Try to cut your cake and make a new layer with simple data from your area. For example the World borders shapefiles are in EPSG:4326 and should be good for you http://thematicmapping.org/downloads/world_borders.php

Once you have made your system to show images for you from this dataset you know that pretty much is OK. After that change into your own dataset and see what happens. If it fails, you can do more detailed questions for us and we can concentrate to what is essential. It will take some time to prepare the reference layer, but it will save more.

-Jukka Rahkonen

Ryan Moody wrote:

Andrea, Ian, Rahkonen and Rini, thank you all for your suggestions. I’m now using the following WMS request:

http://localhost:8080/geoserver/wms?

SERVICE=WMS&

REQUEST=GetMap&

VERSION=1.1.0&

WIDTH=459&

HEIGHT=353&

LAYERS=sprint21:DepthArea&

TRANSPARENT=TRUE&

FORMAT=image/png&

BBOX=-1.304114,50.724729,-1.040936,50.817929&

SRS=EPSG:4326&

STYLES=

I believe this is the correct WMS request following Ian’s guidance – I’ve also set STYLES=, which should make the layer use its default style. I’ve checked in the GeoServer Web Admin page – my DepthArea layer has “polygon” as its default style, and this SLD just specifies that polygons should be rendered in a certain colour – there are no complex rendering rules based on the feature’s attribution, so I don’t think the bounding box error is being caused by an invalid styling.

Can you think of anything else I can try, or any other configurations I should check that may resolve this bounding box issue?

Best Regards,

Ryan

From: Rini.Angreani@anonymised.com [mailto:Rini.Angreani@anonymised.com]
Sent: 08 November 2013 09:55
To: andrea.aime@anonymised.com7…; Ryan Moody; Ben.Caradoc-Davies@anonymised.com
Cc: geoserver-users@lists.sourceforge.net; Francoise Kingman; Neil Kirk
Subject: RE: [Geoserver-users] Failing to Render WMS PNG Image

Hi Ryan,

I suspect it has something to do with your style.

Is it referring to some properties that don’t exist in the complex feature type?

This might help: http://docs.geoserver.org/latest/en/user/data/app-schema/wms-support.html

Some examples in the unit tests here: https://github.com/geoserver/geoserver/blob/master/src/extension/app-schema/app-schema-test/src/test/java/org/geoserver/test/WmsGetMapTest.java

Cheers

Rini

From: andrea.aime@anonymised.com [mailto:andrea.aime@anonymised.com] On Behalf Of Andrea Aime
Sent: Friday, 8 November 2013 5:07 PM
To: Ryan Moody; Angreani, Rini (CESRE, Kensington); Caradoc-Davies, Ben (CESRE, Kensington)
Cc: GeoServer Mailing List List; Francoise Kingman; Neil Kirk
Subject: Re: [Geoserver-users] Failing to Render WMS PNG Image

On Thu, Nov 7, 2013 at 5:52 PM, Ryan Moody <ryan.moody@anonymised.com> wrote:

Caused by: java.lang.IllegalArgumentException

at org.geotools.filter.FilterFactoryImpl.bbox2d(FilterFactoryImpl.java:434)

at org.geotools.filter.FilterFactoryImpl.bbox(FilterFactoryImpl.java:423)

at org.geotools.data.complex.filter.UnmappingFilterVisitor.visit(UnmappingFilterVisitor.java:539)

at org.geotools.renderer.lite.FastBBOX.accept(FastBBOX.java:127)

at org.geotools.data.complex.AppSchemaDataAccess.unrollFilter(AppSchemaDataAccess.java:593)

at org.geotools.data.complex.AppSchemaDataAccess.unrollQuery(AppSchemaDataAccess.java:319)

at org.geotools.data.complex.AbstractMappingFeatureIterator.getUnrolledQuery(AbstractMappingFeatureIterator.java:315)

at org.geotools.data.complex.AbstractMappingFeatureIterator.<init>(AbstractMappingFeatureIterator.java:202)

at org.geotools.data.complex.DataAccessMappingFeatureIterator.<init>(DataAccessMappingFeatureIterator.java:135)

at org.geotools.data.complex.MappingFeatureIteratorFactory.getInstance(MappingFeatureIteratorFactory.java:193)

at org.geotools.data.complex.MappingFeatureCollection.features(MappingFeatureCollection.java:174)

at org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2475)

at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2045)

at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:829)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:481)

… 103 more

Ok, so we have a filter visitor in app-schema (thus, you are using complex features) that bombs

when dealing with the FastBBOX filter, an custom optimized BBOX filter implementation that

speeds up (significantly, at least on fast data sources) rendering.

Possibly something for Ben and Rini to look at?

Cheers

Andrea

==

Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

==

Ing. Andrea Aime

@geowolf

Technical Lead

GeoSolutions S.A.S.

Via Poggio alle Viti 1187

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it

http://twitter.com/geosolutions_it