public bool CreateLayer(string layerName, GeometryType geometryType, ISpatialReference projection = null, string creationOptions = "") { var shpType = GeometryHelper.GeometryType2ShpType(geometryType); GeoProjection gp = null; if (projection != null) { gp = projection.GetInternal(); } return(_datasource.CreateLayer(layerName, shpType, gp, creationOptions)); }
public void CreateLayerSQLiteTest() { var ogrDatasource = new OgrDatasource(); try { var result = ogrDatasource.Open2(@"sqlite\onepoint.sqlite", true); Assert.IsTrue(result, "Cannot open SQLite file: " + ogrDatasource.GdalLastErrorMsg); var settings = new GlobalSettings { OgrLayerForceUpdateMode = true }; var capability = ogrDatasource.TestCapability(tkOgrDSCapability.odcCreateLayer); Debug.WriteLine("odcCreateLayer: " + capability); Assert.IsTrue(capability, "Cannot create layer"); var originalLayerCount = ogrDatasource.LayerCount; var projection = new GeoProjection(); Assert.IsTrue(projection.SetWgs84(), "Cannot set projection"); var layerCreated = ogrDatasource.CreateLayer("Test", ShpfileType.SHP_POINT, projection, "OVERWRITE=YES"); Assert.IsTrue(layerCreated, "Cannot create layer"); Debug.WriteLine(ogrDatasource.GdalLastErrorMsg); Assert.AreEqual(originalLayerCount + 1, ogrDatasource.LayerCount, "New layer isn't created"); Debug.WriteLine("GetLayerName: " + ogrDatasource.GetLayerName(ogrDatasource.LayerCount - 1)); var firstLayer = ogrDatasource.GetLayer(0); Assert.IsNotNull(firstLayer, $"Could not get first layer: {ogrDatasource.GdalLastErrorMsg}"); // Get layer: var newLayer = ogrDatasource.GetLayer(ogrDatasource.LayerCount - 1, true); // var newLayer = ogrDatasource.GetLayerByName("test", true); Assert.IsNotNull(newLayer, $"Could not get new layer: {ogrDatasource.GdalLastErrorMsg}"); // Add field: var numFeatures = newLayer.FeatureCount[true]; Debug.WriteLine("numFeatures: " + numFeatures); TestSQLiteLayers(ogrDatasource); } finally { if (ogrDatasource.LayerCount > 1) { ogrDatasource.DeleteLayer(ogrDatasource.LayerCount); } ogrDatasource.Close(); } }