我正在尝试使用 GDAL 制作点几何形状的 shapefile。我正在按照此处给出的示例进行操作。我使用的是 Microsoft Visual Studio,编程语言是 C#。现在,我只是在原点做一点,我正在 QGIS 中查看生成的 shapefile。出于某种原因,我无法看到我提出的观点。我也尝试制作多边形,但我面临同样的问题。下面是我写的代码: public void testSF(Dataset ds) { Console.WriteLine("Writing ERSI shapefile"); // Registering drivers OSGeo.OGR.Ogr.RegisterAll(); OSGeo.OGR.Driver driverSH = OSGeo.OGR.Ogr.GetDriverByName("ESRI Shapefile"); if (driverSH == null) { Console.WriteLine("Cannot get drivers. Exiting"); System.Environment.Exit(-1); } Console.WriteLine("Drivers fetched"); // Creating a shapefile OSGeo.OGR.DataSource dataSourceSH = driverSH.CreateDataSource("ERSI_TEST_ShapeFile.shp", new string[] { }); if (dataSourceSH == null) { Console.WriteLine("Cannot create datasource"); System.Environment.Exit(-1); } Console.WriteLine("Shapefile created"); // Creating a point layer OSGeo.OGR.Layer layerSH; layerSH = dataSourceSH.CreateLayer("PolygonLayer", null, OSGeo.OGR.wkbGeometryType.wkbPoint, new string[] { }); if (layerSH == null) { Console.WriteLine("Layer creation failed, exiting..."); System.Environment.Exit(-1); } Console.WriteLine("Polygon Layer created"); // Creating and adding attribute fields to layer OSGeo.OGR.FieldDefn fdefnName = new OSGeo.OGR.FieldDefn("Name", OSGeo.OGR.FieldType.OFTString); fdefnName.SetWidth(32); OSGeo.OGR.FieldDefn fdefnGPS = new OSGeo.OGR.FieldDefn("GPS", OSGeo.OGR.FieldType.OFTString); fdefnGPS.SetWidth(32); if (layerSH.CreateField(fdefnName, 1) != 0) { Console.WriteLine("Creating Name field failed"); System.Environment.Exit(-1); }}此代码在 0.0 和 0.0 处向多边形图层添加一个点。但是,当我在 QGIS 中打开生成的图层时,我无法看到/定位该点。任何帮助,将不胜感激。
- 2 回答
- 0 关注
- 323 浏览
添加回答
举报
0/150
提交
取消