I can only speculate about the sources of all our data. But I dropped the M values, so this is resolved.
Note that I can reproduce the problem with an empty table: create table testhy( geometry geometry constraint enforce_dims_the_geom check (st_ndims(geometry) = 4) ); Thanks for all your help. I really should spend some time to learn postgis and geoserver (and basic mapping theory) soon. Oh well, I'll ask my wife for a good book on the topic for christmas. Hans Yperman Department IT [cid:image001.png@01D90A22.969E1A90] Vlaams Instituut voor de Zee vzw InnovOcean Campus, Jacobsenstraat 1 8400 Oostende, België ☎+32 (0) 59 33 61 13 📧 hans.yper...@vliz.be<mailto:hans.yper...@vliz.be> www.vliz.be<http://www.vliz.be> From: Ian Turton <ijtur...@gmail.com> Sent: woensdag 7 december 2022 9:40 To: Hans Yperman <hans.yper...@vliz.be> Cc: Jody Garnett <jody.garn...@gmail.com>; Geoserver-users <geoserver-users@lists.sourceforge.net> Subject: Re: [Geoserver-users] Output dimension must be 2 or 3 Was the data originally (or at some point in its journey) a shapefile - -1.797693134862316e+308 looks like the sentinel used by Shapefiles for NaN in M values. Ian On Tue, 6 Dec 2022 at 20:32, Hans Yperman <hans.yper...@vliz.be<mailto:hans.yper...@vliz.be>> wrote: Hi, I just found out all the M values are identical, and some huge negative value (-1.797693134862316e+308) which seems to be the lowest value that fits in a Double . So I'll ask the business if I am allowed to just drop the M coordinate. I don't know enough GIS to answer this question: What does the SRID number say in PostGIS? I don't see anything SRID-ish in ST_ASTEXT, it's just MULTIPOLYGON ZM (((numbers))) with numbers a list of 4 values , comma, 4 values, comma, … But the last constraint says check (st_srid(the_geom) = 4326) and I verified it complains if I try to violate it. Oh well, feel free to drop the question as the M values are probably invalid. Thanks for your help. Hans Yperman Department IT [cid:image001.png@01D90A22.969E1A90] Vlaams Instituut voor de Zee vzw InnovOcean Campus, Jacobsenstraat 1 8400 Oostende, België ☎+32 (0) 59 33 61 13 📧 hans.yper...@vliz.be<mailto:hans.yper...@vliz.be> www.vliz.be<http://www.vliz.be> From: Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> Sent: dinsdag 6 december 2022 17:34 To: Hans Yperman <hans.yper...@vliz.be<mailto:hans.yper...@vliz.be>> Cc: Geoserver-users <geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net>> Subject: Re: [Geoserver-users] Output dimension must be 2 or 3 Interesting, well that may be your issue? 4326 is a two-dimensional SRS, please make use of a three dimensional SRS. What does the SRID number say in PostGIS? It should be baked into each geometry (and should not work if if set to 4326). I guess it could be that you have a two dimensional XY geometry, with two measures depends how you have encoded it. -= Jody On Tue, Dec 6, 2022 at 12:35 AM Hans Yperman <hans.yper...@vliz.be<mailto:hans.yper...@vliz.be>> wrote: Thanks for your help, Jody The data is indeed XYZM, and the srid is 4326. For reference: This is the full constraint on the column: constraint enforce_dims_the_geom check (st_ndims(the_geom) = 4) constraint enforce_geotype_the_geom check ((geometrytype(the_geom) = 'MULTIPOLYGON'::text) OR (the_geom IS NULL)) constraint enforce_srid_the_geom check (st_srid(the_geom) = 4326) This is a small fragment of the data (note I get the crash even on an empty table): SELECT st_astext(the_geom) FROM the_relevant_table LIMIT 1 MULTIPOLYGON ZM ((( .. numbers ..))) Hans Hans Yperman Department IT [cid:image001.png@01D90A22.969E1A90] Vlaams Instituut voor de Zee vzw InnovOcean Campus, Jacobsenstraat 1<https://www.google.com/maps/search/Jacobsenstraat+1+%0D%0A+8400+Oostende,+Belgi%C3%AB?entry=gmail&source=g> 8400 Oostende, België<https://www.google.com/maps/search/Jacobsenstraat+1+%0D%0A+8400+Oostende,+Belgi%C3%AB?entry=gmail&source=g> ☎+32 (0) 59 33 61 13 📧 hans.yper...@vliz.be<mailto:hans.yper...@vliz.be> www.vliz.be<http://www.vliz.be> From: Jody Garnett <jody.garn...@gmail.com<mailto:jody.garn...@gmail.com>> Sent: maandag 5 december 2022 14:45 To: Hans Yperman <hans.yper...@vliz.be<mailto:hans.yper...@vliz.be>> Cc: Geoserver-users <geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net>> Subject: Re: [Geoserver-users] Output dimension must be 2 or 3 We added support for dimensions and measures in that timeframe. It looks like your geometry is setup with 4 dimensions - which is not supported. What is your coordinate reference system or SRID? Is your data XYZM? Jody On Mon, Dec 5, 2022 at 4:00 AM Hans Yperman <hans.yper...@vliz.be<mailto:hans.yper...@vliz.be>> wrote: Hello everybody, after upgrading from geoserver 2.11 to geoserver 2.22, we have a few postgis layers that refuse to render in the preview. Here is a simplified example, in postgis: create table testhy( geometry geometry constraint enforce_dims_the_geom check (st_ndims(geometry) = 4) ); We get this exception: Caused by: java.lang.IllegalArgumentException: Output dimension must be 2 or 3 at org.locationtech.jts.io.WKBWriter.<init>(WKBWriter.java:291) at org.locationtech.jts.io.WKBWriter.<init>(WKBWriter.java:270) at org.locationtech.jts.io.WKBWriter.<init>(WKBWriter.java:240) at org.geotools.data.postgis.PostGISPSDialect.setGeometryValue(PostGISPSDialect.java:253) at org.geotools.jdbc.JDBCDataStore.setPreparedFilterValues(JDBCDataStore.java:3810) at org.geotools.jdbc.JDBCDataStore.selectSQLPS(JDBCDataStore.java:3728) at org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:609) I browsed the code. geoserver gets dimension 4 based on a variant of this query (PostGISDialect.java): SELECT * FROM GEOMETRY_COLUMNS WHERE coord_dimension not in (2,3); but the query generated by geoserver to fetch the data is : SELECT ST_AsBinary(ST_Force2D("geometry")) as "geometry" FROM "public"."testhy" WHERE […] Note the ST_Force2D that removes the Z and M dimension, so there are only 2 dimensions, not 4. Hans Yperman Department IT [cid:image001.png@01D90A22.969E1A90] Vlaams Instituut voor de Zee vzw InnovOcean Campus, Jacobsenstraat 1<https://www.google.com/maps/search/Jacobsenstraat+1+%0D%0A+8400+Oostende,+Belgi%C3%AB?entry=gmail&source=g> 8400 Oostende, België<https://www.google.com/maps/search/Jacobsenstraat+1+%0D%0A+8400+Oostende,+Belgi%C3%AB?entry=gmail&source=g> ☎+32 (0) 59 33 61 13 📧 hans.yper...@vliz.be<mailto:hans.yper...@vliz.be> www.vliz.be<http://www.vliz.be> _______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net<mailto:Geoserver-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/geoserver-users -- -- Jody Garnett -- -- Jody Garnett _______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net<mailto:Geoserver-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/geoserver-users -- Ian Turton
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users