static void Main(string[] args) { var kit = new GdalKit(); var info = kit.GetGdalInfo(); Console.WriteLine("Buildinfo: " + info.BuildInfo); Console.WriteLine("Releasename: " + info.ReleaseName); Console.WriteLine("Versionnumber: " + info.VersionNumber); Console.WriteLine("Number of drivers: " + info.Drivers.Count); Console.WriteLine("Drivers: " + String.Join(',', info.Drivers)); // sample reading (city)gml file var gmlDriver = Ogr.GetDriverByName("GML"); var dsGml = gmlDriver.Open(@"LoD2_280_5657_1_NW.gml", 0); var buildingLayer = dsGml.GetLayerByName("building"); var featuresGml = buildingLayer.GetFeatureCount(0); Console.WriteLine($"Number of features: {featuresGml}"); for (var f = 0; f < featuresGml; f++) { var featureGml = buildingLayer.GetNextFeature(); var geometry = featureGml.GetGeometryRef(); // serialize to wkt... when using wkb there is an error :-( var wkt = string.Empty; geometry.ExportToWkt(out wkt); var geom = Wkx.Geometry.Deserialize <WktSerializer>(wkt); // Console.WriteLine(geom.GeometryType + ", " + ((MultiLineString)geom).Geometries.Count); // result is multilinestring... } // sample read geojson file var geojsonDriver = Ogr.GetDriverByName("GeoJSON"); var ds = geojsonDriver.Open(@"gemeenten2016.geojson", 0); var layer1 = ds.GetLayerByName("gemeenten2016"); var features = layer1.GetFeatureCount(0); Console.WriteLine("features in geojson: " + features); // sample transform coordinate from epsg:28992 to epsg:4326 var src = new SpatialReference(""); src.ImportFromEPSG(28992); Console.WriteLine("SOURCE IsGeographic:" + src.IsGeographic() + " IsProjected:" + src.IsProjected()); var dst = new SpatialReference(""); dst.ImportFromEPSG(4326); Console.WriteLine("DEST IsGeographic:" + dst.IsGeographic() + " IsProjected:" + dst.IsProjected()); var ct = new CoordinateTransformation(src, dst); double[] p = new double[3]; p[0] = 85530; p[1] = 446100; p[2] = 0; Console.WriteLine("From: x:" + p[0] + " y:" + p[1] + " z:" + p[2]); ct.TransformPoint(p); Console.WriteLine("To: x:" + p[0] + " y:" + p[1] + " z:" + p[2]); Console.WriteLine("Program finished, press any key to exit."); // Console.ReadKey(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { var gdalKit = new GdalKit(); var info = gdalKit.GetGdalInfo(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Buildinfo: " + info.BuildInfo + Environment.NewLine); await context.Response.WriteAsync("Releasename: " + info.ReleaseName + Environment.NewLine); await context.Response.WriteAsync("Versionnumber: " + info.VersionNumber + Environment.NewLine); await context.Response.WriteAsync("Number of drivers: " + info.Drivers.Count + Environment.NewLine); await context.Response.WriteAsync("Drivers: " + string.Join(',', info.Drivers) + Environment.NewLine); }); }); }