Does anybody have a sample in C# that create a GDB, create a feature class in it and add a point to this feature class.
Without using the XML as the example do?
Thanks
What about this ?
using System; using System.IO; using Esri.FileGDB; namespace CreateFileGDB { class Program { static void Main(string[] args) { // Define the path to your file geodatabase string gdbPath = @"C:\Path\To\Your\Geodatabase.gdb"; try { // Create a new File Geodatabase using (Geodatabase geodatabase = Geodatabase.Open(gdbPath, GeodatabaseOpenMode.Create)) { // Create a point feature class using (FeatureClassDescription fcDescription = new FeatureClassDescription()) { Field[] fields = fcDescription.RequiredFields; GeometryDef geometryDef = fcDescription.DefaultGeometryDef; using (FeatureClass featureClass = geodatabase.CreateFeatureClass("MyPointFC", fields, geometryDef)) { // Create a point feature and add it to the feature class using (RowBuffer rowBuffer = featureClass.CreateRowBuffer()) { using (PointShapeBuffer shapeBuffer = new PointShapeBuffer(geometryDef)) { shapeBuffer.SetPoint(0, 100.0, 50.0); rowBuffer.SetGeometry(shapeBuffer); // Set attribute values rowBuffer["Name"] = "FirstPoint"; using (Row row = featureClass.CreateRow(rowBuffer)) { Console.WriteLine("Point feature with attributes created."); } } } } } } } catch (GdbError e) { Console.WriteLine("Error: " + e.Message); } } } }
Thanks but I look for code with geodatabase API that does not need a license
Hello,Make sure to replace "C:\Path\To\Your\Geodatabase.gdb" with the path where you want to create your file geodatabase. This script creates a file geodatabase, a point feature class, and adds a point feature with attributes to it. I'm not using C, but I guess it should work. Let me know 😉
using System; using System.Runtime.InteropServices; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.DataSourcesFile; namespace CreateGeodatabase { class Program { [STAThread] static void Main(string[] args) { // Initialize the license IAoInitialize aoInit = new AoInitialize(); esriLicenseStatus licStatus = aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeBasic); if (licStatus != esriLicenseStatus.esriLicenseCheckedOut) { Console.WriteLine("License initialization failed, exiting."); return; } try { // Create a file geodatabase IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass(); IWorkspaceName workspaceName = workspaceFactory.Create(@"C:\Path\To\Your\Geodatabase.gdb", "MyGDB", null, 0); IName name = (IName)workspaceName; IWorkspace workspace = (IWorkspace)name.Open(); // Create a point feature class IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace; IFields fields = new FieldsClass(); IFieldsEdit fieldsEdit = (IFieldsEdit)fields; IField field = new FieldClass(); IFieldEdit fieldEdit = (IFieldEdit)field; fieldEdit.Name_2 = "Name"; fieldEdit.Type_2 = esriFieldType.esriFieldTypeString; fieldsEdit.AddField(field); IGeometryDef geometryDef = new GeometryDefClass(); IGeometryDefEdit geometryDefEdit = (IGeometryDefEdit)geometryDef; geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint; fieldsEdit.GeometryDef_2 = geometryDef; featureWorkspace.CreateFeatureClass("MyPointFC", fields, null, null, esriFeatureType.esriFTSimple, "Shape", ""); // Create a point feature and add it to the feature class IFeatureClass pointFeatureClass = featureWorkspace.OpenFeatureClass("MyPointFC"); IFeatureBuffer featureBuffer = pointFeatureClass.CreateFeatureBuffer(); IFeatureCursor featureCursor = pointFeatureClass.Insert(true); // Create a point geometry and set it on the feature IPoint point = new PointClass(); point.PutCoords(100.0, 50.0); featureBuffer.Shape = point; // Set attribute values int nameFieldIndex = featureBuffer.Fields.FindField("Name"); featureBuffer.set_Value(nameFieldIndex, "FirstPoint"); featureCursor.InsertFeature(featureBuffer); featureCursor.Flush(); Console.WriteLine("Point feature with attributes created."); Marshal.ReleaseComObject(workspace); Marshal.ReleaseComObject(workspaceFactory); Marshal.ReleaseComObject(aoInit); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } } }
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.