<div dir="ltr"><div>I have a working c# GDAL app - I might be able to help.</div><div><br></div><div>I am not sure I understand what you are trying to do? It looks like you are creating a GeoJSON file from a shapefile and that actually only makes any sense if you want to save the file?</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br><br></div><div> <i> private FeatureCollection ImportShapeFile(IEnumerable<ImportFile> files)<br> {<br> var tempJsonFilename = $"/vsimem/temp.json";<br><br> GdalConfiguration.ConfigureGdal();<br> GdalConfiguration.ConfigureOgr();<br><br> try<br> {<br><br> // Copy into GDAL<br> foreach (var file in files)<br> {<br> Gdal.FileFromMemBuffer($"/vsimem/{file.Filename}", file.Data);<br> }</i></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><i> // Load shape<br> var shpDriver = Ogr.GetDriverByName("ESRI Shapefile");<br> var shpFile = files.First(f => f.Filename.EndsWith(".shp"));<br> var shpDatasource = Ogr.Open($"/vsimem/{shpFile.Filename}", 0);<br> if (shpDatasource == null)<br> return null;<br><br> var shpLayer = shpDatasource.GetLayerByIndex(0);<br><br> // Setup projection transform to WGS84<br> var srcProjection = shpLayer.GetSpatialRef();<br> var destProjection = new SpatialReference("");<br> destProjection.ImportFromEPSG(4326);<br> var transform = new CoordinateTransformation(srcProjection, destProjection);<br><br> // Copy layer to geo json<br> var jsonDriver = Ogr.GetDriverByName("GeoJSON");<br> var jsonDataSource = jsonDriver.CreateDataSource(tempJsonFilename, new string[] { });<br> var jsonLayer = jsonDataSource.CreateLayer(shpLayer.GetName(), destProjection, shpLayer.GetGeomType(), new string[] { });<br><br> var shpFeature = shpLayer.GetNextFeature();<br> while (shpFeature != null)<br> {<br> // Transform geometry<br> var geometry = shpFeature.GetGeometryRef();<br> geometry.Transform(transform);<br><br> // Save feature to new layer<br> jsonLayer.CreateFeature(shpFeature);<br><br> shpFeature = shpLayer.GetNextFeature();<br> }<br><br> // TODO: HERE I would like to read the information from my tempJsonFile back into a byte array, before unlinking.<br> var jsonBuffer = new byte[0];<br><br> // Close all GDAL stuff<br> jsonLayer.Dispose();<br> jsonDataSource.Dispose();<br> jsonDriver.Dispose();<br> shpLayer.Dispose();<br> shpDatasource.Dispose();<br> shpDriver.Dispose();<br><br> // Read json from buffer<br> var jsonText = Encoding.UTF8.GetString(jsonBuffer, 0, jsonBuffer.Length); ;<br> var json = JsonConvert.DeserializeObject<FeatureCollection>(jsonText);<br><br> return json;<br> }<br> catch (Exception exception)<br> {<br> throw exception;<br> }<br> finally<br> {<br> // Clear files from GDAL<br> Gdal.Unlink(tempJsonFilename);<br> foreach (var file in files)<br> {<br> Gdal.Unlink($"/vsimem/{file.Filename}");<br> }<br> }<br> }</i><br></div><div><br></div><div><br></div><div>Best Regards</div><font color="#888888"><div>Christian</div></font><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><br><div><div style="font-size:13px"><b><font face="georgia, serif">Christian Sörensen</font></b></div><div><b><font face="georgia, serif" size="1">UX Productions AB</font></b></div><div style="color:rgb(136,136,136);font-size:13px"><div><font face="trebuchet ms, sans-serif"><font size="1"><a href="http://www.uxproductions.se" target="_blank">www.uxproductions.se</a> | <a href="mailto:christian@uxproductions.se" style="color:rgb(17,85,204)" target="_blank">christian@uxproductions.se</a> | </font><span style="font-size:x-small"><a value="+46702677212" style="color:rgb(17,85,204)">+46 (0)70 26 77 212</a> </span></font></div><div><span lang="EN-GB" style="font-size:13.5pt;font-family:Webdings;color:green">P</span><span lang="EN-GB" style="font-size:11.5pt;font-family:Calibri,sans-serif;color:black"> </span><span style="font-size:7.5pt;font-family:Arial,sans-serif;color:green">Överväg miljöpåverkan innan du skriver ut detta e-postmeddelande</span></div></div></div></div></div></div>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a></blockquote></div></div>