<div dir="ltr"><div><div><div>I have been getting "ERROR: Unknown geometry type: 12 - MultiSurface" on some operations since importing a File GeoDatabase containing curved geometries into PostGIS using a recent OGR (2.2.0dev trunk@37918).  Using ST_CurveToLine(geom) instead or the original curved geometry is a work around, but it would be desirable to directly use the original geometry if possible.  Is this the expected behavior?<br><br>I am running PostgreSQL 9.5.5/PostGIS 2.2.2 from <a href="http://apt.postgresql.org/pub/repos/apt/">http://apt.postgresql.org/pub/repos/apt/</a> on Ubuntu 12.04.<br><br>It is unclear to me from the documentation if Curved geometries are generally supported or only with a few specific functions.  I have found some references to "Unknown geometry type" errors from long ago that reference closed tickets against PostGIS 1.x and a Stack Exchange question "Smallworld > FME > PostGIS > QGIS" that seems similar but different.<br><br></div><div>Steps to reproduce:<br></div><br></div>SELECT version();<br>                                                version                                                <br>-------------------------------------------------------------------------------------------------------<br> PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit<br>(1 row)<br><br>SELECT postgis_full_version();<br>                                                                        postgis_full_version                                                                        <br>--------------------------------------------------------------------------------------------------------------------------------------------------------------------<br> POSTGIS="2.2.2 r14797" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.7.1, 23 September 2009" GDAL="GDAL 1.9.0, released 2011/12/29" LIBXML="2.7.8" LIBJSON="UNKNOWN" RASTER<br>(1 row)<br><br>-- Operations fail with MultiSurface<br>select ST_IsValid(<br> ST_GeomFromEWKT(<br>  'MULTISURFACE(((563145 151701,563144 151530,<br>                  563106 151523,563107 151701,<br>                  563145 151701)))'<br> )<br>);<br>psql:postgis-multisurface.sql:12: ERROR:  Unknown geometry type: 12 - MultiSurface<br><br><br><br>select ST_Intersects(<br> ST_GeomFromEWKT(<br>  'MULTISURFACE(((563145 151701,563144 151530,<br>                  563106 151523,563107 151701,<br>                  563145 151701)))'<br> ),<br> ST_GeomFromEWKT(<br>   'POLYGON((0 0, 600000 180000, 600000 0, 0 0))'<br> )<br>);<br>psql:postgis-multisurface.sql:23: ERROR:  Unknown geometry type: 12 - MultiSurface<br>CONTEXT:  SQL function "st_intersects" statement 1<br><br><br><br>-- It works with ST_CurveToLine <br>select ST_IsValid(<br> ST_CurveToLine(ST_GeomFromEWKT(<br>  'MULTISURFACE(((563145 151701,563144 151530,<br>                  563106 151523,563107 151701,<br>                  563145 151701)))'<br> ))<br>);<br> st_isvalid <br>------------<br> t<br>(1 row)<br><br><br>select ST_Intersects(<br> ST_CurveToLine(ST_GeomFromEWKT(<br>  'MULTISURFACE(((563145 151701,563144 151530,<br>                  563106 151523,563107 151701,<br>                  563145 151701)))'<br> )),<br> ST_GeomFromEWKT(<br>   'POLYGON((0 0, 600000 180000, 600000 0, 0 0))'<br> )<br>);<br> st_intersects <br>---------------<br> t<br>(1 row)<br><br><br></div></div>