<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.Shkpostityyli18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FI" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">GDAL gives typically that kind of multipolygon error when the driver tries to insert a multipolygon into a layer that is created to accept only polygons. In that case casting all geometries
 into multipolygons really helps: the layer gets created to accept multipolygons, simple polygons are converted into multipolygons with one member, and multipolygons are saved as they are. I am not sure if this is the problem that you have, just want to clarify
 that the suggested fix makes sense. See also <a href="https://github.com/OSGeo/gdal/issues/2828">
https://github.com/OSGeo/gdal/issues/2828</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">By reading
<a href="https://mapserver.org/output/ogr_output.html">https://mapserver.org/output/ogr_output.html</a> the geometry type could be set at LAYER level with<br>
"ows_geomtype" "MultiPolygon"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>Lähettäjä:</b> MapServer-users <mapserver-users-bounces@lists.osgeo.org>
<b>Puolesta </b>Benedek Petrovicz<br>
<b>Lähetetty:</b> torstai 22. kesäkuuta 2023 11.17<br>
<b>Vastaanottaja:</b> Scott <public@postholer.com><br>
<b>Kopio:</b> mapserver-users@lists.osgeo.org<br>
<b>Aihe:</b> Re: [MapServer-users] FlatGeobuf as output format<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I'm not trying to create any fgb-s, but MapServer is.<o:p></o:p></p>
<div>
<p class="MsoNormal">And the issue is with MultiPolygons, so converting everything to that type doesn't help.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The data source is not fgb. It can be anything.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">It is an MSSQL DB in my instance.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Btw, converting the same dataset to fgb manually with ogr2ogr does work, and it doesn't require any extra parameters.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Isn't MapServer using ogr2ogr functionality for OGR based OUTPUTFORMATs?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I feel like it could handle it, but just hangs up because it sees MultiPolygon when checking the type.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, Jun 21, 2023 at 6:43 PM Scott <<a href="mailto:public@postholer.com">public@postholer.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">I'm not sure how you're creating your fgb's, but from an ogr2ogr context
<br>
try promoting all geoms to multi:<br>
<br>
-nlt PROMOTE_TO_MULTI<br>
<br>
On 6/21/23 07:50, Benedek Petrovicz wrote:<br>
> Hi!<br>
> <br>
> I'm trying to integrate OGR's FlatGeobuf driver as an output format in <br>
> my mapfiles.<br>
> It works for the most part and it's awesome, but it fails immediately <br>
> when I feed some MultiPolygons into it.<br>
> <br>
> The geometries are queried from an MSSQL DB.<br>
> <br>
> I get the following error:<br>
> msOGRWriteShape(): OGR error. Attempt to write feature failed (code=6): <br>
> ICreateFeature: Mismatched geometry type msCalculateScale(): General <br>
> error message. Invalid image width or height.<br>
> <br>
> I found a little note in the docs which corresponds with this issue <br>
> (<a href="https://mapserver.org/input/vector/ogr.html" target="_blank">https://mapserver.org/input/vector/ogr.html</a>
<br>
> <<a href="https://mapserver.org/input/vector/ogr.html" target="_blank">https://mapserver.org/input/vector/ogr.html</a>>):<br>
> /"Even though MapInfo and other OGR data sources may support layers with <br>
> mixed geometry types (e.g. points, lines and polygons in the same file) <br>
> this is not yet supported in MapServer. So you still have to define a <br>
> layer ‘TYPE’ and make sure that all the shapes in the OGR data source <br>
> are compatible with that layer type, otherwise MapServer may produce an <br>
> error about incompatible geometry types at runtime."/<br>
> /<br>
> /<br>
> So it fails for me when I have Polygons and MultiPolygons in the table <br>
> I'm querying.<br>
> But it also fails if it includes MultiPolygons only. So with no mixing <br>
> of types.<br>
> <br>
> I'm using the POLYGON type for my layer in the mapfile.<br>
> <br>
> The same dataset works fine when I'm using the GML2 output format. Even <br>
> with mixing Polygons and MultiPolygons.<br>
> <br>
> Am I doing something wrong here?<br>
> Is it a known limitation for MultiPolygons?<br>
> Is there a way to bypass the issue while retaining the geometries in the DB?<br>
> <br>
> Thank you<br>
> Petrovicz<br>
> <br>
> _______________________________________________<br>
> MapServer-users mailing list<br>
> <a href="mailto:MapServer-users@lists.osgeo.org" target="_blank">MapServer-users@lists.osgeo.org</a><br>
> <a href="https://lists.osgeo.org/mailman/listinfo/mapserver-users" target="_blank">
https://lists.osgeo.org/mailman/listinfo/mapserver-users</a><br>
_______________________________________________<br>
MapServer-users mailing list<br>
<a href="mailto:MapServer-users@lists.osgeo.org" target="_blank">MapServer-users@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/mapserver-users" target="_blank">https://lists.osgeo.org/mailman/listinfo/mapserver-users</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>